diff options
Diffstat (limited to 'Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h')
-rw-r--r-- | Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h | 129 |
1 files changed, 87 insertions, 42 deletions
diff --git a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h b/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h index 807b82446..5509af217 100644 --- a/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h +++ b/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h @@ -23,8 +23,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef AccessibilityUIElement_h -#define AccessibilityUIElement_h +#pragma once #include "AccessibilityTextMarker.h" #include "AccessibilityTextMarkerRange.h" @@ -35,7 +34,7 @@ #include <wtf/Platform.h> #include <wtf/Vector.h> -#if PLATFORM(MAC) +#if PLATFORM(COCOA) #ifdef __OBJC__ typedef id PlatformUIElement; #else @@ -44,13 +43,13 @@ typedef struct objc_object* PlatformUIElement; #elif HAVE(ACCESSIBILITY) && (PLATFORM(GTK) || PLATFORM(EFL)) #include "AccessibilityNotificationHandlerAtk.h" #include <atk/atk.h> -#include <wtf/gobject/GRefPtr.h> +#include <wtf/glib/GRefPtr.h> typedef GRefPtr<AtkObject> PlatformUIElement; #else typedef void* PlatformUIElement; #endif -#if PLATFORM(MAC) +#if PLATFORM(COCOA) #ifdef __OBJC__ typedef id NotificationHandler; #else @@ -62,8 +61,8 @@ namespace WTR { class AccessibilityUIElement : public JSWrappable { public: - static PassRefPtr<AccessibilityUIElement> create(PlatformUIElement); - static PassRefPtr<AccessibilityUIElement> create(const AccessibilityUIElement&); + static Ref<AccessibilityUIElement> create(PlatformUIElement); + static Ref<AccessibilityUIElement> create(const AccessibilityUIElement&); ~AccessibilityUIElement(); @@ -74,12 +73,12 @@ public: bool isEqual(AccessibilityUIElement* otherElement); - PassRefPtr<AccessibilityUIElement> elementAtPoint(int x, int y); - PassRefPtr<AccessibilityUIElement> childAtIndex(unsigned); + RefPtr<AccessibilityUIElement> elementAtPoint(int x, int y); + RefPtr<AccessibilityUIElement> childAtIndex(unsigned); unsigned indexOfChild(AccessibilityUIElement*); int childrenCount(); - PassRefPtr<AccessibilityUIElement> titleUIElement(); - PassRefPtr<AccessibilityUIElement> parentElement(); + RefPtr<AccessibilityUIElement> titleUIElement(); + RefPtr<AccessibilityUIElement> parentElement(); void takeFocus(); void takeSelection(); @@ -89,7 +88,7 @@ public: // Methods - platform-independent implementations JSRetainPtr<JSStringRef> allAttributes(); JSRetainPtr<JSStringRef> attributesOfLinkedUIElements(); - PassRefPtr<AccessibilityUIElement> linkedUIElementAtIndex(unsigned); + RefPtr<AccessibilityUIElement> linkedUIElementAtIndex(unsigned); JSRetainPtr<JSStringRef> attributesOfDocumentLinks(); JSRetainPtr<JSStringRef> attributesOfChildren(); @@ -103,8 +102,9 @@ public: JSRetainPtr<JSStringRef> stringAttributeValue(JSStringRef attribute); double numberAttributeValue(JSStringRef attribute); JSValueRef uiElementArrayAttributeValue(JSStringRef attribute) const; - PassRefPtr<AccessibilityUIElement> uiElementAttributeValue(JSStringRef attribute) const; + RefPtr<AccessibilityUIElement> uiElementAttributeValue(JSStringRef attribute) const; bool boolAttributeValue(JSStringRef attribute); + void setBoolAttributeValue(JSStringRef attribute, bool value); bool isAttributeSupported(JSStringRef attribute); bool isAttributeSettable(JSStringRef attribute); bool isPressActionSupported(); @@ -113,6 +113,7 @@ public: JSRetainPtr<JSStringRef> role(); JSRetainPtr<JSStringRef> subrole(); JSRetainPtr<JSStringRef> roleDescription(); + JSRetainPtr<JSStringRef> computedRoleString(); JSRetainPtr<JSStringRef> title(); JSRetainPtr<JSStringRef> description(); JSRetainPtr<JSStringRef> language(); @@ -140,8 +141,11 @@ public: bool isSelectable() const; bool isMultiSelectable() const; void setSelectedChild(AccessibilityUIElement*) const; + void setSelectedChildAtIndex(unsigned) const; + void removeSelectionAtIndex(unsigned) const; + void clearSelectedChildren() const; unsigned selectedChildrenCount() const; - PassRefPtr<AccessibilityUIElement> selectedChildAtIndex(unsigned) const; + RefPtr<AccessibilityUIElement> selectedChildAtIndex(unsigned) const; bool isValid() const; bool isExpanded() const; @@ -151,6 +155,8 @@ public: bool isOffScreen() const; bool isCollapsed() const; bool isIgnored() const; + bool isSingleLine() const; + bool isMultiLine() const; bool hasPopup() const; int hierarchicalLevel() const; double clickPointX(); @@ -179,14 +185,15 @@ public: JSValueRef columnHeaders() const; // Tree/Outline specific attributes - PassRefPtr<AccessibilityUIElement> selectedRowAtIndex(unsigned); - PassRefPtr<AccessibilityUIElement> disclosedByRow(); - PassRefPtr<AccessibilityUIElement> disclosedRowAtIndex(unsigned); - PassRefPtr<AccessibilityUIElement> rowAtIndex(unsigned); + RefPtr<AccessibilityUIElement> selectedRowAtIndex(unsigned); + RefPtr<AccessibilityUIElement> disclosedByRow(); + RefPtr<AccessibilityUIElement> disclosedRowAtIndex(unsigned); + RefPtr<AccessibilityUIElement> rowAtIndex(unsigned); // ARIA specific - PassRefPtr<AccessibilityUIElement> ariaOwnsElementAtIndex(unsigned); - PassRefPtr<AccessibilityUIElement> ariaFlowToElementAtIndex(unsigned); + RefPtr<AccessibilityUIElement> ariaOwnsElementAtIndex(unsigned); + RefPtr<AccessibilityUIElement> ariaFlowToElementAtIndex(unsigned); + RefPtr<AccessibilityUIElement> ariaControlsElementAtIndex(unsigned); // ARIA Drag and Drop bool ariaIsGrabbed() const; @@ -202,8 +209,9 @@ public: JSRetainPtr<JSStringRef> stringForRange(unsigned location, unsigned length); JSRetainPtr<JSStringRef> attributedStringForRange(unsigned location, unsigned length); bool attributedStringRangeIsMisspelled(unsigned location, unsigned length); - unsigned uiElementCountForSearchPredicate(JSContextRef, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly); - PassRefPtr<AccessibilityUIElement> uiElementForSearchPredicate(JSContextRef, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly); + unsigned uiElementCountForSearchPredicate(JSContextRef, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly, bool immediateDescendantsOnly); + RefPtr<AccessibilityUIElement> uiElementForSearchPredicate(JSContextRef, AccessibilityUIElement* startElement, bool isDirectionNext, JSValueRef searchKey, JSStringRef searchText, bool visibleOnly, bool immediateDescendantsOnly); + JSRetainPtr<JSStringRef> selectTextWithCriteria(JSContextRef, JSStringRef ambiguityResolution, JSValueRef searchStrings, JSStringRef replacementString, JSStringRef activity); // Text-specific JSRetainPtr<JSStringRef> characterAtOffset(int offset); @@ -212,33 +220,49 @@ public: JSRetainPtr<JSStringRef> sentenceAtOffset(int offset); // Table-specific - PassRefPtr<AccessibilityUIElement> cellForColumnAndRow(unsigned column, unsigned row); + RefPtr<AccessibilityUIElement> cellForColumnAndRow(unsigned column, unsigned row); // Scrollarea-specific - PassRefPtr<AccessibilityUIElement> horizontalScrollbar() const; - PassRefPtr<AccessibilityUIElement> verticalScrollbar() const; + RefPtr<AccessibilityUIElement> horizontalScrollbar() const; + RefPtr<AccessibilityUIElement> verticalScrollbar() const; void scrollToMakeVisible(); + void scrollToGlobalPoint(int x, int y); + void scrollToMakeVisibleWithSubFocus(int x, int y, int width, int height); // Text markers. - PassRefPtr<AccessibilityTextMarkerRange> textMarkerRangeForElement(AccessibilityUIElement*); - PassRefPtr<AccessibilityTextMarkerRange> textMarkerRangeForMarkers(AccessibilityTextMarker* startMarker, AccessibilityTextMarker* endMarker); - PassRefPtr<AccessibilityTextMarker> startTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange*); - PassRefPtr<AccessibilityTextMarker> endTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange*); - PassRefPtr<AccessibilityTextMarker> endTextMarkerForBounds(int x, int y, int width, int height); - PassRefPtr<AccessibilityTextMarker> startTextMarkerForBounds(int x, int y, int width, int height); - PassRefPtr<AccessibilityTextMarker> textMarkerForPoint(int x, int y); - PassRefPtr<AccessibilityTextMarker> previousTextMarker(AccessibilityTextMarker*); - PassRefPtr<AccessibilityTextMarker> nextTextMarker(AccessibilityTextMarker*); - PassRefPtr<AccessibilityUIElement> accessibilityElementForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarkerRange> lineTextMarkerRangeForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarkerRange> textMarkerRangeForElement(AccessibilityUIElement*); + RefPtr<AccessibilityTextMarkerRange> textMarkerRangeForMarkers(AccessibilityTextMarker* startMarker, AccessibilityTextMarker* endMarker); + RefPtr<AccessibilityTextMarkerRange> selectedTextMarkerRange(); + void resetSelectedTextMarkerRange(); + RefPtr<AccessibilityTextMarker> startTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange*); + RefPtr<AccessibilityTextMarker> endTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange*); + RefPtr<AccessibilityTextMarker> endTextMarkerForBounds(int x, int y, int width, int height); + RefPtr<AccessibilityTextMarker> startTextMarkerForBounds(int x, int y, int width, int height); + RefPtr<AccessibilityTextMarker> textMarkerForPoint(int x, int y); + RefPtr<AccessibilityTextMarker> previousTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarker> nextTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityUIElement> accessibilityElementForTextMarker(AccessibilityTextMarker*); JSRetainPtr<JSStringRef> stringForTextMarkerRange(AccessibilityTextMarkerRange*); int textMarkerRangeLength(AccessibilityTextMarkerRange*); bool attributedStringForTextMarkerRangeContainsAttribute(JSStringRef, AccessibilityTextMarkerRange*); int indexForTextMarker(AccessibilityTextMarker*); bool isTextMarkerValid(AccessibilityTextMarker*); - PassRefPtr<AccessibilityTextMarker> textMarkerForIndex(int); - PassRefPtr<AccessibilityTextMarker> startTextMarker(); - PassRefPtr<AccessibilityTextMarker> endTextMarker(); + RefPtr<AccessibilityTextMarker> textMarkerForIndex(int); + RefPtr<AccessibilityTextMarker> startTextMarker(); + RefPtr<AccessibilityTextMarker> endTextMarker(); + bool setSelectedVisibleTextRange(AccessibilityTextMarkerRange*); + RefPtr<AccessibilityTextMarkerRange> leftWordTextMarkerRangeForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarkerRange> rightWordTextMarkerRangeForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarker> previousWordStartTextMarkerForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarker> nextWordEndTextMarkerForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarkerRange> paragraphTextMarkerRangeForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarker> nextParagraphEndTextMarkerForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarker> previousParagraphStartTextMarkerForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarkerRange> sentenceTextMarkerRangeForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarker> nextSentenceEndTextMarkerForTextMarker(AccessibilityTextMarker*); + RefPtr<AccessibilityTextMarker> previousSentenceStartTextMarkerForTextMarker(AccessibilityTextMarker*); // Returns an ordered list of supported actions for an element. JSRetainPtr<JSStringRef> supportedActions() const; @@ -253,6 +277,29 @@ public: // Make sure you call remove, because you can't rely on objects being deallocated in a timely fashion. bool removeNotificationListener(); + JSRetainPtr<JSStringRef> identifier(); + JSRetainPtr<JSStringRef> traits(); + int elementTextPosition(); + int elementTextLength(); + JSRetainPtr<JSStringRef> stringForSelection(); + JSValueRef elementsForRange(unsigned location, unsigned length); + void increaseTextSelection(); + void decreaseTextSelection(); + RefPtr<AccessibilityUIElement> linkedElement(); + RefPtr<AccessibilityUIElement> headerElementAtIndex(unsigned index); + void assistiveTechnologySimulatedFocus(); + bool isSearchField() const; + bool isTextArea() const; + + bool scrollPageUp(); + bool scrollPageDown(); + bool scrollPageLeft(); + bool scrollPageRight(); + + // Fieldset + bool hasContainedByFieldsetTrait(); + RefPtr<AccessibilityUIElement> fieldsetAncestorElement(); + private: AccessibilityUIElement(PlatformUIElement); AccessibilityUIElement(const AccessibilityUIElement&); @@ -261,7 +308,7 @@ private: // A retained, platform specific object used to help manage notifications for this object. #if HAVE(ACCESSIBILITY) -#if PLATFORM(MAC) +#if PLATFORM(COCOA) NotificationHandler m_notificationHandler; void getLinkedUIElements(Vector<RefPtr<AccessibilityUIElement> >&); @@ -270,7 +317,7 @@ private: void getUIElementsWithAttribute(JSStringRef, Vector<RefPtr<AccessibilityUIElement> >&) const; #endif -#if PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(EFL) +#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(EFL) void getChildren(Vector<RefPtr<AccessibilityUIElement> >&); void getChildrenWithRange(Vector<RefPtr<AccessibilityUIElement> >&, unsigned location, unsigned length); #endif @@ -282,5 +329,3 @@ private: }; } // namespace WTR - -#endif // AccessibilityUIElement_h |