summaryrefslogtreecommitdiff
path: root/Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h')
-rw-r--r--Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h129
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