AX: Implement updated CSS3 Speech for 'speak' and 'speak-as' properties
[WebKit-https.git] / Tools / WebKitTestRunner / InjectedBundle / Bindings / AccessibilityUIElement.idl
1 /*
2  * Copyright (C) 2011 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 interface AccessibilityUIElement {
27     boolean isEqual(AccessibilityUIElement otherElement);
28
29     // Document information
30     readonly attribute DOMString documentEncoding;
31     readonly attribute DOMString documentURI;
32
33     // Element access.
34     AccessibilityUIElement elementAtPoint(long x, long y);
35     AccessibilityUIElement childAtIndex(unsigned long index);
36     unsigned long indexOfChild(AccessibilityUIElement child);
37     AccessibilityUIElement linkedUIElementAtIndex(unsigned long index);
38     AccessibilityUIElement selectedChildAtIndex(unsigned long index);
39     void setSelectedChild(AccessibilityUIElement element);
40     void setSelectedChildAtIndex(unsigned long index);
41     void removeSelectionAtIndex(unsigned long index);
42     void clearSelectedChildren();
43     AccessibilityUIElement titleUIElement();
44     AccessibilityUIElement parentElement();
45     
46     readonly attribute DOMString role;
47     readonly attribute DOMString subrole;
48     readonly attribute DOMString roleDescription;
49     readonly attribute DOMString computedRoleString;
50     readonly attribute DOMString title;
51     readonly attribute DOMString description;
52     readonly attribute DOMString language;
53     readonly attribute DOMString helpText;
54     readonly attribute DOMString valueDescription;
55     readonly attribute DOMString url;
56     readonly attribute DOMString speakAs;
57     readonly attribute DOMString orientation;
58     readonly attribute long insertionPointLineNumber;
59     readonly attribute DOMString selectedTextRange;
60
61     DOMString stringAttributeValue(DOMString attr);
62     double numberAttributeValue(DOMString attr);
63     object uiElementArrayAttributeValue(DOMString attr);
64     AccessibilityUIElement uiElementAttributeValue(DOMString attr);  
65     boolean boolAttributeValue(DOMString attr);
66     void setBoolAttributeValue(DOMString attr, boolean value);
67     boolean isAttributeSupported(DOMString attr);
68     boolean isAttributeSettable(DOMString attr);
69     boolean isPressActionSupported();
70     boolean isIncrementActionSupported();
71     boolean isDecrementActionSupported();
72     void setValue(DOMString value);
73
74     readonly attribute DOMString stringValue;
75     readonly attribute long intValue;
76     readonly attribute long minValue;
77     readonly attribute long maxValue;
78     
79     readonly attribute boolean isEnabled;
80     readonly attribute boolean isRequired;
81     readonly attribute boolean isFocused;
82     readonly attribute boolean isFocusable;
83     readonly attribute boolean isSelectable;
84     readonly attribute boolean isSelected;
85     readonly attribute boolean isSelectedOptionActive;
86     readonly attribute boolean isMultiSelectable;
87     readonly attribute boolean isExpanded;
88     readonly attribute boolean isChecked;
89     readonly attribute boolean isIndeterminate;
90     readonly attribute boolean isVisible;
91     readonly attribute boolean isCollapsed;
92     readonly attribute boolean hasPopup;
93     readonly attribute boolean isIgnored;
94     readonly attribute boolean isSingleLine;
95     readonly attribute boolean isMultiLine;
96     readonly attribute boolean isOffScreen;
97     readonly attribute boolean isValid;
98     readonly attribute long hierarchicalLevel;
99     readonly attribute boolean ariaIsGrabbed;
100     readonly attribute DOMString ariaDropEffects;
101     readonly attribute DOMString classList;
102
103     readonly attribute long x;
104     readonly attribute long y;
105     readonly attribute long width;
106     readonly attribute long height;
107     readonly attribute long clickPointX;
108     readonly attribute long clickPointY;
109
110     readonly attribute long childrenCount;
111     readonly attribute long selectedChildrenCount;
112     readonly attribute long rowCount;
113     readonly attribute long columnCount;
114
115     // Actions.
116     void increment();
117     void decrement();
118     void press();
119     void showMenu();
120
121     // Attribute info.
122     DOMString allAttributes();
123     DOMString attributesOfChildren();
124     DOMString attributesOfLinkedUIElements();
125     DOMString attributesOfDocumentLinks();
126
127     // Text info.
128     DOMString characterAtOffset(long offset);
129     DOMString wordAtOffset(long offset);
130     DOMString lineAtOffset(long offset);
131     DOMString sentenceAtOffset(long offset);
132     
133     // Table info.
134     DOMString attributesOfColumnHeaders();
135     DOMString attributesOfRowHeaders();
136     DOMString attributesOfColumns();
137     DOMString attributesOfRows();
138     DOMString attributesOfVisibleCells();
139     DOMString attributesOfHeader();
140     AccessibilityUIElement cellForColumnAndRow(unsigned long column, unsigned long row);
141     AccessibilityUIElement selectedRowAtIndex(unsigned long index);
142     AccessibilityUIElement disclosedByRow();
143     AccessibilityUIElement disclosedRowAtIndex(unsigned long index);
144     AccessibilityUIElement rowAtIndex(unsigned long index);
145     long indexInTable();
146     DOMString rowIndexRange();
147     DOMString columnIndexRange();
148     long rowCount();
149     long columnCount();
150     object columnHeaders();
151     object rowHeaders();
152
153     AccessibilityUIElement ariaOwnsElementAtIndex(unsigned long index);
154     AccessibilityUIElement ariaOwnsReferencingElementAtIndex(unsigned long index);
155     AccessibilityUIElement ariaFlowToElementAtIndex(unsigned long index);
156     AccessibilityUIElement ariaFlowToReferencingElementAtIndex(unsigned long index);
157     AccessibilityUIElement ariaControlsElementAtIndex(unsigned long index);
158     AccessibilityUIElement ariaControlsReferencingElementAtIndex(unsigned long index);
159     AccessibilityUIElement ariaLabelledByElementAtIndex(unsigned long index);
160     AccessibilityUIElement ariaLabelledByReferencingElementAtIndex(unsigned long index);
161     AccessibilityUIElement ariaDescribedByElementAtIndex(unsigned long index);
162     AccessibilityUIElement ariaDescribedByReferencingElementAtIndex(unsigned long index);
163     AccessibilityUIElement ariaDetailsElementAtIndex(unsigned long index);
164     AccessibilityUIElement ariaDetailsReferencingElementAtIndex(unsigned long index);
165     AccessibilityUIElement ariaErrorMessageElementAtIndex(unsigned long index);
166     AccessibilityUIElement ariaErrorMessageReferencingElementAtIndex(unsigned long index);
167
168     // Paramaterized attributes.
169     DOMString parameterizedAttributeNames();
170     long lineForIndex(long index);
171     DOMString rangeForLine(long index);
172     DOMString rangeForPosition(long x, long y);
173     DOMString boundsForRange(unsigned long location, unsigned long length);
174     DOMString stringForRange(unsigned long location, unsigned long length);
175     DOMString attributedStringForRange(unsigned long location, unsigned long length);
176     boolean attributedStringRangeIsMisspelled(unsigned long location, unsigned long length);
177     [PassContext] unsigned long uiElementCountForSearchPredicate(AccessibilityUIElement startElement, boolean isDirectionNext, object searchKey, DOMString searchText, boolean visibleOnly, boolean immediateDescendantsOnly);
178     [PassContext] AccessibilityUIElement uiElementForSearchPredicate(AccessibilityUIElement startElement, boolean isDirectionNext, object searchKey, DOMString searchText, boolean visibleOnly, boolean immediateDescendantsOnly);
179     [PassContext] DOMString selectTextWithCriteria(DOMString ambiguityResolution, object searchStrings, DOMString replacementString, DOMString activity);
180     boolean setSelectedTextRange(unsigned long location, unsigned long length);
181
182     // Scroll area attributes.
183     readonly attribute AccessibilityUIElement horizontalScrollbar;
184     readonly attribute AccessibilityUIElement verticalScrollbar;
185
186     void scrollToMakeVisible();
187     void scrollToGlobalPoint(long x, long y);
188     void scrollToMakeVisibleWithSubFocus(long x, long y, long width, long height);
189
190     void takeFocus();
191     boolean scrollPageDown();
192     boolean scrollPageUp();
193     boolean scrollPageLeft();
194     boolean scrollPageRight();
195
196     // Text markers.
197     AccessibilityTextMarkerRange lineTextMarkerRangeForTextMarker(AccessibilityTextMarker textMarker);
198     AccessibilityTextMarkerRange textMarkerRangeForElement(AccessibilityUIElement element);    
199     AccessibilityTextMarkerRange textMarkerRangeForMarkers(AccessibilityTextMarker startMarker, AccessibilityTextMarker endMarker);
200     AccessibilityTextMarkerRange selectedTextMarkerRange();
201     void resetSelectedTextMarkerRange();
202     AccessibilityTextMarker startTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange range);
203     AccessibilityTextMarker endTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange range);
204     AccessibilityTextMarker endTextMarkerForBounds(long x, long y, long width, long height);
205     AccessibilityTextMarker startTextMarkerForBounds(long x, long y, long width, long height);
206     AccessibilityTextMarker textMarkerForPoint(long x, long y);
207     AccessibilityTextMarker previousTextMarker(AccessibilityTextMarker marker);
208     AccessibilityTextMarker nextTextMarker(AccessibilityTextMarker marker);
209     AccessibilityUIElement accessibilityElementForTextMarker(AccessibilityTextMarker marker);
210     DOMString stringForTextMarkerRange(AccessibilityTextMarkerRange range);
211     long textMarkerRangeLength(AccessibilityTextMarkerRange range);
212     boolean attributedStringForTextMarkerRangeContainsAttribute(DOMString attr, AccessibilityTextMarkerRange range);
213     long indexForTextMarker(AccessibilityTextMarker marker);
214     boolean isTextMarkerValid(AccessibilityTextMarker marker);
215     AccessibilityTextMarker textMarkerForIndex(long textIndex);
216     readonly attribute AccessibilityTextMarker startTextMarker;
217     readonly attribute AccessibilityTextMarker endTextMarker;
218     boolean setSelectedVisibleTextRange(AccessibilityTextMarkerRange range);
219     AccessibilityTextMarkerRange leftWordTextMarkerRangeForTextMarker(AccessibilityTextMarker textMarker);
220     AccessibilityTextMarkerRange rightWordTextMarkerRangeForTextMarker(AccessibilityTextMarker textMarker);
221     AccessibilityTextMarker previousWordStartTextMarkerForTextMarker(AccessibilityTextMarker textMarker);
222     AccessibilityTextMarker nextWordEndTextMarkerForTextMarker(AccessibilityTextMarker textMarker);
223     AccessibilityTextMarkerRange paragraphTextMarkerRangeForTextMarker(AccessibilityTextMarker textMarker);
224     AccessibilityTextMarker previousParagraphStartTextMarkerForTextMarker(AccessibilityTextMarker textMarker);
225     AccessibilityTextMarker nextParagraphEndTextMarkerForTextMarker(AccessibilityTextMarker textMarker);
226     AccessibilityTextMarkerRange sentenceTextMarkerRangeForTextMarker(AccessibilityTextMarker textMarker);
227     AccessibilityTextMarker previousSentenceStartTextMarkerForTextMarker(AccessibilityTextMarker textMarker);
228     AccessibilityTextMarker nextSentenceEndTextMarkerForTextMarker(AccessibilityTextMarker textMarker);
229     AccessibilityTextMarkerRange textMarkerRangeMatchesTextNearMarkers(DOMString text, AccessibilityTextMarker startMarker, AccessibilityTextMarker endMarker);
230
231     // Returns an ordered list of supported actions for an element.
232     readonly attribute DOMString supportedActions;
233     readonly attribute DOMString mathPostscriptsDescription;
234     readonly attribute DOMString mathPrescriptsDescription;
235
236     readonly attribute DOMString pathDescription;
237
238     // iOS specific accessibility methods.
239     readonly attribute DOMString identifier;
240     readonly attribute DOMString traits;
241     readonly attribute long elementTextPosition;
242     readonly attribute long elementTextLength;
243     readonly attribute DOMString stringForSelection;
244     object elementsForRange(unsigned long location, unsigned long length);
245     void increaseTextSelection();
246     void decreaseTextSelection();
247     AccessibilityUIElement linkedElement();
248     AccessibilityUIElement headerElementAtIndex(unsigned long index);
249     // This will simulate the accessibilityDidBecomeFocused API in UIKit.
250     void assistiveTechnologySimulatedFocus();
251     readonly attribute boolean isSearchField;
252     readonly attribute boolean isTextArea;
253
254     // Fieldset
255     readonly attribute boolean hasContainedByFieldsetTrait;
256     AccessibilityUIElement fieldsetAncestorElement();
257
258     // Notification support.
259     boolean addNotificationListener(object callbackFunction);
260     boolean removeNotificationListener();
261 };
262