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#ifndef JSAccessibilityUIElement_h
26#define JSAccessibilityUIElement_h
27
28#include "JSWrapper.h"
29
30namespace WTR {
31
32class AccessibilityUIElement;
33
34class JSAccessibilityUIElement : public JSWrapper {
35public:
36 static JSClassRef accessibilityUIElementClass();
37
38private:
39 static const JSStaticFunction* staticFunctions();
40 static const JSStaticValue* staticValues();
41
42 // Functions
43
44 static JSValueRef isEqual(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
45 static JSValueRef elementAtPoint(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
46 static JSValueRef childAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
47 static JSValueRef indexOfChild(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
48 static JSValueRef linkedUIElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
49 static JSValueRef selectedChildAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
50 static JSValueRef setSelectedChild(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
51 static JSValueRef setSelectedChildAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
52 static JSValueRef removeSelectionAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
53 static JSValueRef clearSelectedChildren(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
54 static JSValueRef titleUIElement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
55 static JSValueRef parentElement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
56 static JSValueRef stringDescriptionOfAttributeValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
57 static JSValueRef stringAttributeValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
58 static JSValueRef numberAttributeValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
59 static JSValueRef uiElementArrayAttributeValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
60 static JSValueRef uiElementAttributeValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
61 static JSValueRef boolAttributeValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
62 static JSValueRef setBoolAttributeValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
63 static JSValueRef isAttributeSupported(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
64 static JSValueRef isAttributeSettable(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
65 static JSValueRef isPressActionSupported(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
66 static JSValueRef isIncrementActionSupported(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
67 static JSValueRef isDecrementActionSupported(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
68 static JSValueRef setValue(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
69 static JSValueRef increment(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
70 static JSValueRef decrement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
71 static JSValueRef asyncIncrement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
72 static JSValueRef asyncDecrement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
73 static JSValueRef press(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
74 static JSValueRef syncPress(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
75 static JSValueRef showMenu(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
76 static JSValueRef dismiss(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
77 static JSValueRef allAttributes(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
78 static JSValueRef attributesOfChildren(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
79 static JSValueRef attributesOfLinkedUIElements(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
80 static JSValueRef attributesOfDocumentLinks(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
81 static JSValueRef characterAtOffset(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
82 static JSValueRef wordAtOffset(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
83 static JSValueRef lineAtOffset(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
84 static JSValueRef sentenceAtOffset(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
85 static JSValueRef attributesOfColumnHeaders(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
86 static JSValueRef attributesOfRowHeaders(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
87 static JSValueRef attributesOfColumns(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
88 static JSValueRef attributesOfRows(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
89 static JSValueRef attributesOfVisibleCells(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
90 static JSValueRef attributesOfHeader(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
91 static JSValueRef cellForColumnAndRow(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
92 static JSValueRef selectedRowAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
93 static JSValueRef disclosedByRow(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
94 static JSValueRef disclosedRowAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
95 static JSValueRef rowAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
96 static JSValueRef indexInTable(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
97 static JSValueRef rowIndexRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
98 static JSValueRef columnIndexRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
99 static JSValueRef rowCount(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
100 static JSValueRef columnCount(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
101 static JSValueRef columnHeaders(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
102 static JSValueRef rowHeaders(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
103 static JSValueRef ariaOwnsElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
104 static JSValueRef ariaOwnsReferencingElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
105 static JSValueRef ariaFlowToElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
106 static JSValueRef ariaFlowToReferencingElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
107 static JSValueRef ariaControlsElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
108 static JSValueRef ariaControlsReferencingElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
109 static JSValueRef ariaLabelledByElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
110 static JSValueRef ariaLabelledByReferencingElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
111 static JSValueRef ariaDescribedByElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
112 static JSValueRef ariaDescribedByReferencingElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
113 static JSValueRef ariaDetailsElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
114 static JSValueRef ariaDetailsReferencingElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
115 static JSValueRef ariaErrorMessageElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
116 static JSValueRef ariaErrorMessageReferencingElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
117 static JSValueRef parameterizedAttributeNames(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
118 static JSValueRef lineForIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
119 static JSValueRef rangeForLine(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
120 static JSValueRef rangeForPosition(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
121 static JSValueRef boundsForRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
122 static JSValueRef stringForRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
123 static JSValueRef attributedStringForRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
124 static JSValueRef attributedStringForElement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
125 static JSValueRef attributedStringRangeIsMisspelled(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
126 static JSValueRef uiElementCountForSearchPredicate(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
127 static JSValueRef uiElementForSearchPredicate(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
128 static JSValueRef selectTextWithCriteria(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
129 static JSValueRef searchTextWithCriteria(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
130 static JSValueRef setSelectedTextRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
131 static JSValueRef scrollToMakeVisible(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
132 static JSValueRef scrollToGlobalPoint(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
133 static JSValueRef scrollToMakeVisibleWithSubFocus(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
134 static JSValueRef takeFocus(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
135 static JSValueRef scrollPageDown(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
136 static JSValueRef scrollPageUp(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
137 static JSValueRef scrollPageLeft(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
138 static JSValueRef scrollPageRight(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
139 static JSValueRef lineTextMarkerRangeForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
140 static JSValueRef textMarkerRangeForElement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
141 static JSValueRef textMarkerRangeForMarkers(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
142 static JSValueRef selectedTextMarkerRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
143 static JSValueRef resetSelectedTextMarkerRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
144 static JSValueRef replaceTextInRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
145 static JSValueRef startTextMarkerForTextMarkerRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
146 static JSValueRef endTextMarkerForTextMarkerRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
147 static JSValueRef endTextMarkerForBounds(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
148 static JSValueRef startTextMarkerForBounds(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
149 static JSValueRef textMarkerForPoint(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
150 static JSValueRef previousTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
151 static JSValueRef nextTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
152 static JSValueRef accessibilityElementForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
153 static JSValueRef stringForTextMarkerRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
154 static JSValueRef attributedStringForTextMarkerRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
155 static JSValueRef attributedStringForTextMarkerRangeWithOptions(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
156 static JSValueRef textMarkerRangeLength(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
157 static JSValueRef attributedStringForTextMarkerRangeContainsAttribute(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
158 static JSValueRef indexForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
159 static JSValueRef isTextMarkerValid(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
160 static JSValueRef textMarkerForIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
161 static JSValueRef setSelectedVisibleTextRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
162 static JSValueRef leftWordTextMarkerRangeForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
163 static JSValueRef rightWordTextMarkerRangeForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
164 static JSValueRef previousWordStartTextMarkerForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
165 static JSValueRef nextWordEndTextMarkerForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
166 static JSValueRef paragraphTextMarkerRangeForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
167 static JSValueRef previousParagraphStartTextMarkerForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
168 static JSValueRef nextParagraphEndTextMarkerForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
169 static JSValueRef sentenceTextMarkerRangeForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
170 static JSValueRef previousSentenceStartTextMarkerForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
171 static JSValueRef nextSentenceEndTextMarkerForTextMarker(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
172 static JSValueRef textMarkerRangeMatchesTextNearMarkers(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
173 static JSValueRef elementsForRange(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
174 static JSValueRef increaseTextSelection(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
175 static JSValueRef decreaseTextSelection(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
176 static JSValueRef linkedElement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
177 static JSValueRef headerElementAtIndex(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
178 static JSValueRef assistiveTechnologySimulatedFocus(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
179 static JSValueRef fieldsetAncestorElement(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
180 static JSValueRef addNotificationListener(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
181 static JSValueRef removeNotificationListener(JSContextRef, JSObjectRef, JSObjectRef, size_t, const JSValueRef[], JSValueRef*);
182
183 // Attributes
184
185 static JSValueRef documentEncoding(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
186 static JSValueRef documentURI(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
187 static JSValueRef role(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
188 static JSValueRef subrole(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
189 static JSValueRef roleDescription(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
190 static JSValueRef computedRoleString(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
191 static JSValueRef title(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
192 static JSValueRef description(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
193 static JSValueRef language(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
194 static JSValueRef helpText(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
195 static JSValueRef valueDescription(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
196 static JSValueRef url(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
197 static JSValueRef speakAs(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
198 static JSValueRef orientation(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
199 static JSValueRef insertionPointLineNumber(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
200 static JSValueRef selectedTextRange(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
201 static JSValueRef stringValue(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
202 static JSValueRef intValue(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
203 static JSValueRef minValue(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
204 static JSValueRef maxValue(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
205 static JSValueRef isEnabled(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
206 static JSValueRef isRequired(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
207 static JSValueRef isFocused(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
208 static JSValueRef isFocusable(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
209 static JSValueRef isSelectable(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
210 static JSValueRef isSelected(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
211 static JSValueRef isSelectedOptionActive(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
212 static JSValueRef isMultiSelectable(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
213 static JSValueRef isExpanded(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
214 static JSValueRef isChecked(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
215 static JSValueRef isIndeterminate(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
216 static JSValueRef isVisible(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
217 static JSValueRef isCollapsed(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
218 static JSValueRef hasPopup(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
219 static JSValueRef isIgnored(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
220 static JSValueRef isSingleLine(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
221 static JSValueRef isMultiLine(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
222 static JSValueRef isOffScreen(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
223 static JSValueRef isValid(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
224 static JSValueRef hierarchicalLevel(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
225 static JSValueRef ariaIsGrabbed(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
226 static JSValueRef ariaDropEffects(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
227 static JSValueRef classList(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
228 static JSValueRef x(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
229 static JSValueRef y(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
230 static JSValueRef width(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
231 static JSValueRef height(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
232 static JSValueRef clickPointX(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
233 static JSValueRef clickPointY(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
234 static JSValueRef childrenCount(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
235 static JSValueRef selectedChildrenCount(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
236 static JSValueRef rowCount(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
237 static JSValueRef columnCount(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
238 static JSValueRef horizontalScrollbar(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
239 static JSValueRef verticalScrollbar(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
240 static JSValueRef startTextMarker(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
241 static JSValueRef endTextMarker(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
242 static JSValueRef supportedActions(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
243 static JSValueRef mathPostscriptsDescription(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
244 static JSValueRef mathPrescriptsDescription(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
245 static JSValueRef pathDescription(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
246 static JSValueRef identifier(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
247 static JSValueRef traits(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
248 static JSValueRef elementTextPosition(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
249 static JSValueRef elementTextLength(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
250 static JSValueRef stringForSelection(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
251 static JSValueRef isSearchField(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
252 static JSValueRef isTextArea(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
253 static JSValueRef hasContainedByFieldsetTrait(JSContextRef, JSObjectRef, JSStringRef, JSValueRef*);
254};
255
256AccessibilityUIElement* toAccessibilityUIElement(JSContextRef, JSValueRef);
257
258} // namespace WTR
259
260#endif // JSAccessibilityUIElement_h
261