mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 05:41:12 +00:00
b0068bfe22
I think this patch is functionally neutral. I'm not completely sure about the best way to do these casts - the __bridge may not be necessary since we don't use ARC yet. But it's probably fine to add it anyway. Also, returning autoreleased CFTypeRef objects seems a bit weird, but it's what we've already been doing and it's probably fine. And some of these nils should maybe be nullptrs, but the compiler doesn't seem to care. Differential Revision: https://phabricator.services.mozilla.com/D129559
526 lines
14 KiB
Objective-C
526 lines
14 KiB
Objective-C
/* clang-format off */
|
|
/* -*- Mode: Objective-C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* clang-format on */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "SDKDeclarations.h"
|
|
|
|
@protocol MOXTextMarkerSupport;
|
|
@protocol mozAccessible;
|
|
|
|
// This protocol's primary use is for abstracting the NSAccessibility informal
|
|
// protocol into a formal internal API. Conforming classes get to choose a
|
|
// subset of the optional methods to implement. Those methods will be mapped to
|
|
// NSAccessibility attributes or actions. A conforming class can implement
|
|
// moxBlockSelector to control which of its implemented methods should be
|
|
// exposed to NSAccessibility.
|
|
|
|
@protocol MOXAccessible
|
|
|
|
// The deepest descendant of the accessible subtree that contains the specified
|
|
// point. Forwarded from accessibilityHitTest.
|
|
- (id _Nullable)moxHitTest:(NSPoint)point;
|
|
|
|
// The deepest descendant of the accessible subtree that has the focus.
|
|
// Forwarded from accessibilityFocusedUIElement.
|
|
- (id _Nullable)moxFocusedUIElement;
|
|
|
|
// Sends a notification to any observing assistive applications.
|
|
- (void)moxPostNotification:(NSString* _Nonnull)notification;
|
|
|
|
- (void)moxPostNotification:(NSString* _Nonnull)notification
|
|
withUserInfo:(NSDictionary* _Nullable)userInfo;
|
|
|
|
// Return YES if selector should be considered not supported.
|
|
// Used in implementations such as:
|
|
// - accessibilityAttributeNames
|
|
// - accessibilityActionNames
|
|
// - accessibilityIsAttributeSettable
|
|
- (BOOL)moxBlockSelector:(SEL _Nonnull)selector;
|
|
|
|
// Returns a list of all children, doesn't do ignore filtering.
|
|
- (NSArray* _Nullable)moxChildren;
|
|
|
|
// Returns our parent, doesn't do ignore filtering.
|
|
- (id<mozAccessible> _Nullable)moxParent;
|
|
|
|
// This is called by isAccessibilityElement. If a subclass wants
|
|
// to alter the isAccessibilityElement return value, it must
|
|
// override this and not isAccessibilityElement directly.
|
|
- (BOOL)moxIgnoreWithParent:(id<MOXAccessible> _Nullable)parent;
|
|
|
|
// Should the child be ignored. This allows subclasses to determine
|
|
// what kinds of accessibles are valid children. This causes the child
|
|
// to be skipped, but the unignored descendants will be added to the
|
|
// container in the default children getter.
|
|
- (BOOL)moxIgnoreChild:(id<MOXAccessible> _Nullable)child;
|
|
|
|
// Return text delegate if it exists.
|
|
- (id<MOXTextMarkerSupport> _Nullable)moxTextMarkerDelegate;
|
|
|
|
// Return true if this accessible is a live region
|
|
- (BOOL)moxIsLiveRegion;
|
|
|
|
// Find the nearest ancestor that returns true with the given block function
|
|
- (id<MOXAccessible> _Nullable)moxFindAncestor:
|
|
(BOOL (^_Nonnull)(id<MOXAccessible> _Nonnull moxAcc,
|
|
BOOL* _Nonnull stop))findBlock;
|
|
|
|
@optional
|
|
|
|
#pragma mark - AttributeGetters
|
|
|
|
// AXChildren
|
|
- (NSArray* _Nullable)moxUnignoredChildren;
|
|
|
|
// AXParent
|
|
- (id _Nullable)moxUnignoredParent;
|
|
|
|
// AXRole
|
|
- (NSString* _Nullable)moxRole;
|
|
|
|
// AXRoleDescription
|
|
- (NSString* _Nullable)moxRoleDescription;
|
|
|
|
// AXSubrole
|
|
- (NSString* _Nullable)moxSubrole;
|
|
|
|
// AXTitle
|
|
- (NSString* _Nullable)moxTitle;
|
|
|
|
// AXDescription
|
|
- (NSString* _Nullable)moxLabel;
|
|
|
|
// AXHelp
|
|
- (NSString* _Nullable)moxHelp;
|
|
|
|
// AXValue
|
|
- (id _Nullable)moxValue;
|
|
|
|
// AXSize
|
|
- (NSValue* _Nullable)moxSize;
|
|
|
|
// AXPosition
|
|
- (NSValue* _Nullable)moxPosition;
|
|
|
|
// AXEnabled
|
|
- (NSNumber* _Nullable)moxEnabled;
|
|
|
|
// AXFocused
|
|
- (NSNumber* _Nullable)moxFocused;
|
|
|
|
// AXWindow
|
|
- (id _Nullable)moxWindow;
|
|
|
|
// AXFrame
|
|
- (NSValue* _Nullable)moxFrame;
|
|
|
|
// AXTitleUIElement
|
|
- (id _Nullable)moxTitleUIElement;
|
|
|
|
// AXTopLevelUIElement
|
|
- (id _Nullable)moxTopLevelUIElement;
|
|
|
|
// AXHasPopup
|
|
- (NSNumber* _Nullable)moxHasPopup;
|
|
|
|
// AXARIACurrent
|
|
- (NSString* _Nullable)moxARIACurrent;
|
|
|
|
// AXSelected
|
|
- (NSNumber* _Nullable)moxSelected;
|
|
|
|
// AXRequired
|
|
- (NSNumber* _Nullable)moxRequired;
|
|
|
|
// AXElementBusy
|
|
- (NSNumber* _Nullable)moxElementBusy;
|
|
|
|
// AXLinkedUIElements
|
|
- (NSArray* _Nullable)moxLinkedUIElements;
|
|
|
|
// AXARIAControls
|
|
- (NSArray* _Nullable)moxARIAControls;
|
|
|
|
// AXDOMIdentifier
|
|
- (NSString* _Nullable)moxDOMIdentifier;
|
|
|
|
// AXURL
|
|
- (NSURL* _Nullable)moxURL;
|
|
|
|
// AXLinkUIElements
|
|
- (NSArray* _Nullable)moxLinkUIElements;
|
|
|
|
// AXPopupValue
|
|
- (NSString* _Nullable)moxPopupValue;
|
|
|
|
// AXVisited
|
|
- (NSNumber* _Nullable)moxVisited;
|
|
|
|
// AXExpanded
|
|
- (NSNumber* _Nullable)moxExpanded;
|
|
|
|
// AXMain
|
|
- (NSNumber* _Nullable)moxMain;
|
|
|
|
// AXMinimized
|
|
- (NSNumber* _Nullable)moxMinimized;
|
|
|
|
// AXSelectedChildren
|
|
- (NSArray* _Nullable)moxSelectedChildren;
|
|
|
|
// AXTabs
|
|
- (NSArray* _Nullable)moxTabs;
|
|
|
|
// AXContents
|
|
- (NSArray* _Nullable)moxContents;
|
|
|
|
// AXOrientation
|
|
- (NSString* _Nullable)moxOrientation;
|
|
|
|
// AXMenuItemMarkChar
|
|
- (NSString* _Nullable)moxMenuItemMarkChar;
|
|
|
|
// AXLoaded
|
|
- (NSNumber* _Nullable)moxLoaded;
|
|
|
|
// AXLoadingProgress
|
|
- (NSNumber* _Nullable)moxLoadingProgress;
|
|
|
|
// Webkit also implements the following:
|
|
// // AXCaretBrowsingEnabled
|
|
// - (NSString* _Nullable)moxCaretBrowsingEnabled;
|
|
|
|
// // AXLayoutCount
|
|
// - (NSString* _Nullable)moxLayoutCount;
|
|
|
|
// // AXWebSessionID
|
|
// - (NSString* _Nullable)moxWebSessionID;
|
|
|
|
// // AXPreventKeyboardDOMEventDispatch
|
|
// - (NSString* _Nullable)moxPreventKeyboardDOMEventDispatch;
|
|
|
|
// Table Attributes
|
|
|
|
// AXRowCount
|
|
- (NSNumber* _Nullable)moxRowCount;
|
|
|
|
// AXColumnCount
|
|
- (NSNumber* _Nullable)moxColumnCount;
|
|
|
|
// AXRows
|
|
- (NSArray* _Nullable)moxRows;
|
|
|
|
// AXColumns
|
|
- (NSArray* _Nullable)moxColumns;
|
|
|
|
// AXIndex
|
|
- (NSNumber* _Nullable)moxIndex;
|
|
|
|
// AXRowIndexRange
|
|
- (NSValue* _Nullable)moxRowIndexRange;
|
|
|
|
// AXColumnIndexRange
|
|
- (NSValue* _Nullable)moxColumnIndexRange;
|
|
|
|
// AXRowHeaderUIElements
|
|
- (NSArray* _Nullable)moxRowHeaderUIElements;
|
|
|
|
// AXColumnHeaderUIElements
|
|
- (NSArray* _Nullable)moxColumnHeaderUIElements;
|
|
|
|
// AXIdentifier
|
|
- (NSString* _Nullable)moxIdentifier;
|
|
|
|
// AXVisibleChildren
|
|
- (NSArray* _Nullable)moxVisibleChildren;
|
|
|
|
// Outline Attributes
|
|
|
|
// AXDisclosing
|
|
- (NSNumber* _Nullable)moxDisclosing;
|
|
|
|
// AXDisclosedByRow
|
|
- (id _Nullable)moxDisclosedByRow;
|
|
|
|
// AXDisclosureLevel
|
|
- (NSNumber* _Nullable)moxDisclosureLevel;
|
|
|
|
// AXDisclosedRows
|
|
- (NSArray* _Nullable)moxDisclosedRows;
|
|
|
|
// AXSelectedRows
|
|
- (NSArray* _Nullable)moxSelectedRows;
|
|
|
|
// Math Attributes
|
|
|
|
// AXMathRootRadicand
|
|
- (id _Nullable)moxMathRootRadicand;
|
|
|
|
// AXMathRootIndex
|
|
- (id _Nullable)moxMathRootIndex;
|
|
|
|
// AXMathFractionNumerator
|
|
- (id _Nullable)moxMathFractionNumerator;
|
|
|
|
// AXMathFractionDenominator
|
|
- (id _Nullable)moxMathFractionDenominator;
|
|
|
|
// AXMathLineThickness
|
|
- (NSNumber* _Nullable)moxMathLineThickness;
|
|
|
|
// AXMathBase
|
|
- (id _Nullable)moxMathBase;
|
|
|
|
// AXMathSubscript
|
|
- (id _Nullable)moxMathSubscript;
|
|
|
|
// AXMathSuperscript
|
|
- (id _Nullable)moxMathSuperscript;
|
|
|
|
// AXMathUnder
|
|
- (id _Nullable)moxMathUnder;
|
|
|
|
// AXMathOver
|
|
- (id _Nullable)moxMathOver;
|
|
|
|
// AXInvalid
|
|
- (NSString* _Nullable)moxInvalid;
|
|
|
|
// AXSelectedText
|
|
- (NSString* _Nullable)moxSelectedText;
|
|
|
|
// AXSelectedTextRange
|
|
- (NSValue* _Nullable)moxSelectedTextRange;
|
|
|
|
// AXNumberOfCharacters
|
|
- (NSNumber* _Nullable)moxNumberOfCharacters;
|
|
|
|
// AXVisibleCharacterRange
|
|
- (NSValue* _Nullable)moxVisibleCharacterRange;
|
|
|
|
// AXInsertionPointLineNumber
|
|
- (NSNumber* _Nullable)moxInsertionPointLineNumber;
|
|
|
|
// AXEditableAncestor
|
|
- (id _Nullable)moxEditableAncestor;
|
|
|
|
// AXHighestEditableAncestor
|
|
- (id _Nullable)moxHighestEditableAncestor;
|
|
|
|
// AXFocusableAncestor
|
|
- (id _Nullable)moxFocusableAncestor;
|
|
|
|
// AXARIAAtomic
|
|
- (NSNumber* _Nullable)moxARIAAtomic;
|
|
|
|
// AXARIALive
|
|
- (NSString* _Nullable)moxARIALive;
|
|
|
|
// AXARIARelevant
|
|
- (NSString* _Nullable)moxARIARelevant;
|
|
|
|
// AXMozDebugDescription
|
|
- (NSString* _Nullable)moxMozDebugDescription;
|
|
|
|
#pragma mark - AttributeSetters
|
|
|
|
// AXDisclosing
|
|
- (void)moxSetDisclosing:(NSNumber* _Nullable)disclosing;
|
|
|
|
// AXValue
|
|
- (void)moxSetValue:(id _Nullable)value;
|
|
|
|
// AXFocused
|
|
- (void)moxSetFocused:(NSNumber* _Nullable)focused;
|
|
|
|
// AXSelected
|
|
- (void)moxSetSelected:(NSNumber* _Nullable)selected;
|
|
|
|
// AXSelectedChildren
|
|
- (void)moxSetSelectedChildren:(NSArray* _Nullable)selectedChildren;
|
|
|
|
// AXSelectedText
|
|
- (void)moxSetSelectedText:(NSString* _Nullable)selectedText;
|
|
|
|
// AXSelectedTextRange
|
|
- (void)moxSetSelectedTextRange:(NSValue* _Nullable)selectedTextRange;
|
|
|
|
// AXVisibleCharacterRange
|
|
- (void)moxSetVisibleCharacterRange:(NSValue* _Nullable)visibleCharacterRange;
|
|
|
|
#pragma mark - Actions
|
|
|
|
// AXPress
|
|
- (void)moxPerformPress;
|
|
|
|
// AXShowMenu
|
|
- (void)moxPerformShowMenu;
|
|
|
|
// AXScrollToVisible
|
|
- (void)moxPerformScrollToVisible;
|
|
|
|
// AXIncrement
|
|
- (void)moxPerformIncrement;
|
|
|
|
// AXDecrement
|
|
- (void)moxPerformDecrement;
|
|
|
|
#pragma mark - ParameterizedAttributeGetters
|
|
|
|
// AXLineForIndex
|
|
- (NSNumber* _Nullable)moxLineForIndex:(NSNumber* _Nonnull)index;
|
|
|
|
// AXRangeForLine
|
|
- (NSValue* _Nullable)moxRangeForLine:(NSNumber* _Nonnull)line;
|
|
|
|
// AXStringForRange
|
|
- (NSString* _Nullable)moxStringForRange:(NSValue* _Nonnull)range;
|
|
|
|
// AXRangeForPosition
|
|
- (NSValue* _Nullable)moxRangeForPosition:(NSValue* _Nonnull)position;
|
|
|
|
// AXRangeForIndex
|
|
- (NSValue* _Nullable)moxRangeForIndex:(NSNumber* _Nonnull)index;
|
|
|
|
// AXBoundsForRange
|
|
- (NSValue* _Nullable)moxBoundsForRange:(NSValue* _Nonnull)range;
|
|
|
|
// AXRTFForRange
|
|
- (NSData* _Nullable)moxRTFForRange:(NSValue* _Nonnull)range;
|
|
|
|
// AXStyleRangeForIndex
|
|
- (NSValue* _Nullable)moxStyleRangeForIndex:(NSNumber* _Nonnull)index;
|
|
|
|
// AXAttributedStringForRange
|
|
- (NSAttributedString* _Nullable)moxAttributedStringForRange:
|
|
(NSValue* _Nonnull)range;
|
|
|
|
// AXUIElementsForSearchPredicate
|
|
- (NSArray* _Nullable)moxUIElementsForSearchPredicate:
|
|
(NSDictionary* _Nonnull)searchPredicate;
|
|
|
|
// AXUIElementCountForSearchPredicate
|
|
- (NSNumber* _Nullable)moxUIElementCountForSearchPredicate:
|
|
(NSDictionary* _Nonnull)searchPredicate;
|
|
|
|
// AXCellForColumnAndRow
|
|
- (id _Nullable)moxCellForColumnAndRow:(NSArray* _Nonnull)columnAndRow;
|
|
|
|
// AXIndexForChildUIElement
|
|
- (NSNumber* _Nullable)moxIndexForChildUIElement:(id _Nonnull)child;
|
|
|
|
@end
|
|
|
|
// This protocol maps text marker and text marker range parameters to
|
|
// methods. It is implemented by a delegate of a MOXAccessible.
|
|
@protocol MOXTextMarkerSupport
|
|
|
|
#pragma mark - TextAttributeGetters
|
|
|
|
// AXStartTextMarker
|
|
- (AXTextMarkerRef _Nullable)moxStartTextMarker;
|
|
|
|
// AXEndTextMarker
|
|
- (AXTextMarkerRef _Nullable)moxEndTextMarker;
|
|
|
|
// AXSelectedTextMarkerRange
|
|
- (AXTextMarkerRangeRef _Nullable)moxSelectedTextMarkerRange;
|
|
|
|
#pragma mark - ParameterizedTextAttributeGetters
|
|
|
|
// AXLengthForTextMarkerRange
|
|
- (NSNumber* _Nullable)moxLengthForTextMarkerRange:
|
|
(AXTextMarkerRangeRef _Nonnull)textMarkerRange;
|
|
|
|
// AXStringForTextMarkerRange
|
|
- (NSString* _Nullable)moxStringForTextMarkerRange:
|
|
(AXTextMarkerRangeRef _Nonnull)textMarkerRange;
|
|
|
|
// AXTextMarkerRangeForUnorderedTextMarkers
|
|
- (AXTextMarkerRangeRef _Nullable)moxTextMarkerRangeForUnorderedTextMarkers:
|
|
(NSArray* _Nonnull)textMarkers;
|
|
|
|
// AXLeftWordTextMarkerRangeForTextMarker
|
|
- (AXTextMarkerRangeRef _Nullable)moxLeftWordTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXRightWordTextMarkerRangeForTextMarker
|
|
- (AXTextMarkerRangeRef _Nullable)moxRightWordTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXStartTextMarkerForTextMarkerRange
|
|
- (AXTextMarkerRef _Nullable)moxStartTextMarkerForTextMarkerRange:
|
|
(AXTextMarkerRangeRef _Nonnull)textMarkerRange;
|
|
|
|
// AXEndTextMarkerForTextMarkerRange
|
|
- (AXTextMarkerRef _Nullable)moxEndTextMarkerForTextMarkerRange:
|
|
(AXTextMarkerRangeRef _Nonnull)textMarkerRange;
|
|
|
|
// AXNextTextMarkerForTextMarker
|
|
- (AXTextMarkerRef _Nullable)moxNextTextMarkerForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXPreviousTextMarkerForTextMarker
|
|
- (AXTextMarkerRef _Nullable)moxPreviousTextMarkerForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXAttributedStringForTextMarkerRange
|
|
- (NSAttributedString* _Nullable)moxAttributedStringForTextMarkerRange:
|
|
(AXTextMarkerRangeRef _Nonnull)textMarkerRange;
|
|
|
|
// AXBoundsForTextMarkerRange
|
|
- (NSValue* _Nullable)moxBoundsForTextMarkerRange:
|
|
(AXTextMarkerRangeRef _Nonnull)textMarkerRange;
|
|
|
|
// AXIndexForTextMarker
|
|
- (NSNumber* _Nullable)moxIndexForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXTextMarkerForIndex
|
|
- (AXTextMarkerRef _Nullable)moxTextMarkerForIndex:(NSNumber* _Nonnull)index;
|
|
|
|
// AXUIElementForTextMarker
|
|
- (id _Nullable)moxUIElementForTextMarker:(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXTextMarkerRangeForUIElement
|
|
- (AXTextMarkerRangeRef _Nullable)moxTextMarkerRangeForUIElement:
|
|
(id _Nonnull)element;
|
|
|
|
// AXLineTextMarkerRangeForTextMarker
|
|
- (AXTextMarkerRangeRef _Nullable)moxLineTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXLeftLineTextMarkerRangeForTextMarker
|
|
- (AXTextMarkerRangeRef _Nullable)moxLeftLineTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXRightLineTextMarkerRangeForTextMarker
|
|
- (AXTextMarkerRangeRef _Nullable)moxRightLineTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXParagraphTextMarkerRangeForTextMarker
|
|
- (AXTextMarkerRangeRef _Nullable)moxParagraphTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXStyleTextMarkerRangeForTextMarker
|
|
- (AXTextMarkerRangeRef _Nullable)moxStyleTextMarkerRangeForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXMozDebugDescriptionForTextMarker
|
|
- (NSString* _Nullable)moxMozDebugDescriptionForTextMarker:
|
|
(AXTextMarkerRef _Nonnull)textMarker;
|
|
|
|
// AXMozDebugDescriptionForTextMarkerRange
|
|
- (NSString* _Nullable)moxMozDebugDescriptionForTextMarkerRange:
|
|
(AXTextMarkerRangeRef _Nonnull)textMarkerRange;
|
|
|
|
#pragma mark - TextAttributeSetters
|
|
|
|
// AXSelectedTextMarkerRange
|
|
- (void)moxSetSelectedTextMarkerRange:(id _Nullable)textMarkerRange;
|
|
|
|
@end
|