OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <execinfo.h> | 5 #include <execinfo.h> |
6 | 6 |
7 #import "content/browser/accessibility/browser_accessibility_cocoa.h" | 7 #import "content/browser/accessibility/browser_accessibility_cocoa.h" |
8 | 8 |
9 #include <map> | 9 #include <map> |
10 | 10 |
(...skipping 22 matching lines...) Expand all Loading... | |
33 | 33 |
34 // Returns an autoreleased copy of the AccessibilityNodeData's attribute. | 34 // Returns an autoreleased copy of the AccessibilityNodeData's attribute. |
35 NSString* NSStringForStringAttribute( | 35 NSString* NSStringForStringAttribute( |
36 BrowserAccessibility* browserAccessibility, | 36 BrowserAccessibility* browserAccessibility, |
37 StringAttribute attribute) { | 37 StringAttribute attribute) { |
38 return base::SysUTF8ToNSString( | 38 return base::SysUTF8ToNSString( |
39 browserAccessibility->GetStringAttribute(attribute)); | 39 browserAccessibility->GetStringAttribute(attribute)); |
40 } | 40 } |
41 | 41 |
42 struct MapEntry { | 42 struct MapEntry { |
43 AccessibilityNodeData::Role webKitValue; | 43 WebKit::WebAXRole webKitValue; |
44 NSString* nativeValue; | 44 NSString* nativeValue; |
45 }; | 45 }; |
46 | 46 |
47 typedef std::map<AccessibilityNodeData::Role, NSString*> RoleMap; | 47 typedef std::map<WebKit::WebAXRole, NSString*> RoleMap; |
48 | 48 |
49 // GetState checks the bitmask used in AccessibilityNodeData to check | 49 // GetState checks the bitmask used in AccessibilityNodeData to check |
50 // if the given state was set on the accessibility object. | 50 // if the given state was set on the accessibility object. |
51 bool GetState(BrowserAccessibility* accessibility, int state) { | 51 bool GetState(BrowserAccessibility* accessibility, WebKit::WebAXState state) { |
52 return ((accessibility->state() >> state) & 1); | 52 return ((accessibility->state() >> state) & 1); |
53 } | 53 } |
54 | 54 |
55 RoleMap BuildRoleMap() { | 55 RoleMap BuildRoleMap() { |
56 const MapEntry roles[] = { | 56 const MapEntry roles[] = { |
57 { AccessibilityNodeData::ROLE_ALERT, NSAccessibilityGroupRole }, | 57 { WebKit::WebAXRoleAlert, NSAccessibilityGroupRole }, |
58 { AccessibilityNodeData::ROLE_ALERT_DIALOG, NSAccessibilityGroupRole }, | 58 { WebKit::WebAXRoleAlertDialog, NSAccessibilityGroupRole }, |
59 { AccessibilityNodeData::ROLE_ANNOTATION, NSAccessibilityUnknownRole }, | 59 { WebKit::WebAXRoleAnnotation, NSAccessibilityUnknownRole }, |
60 { AccessibilityNodeData::ROLE_APPLICATION, NSAccessibilityGroupRole }, | 60 { WebKit::WebAXRoleApplication, NSAccessibilityGroupRole }, |
61 { AccessibilityNodeData::ROLE_ARTICLE, NSAccessibilityGroupRole }, | 61 { WebKit::WebAXRoleArticle, NSAccessibilityGroupRole }, |
62 { AccessibilityNodeData::ROLE_BROWSER, NSAccessibilityBrowserRole }, | 62 { WebKit::WebAXRoleBrowser, NSAccessibilityBrowserRole }, |
63 { AccessibilityNodeData::ROLE_BUSY_INDICATOR, | 63 { WebKit::WebAXRoleBusyIndicator, NSAccessibilityBusyIndicatorRole }, |
64 NSAccessibilityBusyIndicatorRole }, | 64 { WebKit::WebAXRoleButton, NSAccessibilityButtonRole }, |
65 { AccessibilityNodeData::ROLE_BUTTON, NSAccessibilityButtonRole }, | 65 { WebKit::WebAXRoleCanvas, NSAccessibilityImageRole }, |
66 { AccessibilityNodeData::ROLE_CANVAS, NSAccessibilityImageRole }, | 66 { WebKit::WebAXRoleCanvas, NSAccessibilityGroupRole }, |
67 { AccessibilityNodeData::ROLE_CANVAS_WITH_FALLBACK_CONTENT, | 67 { WebKit::WebAXRoleCell, @"AXCell" }, |
68 NSAccessibilityGroupRole }, | 68 { WebKit::WebAXRoleCheckBox, NSAccessibilityCheckBoxRole }, |
69 { AccessibilityNodeData::ROLE_CELL, @"AXCell" }, | 69 { WebKit::WebAXRoleColorWell, NSAccessibilityColorWellRole }, |
70 { AccessibilityNodeData::ROLE_CHECKBOX, NSAccessibilityCheckBoxRole }, | 70 { WebKit::WebAXRoleComboBox, NSAccessibilityComboBoxRole }, |
71 { AccessibilityNodeData::ROLE_COLOR_WELL, NSAccessibilityColorWellRole }, | 71 { WebKit::WebAXRoleColumn, NSAccessibilityColumnRole }, |
72 { AccessibilityNodeData::ROLE_COMBO_BOX, NSAccessibilityComboBoxRole }, | 72 { WebKit::WebAXRoleColumnHeader, @"AXCell" }, |
73 { AccessibilityNodeData::ROLE_COLUMN, NSAccessibilityColumnRole }, | 73 { WebKit::WebAXRoleDefinition, NSAccessibilityGroupRole }, |
74 { AccessibilityNodeData::ROLE_COLUMN_HEADER, @"AXCell" }, | 74 { WebKit::WebAXRoleDescriptionListDetail, NSAccessibilityGroupRole }, |
75 { AccessibilityNodeData::ROLE_DEFINITION, NSAccessibilityGroupRole }, | 75 { WebKit::WebAXRoleDescriptionListTerm, NSAccessibilityGroupRole }, |
76 { AccessibilityNodeData::ROLE_DESCRIPTION_LIST_DETAIL, | 76 { WebKit::WebAXRoleDialog, NSAccessibilityGroupRole }, |
77 NSAccessibilityGroupRole }, | 77 { WebKit::WebAXRoleDirectory, NSAccessibilityListRole }, |
78 { AccessibilityNodeData::ROLE_DESCRIPTION_LIST_TERM, | 78 { WebKit::WebAXRoleDisclosureTriangle, |
79 NSAccessibilityGroupRole }, | 79 NSAccessibilityDisclosureTriangleRole }, |
80 { AccessibilityNodeData::ROLE_DIALOG, NSAccessibilityGroupRole }, | 80 { WebKit::WebAXRoleDiv, NSAccessibilityGroupRole }, |
81 { AccessibilityNodeData::ROLE_DIRECTORY, NSAccessibilityListRole }, | 81 { WebKit::WebAXRoleDocument, NSAccessibilityGroupRole }, |
82 { AccessibilityNodeData::ROLE_DISCLOSURE_TRIANGLE, | 82 { WebKit::WebAXRoleDrawer, NSAccessibilityDrawerRole }, |
83 NSAccessibilityDisclosureTriangleRole }, | 83 { WebKit::WebAXRoleEditableText, NSAccessibilityTextFieldRole }, |
84 { AccessibilityNodeData::ROLE_DIV, NSAccessibilityGroupRole }, | 84 { WebKit::WebAXRoleFooter, NSAccessibilityGroupRole }, |
85 { AccessibilityNodeData::ROLE_DOCUMENT, NSAccessibilityGroupRole }, | 85 { WebKit::WebAXRoleForm, NSAccessibilityGroupRole }, |
86 { AccessibilityNodeData::ROLE_DRAWER, NSAccessibilityDrawerRole }, | 86 { WebKit::WebAXRoleGrid, NSAccessibilityGridRole }, |
87 { AccessibilityNodeData::ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole }, | 87 { WebKit::WebAXRoleGroup, NSAccessibilityGroupRole }, |
88 { AccessibilityNodeData::ROLE_FOOTER, NSAccessibilityGroupRole }, | 88 { WebKit::WebAXRoleGrowArea, NSAccessibilityGrowAreaRole }, |
89 { AccessibilityNodeData::ROLE_FORM, NSAccessibilityGroupRole }, | 89 { WebKit::WebAXRoleHeading, @"AXHeading" }, |
90 { AccessibilityNodeData::ROLE_GRID, NSAccessibilityGridRole }, | 90 { WebKit::WebAXRoleHelpTag, NSAccessibilityHelpTagRole }, |
91 { AccessibilityNodeData::ROLE_GROUP, NSAccessibilityGroupRole }, | 91 { WebKit::WebAXRoleHorizontalRule, NSAccessibilityGroupRole }, |
92 { AccessibilityNodeData::ROLE_GROW_AREA, NSAccessibilityGrowAreaRole }, | 92 { WebKit::WebAXRoleIgnored, NSAccessibilityUnknownRole }, |
93 { AccessibilityNodeData::ROLE_HEADING, @"AXHeading" }, | 93 { WebKit::WebAXRoleImage, NSAccessibilityImageRole }, |
94 { AccessibilityNodeData::ROLE_HELP_TAG, NSAccessibilityHelpTagRole }, | 94 { WebKit::WebAXRoleImageMap, NSAccessibilityGroupRole }, |
95 { AccessibilityNodeData::ROLE_HORIZONTAL_RULE, NSAccessibilityGroupRole }, | 95 { WebKit::WebAXRoleImageMapLink, NSAccessibilityLinkRole }, |
96 { AccessibilityNodeData::ROLE_IGNORED, NSAccessibilityUnknownRole }, | 96 { WebKit::WebAXRoleIncrementor, NSAccessibilityIncrementorRole }, |
97 { AccessibilityNodeData::ROLE_IMAGE, NSAccessibilityImageRole }, | 97 { WebKit::WebAXRoleLabel, NSAccessibilityGroupRole }, |
98 { AccessibilityNodeData::ROLE_IMAGE_MAP, NSAccessibilityGroupRole }, | 98 { WebKit::WebAXRoleApplication, NSAccessibilityGroupRole }, |
99 { AccessibilityNodeData::ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole }, | 99 { WebKit::WebAXRoleBanner, NSAccessibilityGroupRole }, |
100 { AccessibilityNodeData::ROLE_INCREMENTOR, NSAccessibilityIncrementorRole }, | 100 { WebKit::WebAXRoleComplementary, NSAccessibilityGroupRole }, |
101 { AccessibilityNodeData::ROLE_LABEL, NSAccessibilityGroupRole }, | 101 { WebKit::WebAXRoleContentInfo, NSAccessibilityGroupRole }, |
102 { AccessibilityNodeData::ROLE_LANDMARK_APPLICATION, | 102 { WebKit::WebAXRoleMain, NSAccessibilityGroupRole }, |
103 NSAccessibilityGroupRole }, | 103 { WebKit::WebAXRoleNavigation, NSAccessibilityGroupRole }, |
104 { AccessibilityNodeData::ROLE_LANDMARK_BANNER, NSAccessibilityGroupRole }, | 104 { WebKit::WebAXRoleSearch, NSAccessibilityGroupRole }, |
105 { AccessibilityNodeData::ROLE_LANDMARK_COMPLEMENTARY, | 105 { WebKit::WebAXRoleLink, NSAccessibilityLinkRole }, |
106 NSAccessibilityGroupRole }, | 106 { WebKit::WebAXRoleList, NSAccessibilityListRole }, |
107 { AccessibilityNodeData::ROLE_LANDMARK_CONTENTINFO, | 107 { WebKit::WebAXRoleListItem, NSAccessibilityGroupRole }, |
108 NSAccessibilityGroupRole }, | 108 { WebKit::WebAXRoleListMarker, @"AXListMarker" }, |
109 { AccessibilityNodeData::ROLE_LANDMARK_MAIN, NSAccessibilityGroupRole }, | 109 { WebKit::WebAXRoleListBox, NSAccessibilityListRole }, |
110 { AccessibilityNodeData::ROLE_LANDMARK_NAVIGATION, | 110 { WebKit::WebAXRoleListBoxOption, NSAccessibilityStaticTextRole }, |
111 NSAccessibilityGroupRole }, | 111 { WebKit::WebAXRoleLog, NSAccessibilityGroupRole }, |
112 { AccessibilityNodeData::ROLE_LANDMARK_SEARCH, NSAccessibilityGroupRole }, | 112 { WebKit::WebAXRoleMarquee, NSAccessibilityGroupRole }, |
113 { AccessibilityNodeData::ROLE_LINK, NSAccessibilityLinkRole }, | 113 { WebKit::WebAXRoleMath, NSAccessibilityGroupRole }, |
114 { AccessibilityNodeData::ROLE_LIST, NSAccessibilityListRole }, | 114 { WebKit::WebAXRoleMatte, NSAccessibilityMatteRole }, |
115 { AccessibilityNodeData::ROLE_LIST_ITEM, NSAccessibilityGroupRole }, | 115 { WebKit::WebAXRoleMenu, NSAccessibilityMenuRole }, |
116 { AccessibilityNodeData::ROLE_LIST_MARKER, @"AXListMarker" }, | 116 { WebKit::WebAXRoleMenuBar, NSAccessibilityMenuBarRole }, |
117 { AccessibilityNodeData::ROLE_LISTBOX, NSAccessibilityListRole }, | 117 { WebKit::WebAXRoleMenuItem, NSAccessibilityMenuItemRole }, |
118 { AccessibilityNodeData::ROLE_LISTBOX_OPTION, | 118 { WebKit::WebAXRoleMenuButton, NSAccessibilityButtonRole }, |
119 NSAccessibilityStaticTextRole }, | 119 { WebKit::WebAXRoleMenuListOption, NSAccessibilityMenuItemRole }, |
120 { AccessibilityNodeData::ROLE_LOG, NSAccessibilityGroupRole }, | 120 { WebKit::WebAXRoleMenuListPopup, NSAccessibilityUnknownRole }, |
121 { AccessibilityNodeData::ROLE_MARQUEE, NSAccessibilityGroupRole }, | 121 { WebKit::WebAXRoleNote, NSAccessibilityGroupRole }, |
122 { AccessibilityNodeData::ROLE_MATH, NSAccessibilityGroupRole }, | 122 { WebKit::WebAXRoleOutline, NSAccessibilityOutlineRole }, |
123 { AccessibilityNodeData::ROLE_MATTE, NSAccessibilityMatteRole }, | 123 { WebKit::WebAXRoleParagraph, NSAccessibilityGroupRole }, |
124 { AccessibilityNodeData::ROLE_MENU, NSAccessibilityMenuRole }, | 124 { WebKit::WebAXRolePopUpButton, NSAccessibilityPopUpButtonRole }, |
125 { AccessibilityNodeData::ROLE_MENU_BAR, NSAccessibilityMenuBarRole }, | 125 { WebKit::WebAXRolePresentational, NSAccessibilityGroupRole }, |
126 { AccessibilityNodeData::ROLE_MENU_ITEM, NSAccessibilityMenuItemRole }, | 126 { WebKit::WebAXRoleProgressIndicator, |
127 { AccessibilityNodeData::ROLE_MENU_BUTTON, NSAccessibilityButtonRole }, | 127 NSAccessibilityProgressIndicatorRole }, |
128 { AccessibilityNodeData::ROLE_MENU_LIST_OPTION, | 128 { WebKit::WebAXRoleRadioButton, NSAccessibilityRadioButtonRole }, |
129 NSAccessibilityMenuItemRole }, | 129 { WebKit::WebAXRoleRadioGroup, NSAccessibilityRadioGroupRole }, |
130 { AccessibilityNodeData::ROLE_MENU_LIST_POPUP, NSAccessibilityUnknownRole }, | 130 { WebKit::WebAXRoleRegion, NSAccessibilityGroupRole }, |
131 { AccessibilityNodeData::ROLE_NOTE, NSAccessibilityGroupRole }, | 131 { WebKit::WebAXRoleRootWebArea, @"AXWebArea" }, |
132 { AccessibilityNodeData::ROLE_OUTLINE, NSAccessibilityOutlineRole }, | 132 { WebKit::WebAXRoleRow, NSAccessibilityRowRole }, |
133 { AccessibilityNodeData::ROLE_PARAGRAPH, NSAccessibilityGroupRole }, | 133 { WebKit::WebAXRoleRowHeader, @"AXCell" }, |
134 { AccessibilityNodeData::ROLE_POPUP_BUTTON, | 134 { WebKit::WebAXRoleRuler, NSAccessibilityRulerRole }, |
135 NSAccessibilityPopUpButtonRole }, | 135 { WebKit::WebAXRoleRulerMarker, NSAccessibilityRulerMarkerRole }, |
136 { AccessibilityNodeData::ROLE_PRESENTATIONAL, NSAccessibilityGroupRole }, | |
137 { AccessibilityNodeData::ROLE_PROGRESS_INDICATOR, | |
138 NSAccessibilityProgressIndicatorRole }, | |
139 { AccessibilityNodeData::ROLE_RADIO_BUTTON, | |
140 NSAccessibilityRadioButtonRole }, | |
141 { AccessibilityNodeData::ROLE_RADIO_GROUP, NSAccessibilityRadioGroupRole }, | |
142 { AccessibilityNodeData::ROLE_REGION, NSAccessibilityGroupRole }, | |
143 { AccessibilityNodeData::ROLE_ROOT_WEB_AREA, @"AXWebArea" }, | |
144 { AccessibilityNodeData::ROLE_ROW, NSAccessibilityRowRole }, | |
145 { AccessibilityNodeData::ROLE_ROW_HEADER, @"AXCell" }, | |
146 { AccessibilityNodeData::ROLE_RULER, NSAccessibilityRulerRole }, | |
147 { AccessibilityNodeData::ROLE_RULER_MARKER, | |
148 NSAccessibilityRulerMarkerRole }, | |
149 // TODO(dtseng): we don't correctly support the attributes for these roles. | 136 // TODO(dtseng): we don't correctly support the attributes for these roles. |
150 // { AccessibilityNodeData::ROLE_SCROLLAREA, | 137 // { WebKit::WebAXRoleScrollArea, NSAccessibilityScrollAreaRole }, |
151 // NSAccessibilityScrollAreaRole }, | 138 { WebKit::WebAXRoleScrollBar, NSAccessibilityScrollBarRole }, |
152 { AccessibilityNodeData::ROLE_SCROLLBAR, NSAccessibilityScrollBarRole }, | 139 { WebKit::WebAXRoleSheet, NSAccessibilitySheetRole }, |
153 { AccessibilityNodeData::ROLE_SHEET, NSAccessibilitySheetRole }, | 140 { WebKit::WebAXRoleSlider, NSAccessibilitySliderRole }, |
154 { AccessibilityNodeData::ROLE_SLIDER, NSAccessibilitySliderRole }, | 141 { WebKit::WebAXRoleSliderThumb, NSAccessibilityValueIndicatorRole }, |
155 { AccessibilityNodeData::ROLE_SLIDER_THUMB, | 142 { WebKit::WebAXRoleSpinButton, NSAccessibilitySliderRole }, |
156 NSAccessibilityValueIndicatorRole }, | 143 { WebKit::WebAXRoleSplitter, NSAccessibilitySplitterRole }, |
157 { AccessibilityNodeData::ROLE_SPIN_BUTTON, NSAccessibilitySliderRole }, | 144 { WebKit::WebAXRoleSplitGroup, NSAccessibilitySplitGroupRole }, |
158 { AccessibilityNodeData::ROLE_SPLITTER, NSAccessibilitySplitterRole }, | 145 { WebKit::WebAXRoleStaticText, NSAccessibilityStaticTextRole }, |
159 { AccessibilityNodeData::ROLE_SPLIT_GROUP, NSAccessibilitySplitGroupRole }, | 146 { WebKit::WebAXRoleStatus, NSAccessibilityGroupRole }, |
160 { AccessibilityNodeData::ROLE_STATIC_TEXT, NSAccessibilityStaticTextRole }, | 147 { WebKit::WebAXRoleSVGRoot, NSAccessibilityGroupRole }, |
161 { AccessibilityNodeData::ROLE_STATUS, NSAccessibilityGroupRole }, | 148 { WebKit::WebAXRoleSystemWide, NSAccessibilityUnknownRole }, |
162 { AccessibilityNodeData::ROLE_SVG_ROOT, NSAccessibilityGroupRole }, | 149 { WebKit::WebAXRoleTab, NSAccessibilityRadioButtonRole }, |
163 { AccessibilityNodeData::ROLE_SYSTEM_WIDE, NSAccessibilityUnknownRole }, | 150 { WebKit::WebAXRoleTabList, NSAccessibilityTabGroupRole }, |
164 { AccessibilityNodeData::ROLE_TAB, NSAccessibilityRadioButtonRole }, | 151 { WebKit::WebAXRoleTabPanel, NSAccessibilityGroupRole }, |
165 { AccessibilityNodeData::ROLE_TAB_LIST, NSAccessibilityTabGroupRole }, | 152 { WebKit::WebAXRoleTable, NSAccessibilityTableRole }, |
166 { AccessibilityNodeData::ROLE_TAB_PANEL, NSAccessibilityGroupRole }, | 153 { WebKit::WebAXRoleTableHeaderContainer, NSAccessibilityGroupRole }, |
167 { AccessibilityNodeData::ROLE_TABLE, NSAccessibilityTableRole }, | 154 { WebKit::WebAXRoleTextArea, NSAccessibilityTextAreaRole }, |
168 { AccessibilityNodeData::ROLE_TABLE_HEADER_CONTAINER, | 155 { WebKit::WebAXRoleTextField, NSAccessibilityTextFieldRole }, |
169 NSAccessibilityGroupRole }, | 156 { WebKit::WebAXRoleTimer, NSAccessibilityGroupRole }, |
170 { AccessibilityNodeData::ROLE_TAB_GROUP_UNUSED, | 157 { WebKit::WebAXRoleToggleButton, NSAccessibilityButtonRole }, |
171 NSAccessibilityTabGroupRole }, | 158 { WebKit::WebAXRoleToolbar, NSAccessibilityToolbarRole }, |
172 { AccessibilityNodeData::ROLE_TEXTAREA, NSAccessibilityTextAreaRole }, | 159 { WebKit::WebAXRoleUserInterfaceTooltip, NSAccessibilityGroupRole }, |
173 { AccessibilityNodeData::ROLE_TEXT_FIELD, NSAccessibilityTextFieldRole }, | 160 { WebKit::WebAXRoleTree, NSAccessibilityOutlineRole }, |
174 { AccessibilityNodeData::ROLE_TIMER, NSAccessibilityGroupRole }, | 161 { WebKit::WebAXRoleTreeGrid, NSAccessibilityTableRole }, |
175 { AccessibilityNodeData::ROLE_TOGGLE_BUTTON, NSAccessibilityButtonRole }, | 162 { WebKit::WebAXRoleTreeItem, NSAccessibilityRowRole }, |
176 { AccessibilityNodeData::ROLE_TOOLBAR, NSAccessibilityToolbarRole }, | 163 { WebKit::WebAXRoleValueIndicator, NSAccessibilityValueIndicatorRole }, |
177 { AccessibilityNodeData::ROLE_TOOLTIP, NSAccessibilityGroupRole }, | 164 { WebKit::WebAXRoleLink, NSAccessibilityLinkRole }, |
178 { AccessibilityNodeData::ROLE_TREE, NSAccessibilityOutlineRole }, | 165 { WebKit::WebAXRoleWebArea, @"AXWebArea" }, |
179 { AccessibilityNodeData::ROLE_TREE_GRID, NSAccessibilityTableRole }, | 166 { WebKit::WebAXRoleWindow, NSAccessibilityWindowRole }, |
180 { AccessibilityNodeData::ROLE_TREE_ITEM, NSAccessibilityRowRole }, | |
181 { AccessibilityNodeData::ROLE_VALUE_INDICATOR, | |
182 NSAccessibilityValueIndicatorRole }, | |
183 { AccessibilityNodeData::ROLE_WEBCORE_LINK, NSAccessibilityLinkRole }, | |
184 { AccessibilityNodeData::ROLE_WEB_AREA, @"AXWebArea" }, | |
185 { AccessibilityNodeData::ROLE_WINDOW, NSAccessibilityWindowRole }, | |
186 }; | 167 }; |
187 | 168 |
188 RoleMap role_map; | 169 RoleMap role_map; |
189 for (size_t i = 0; i < arraysize(roles); ++i) | 170 for (size_t i = 0; i < arraysize(roles); ++i) |
190 role_map[roles[i].webKitValue] = roles[i].nativeValue; | 171 role_map[roles[i].webKitValue] = roles[i].nativeValue; |
191 return role_map; | 172 return role_map; |
192 } | 173 } |
193 | 174 |
194 // A mapping of webkit roles to native roles. | 175 // A mapping of webkit roles to native roles. |
195 NSString* NativeRoleFromAccessibilityNodeDataRole( | 176 NSString* NativeRoleFromAccessibilityNodeDataRole( |
196 const AccessibilityNodeData::Role& role) { | 177 const WebKit::WebAXRole& role) { |
197 CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_role, | 178 CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_role, |
198 (BuildRoleMap())); | 179 (BuildRoleMap())); |
199 RoleMap::iterator it = web_accessibility_to_native_role.find(role); | 180 RoleMap::iterator it = web_accessibility_to_native_role.find(role); |
200 if (it != web_accessibility_to_native_role.end()) | 181 if (it != web_accessibility_to_native_role.end()) |
201 return it->second; | 182 return it->second; |
202 else | 183 else |
203 return NSAccessibilityUnknownRole; | 184 return NSAccessibilityUnknownRole; |
204 } | 185 } |
205 | 186 |
206 RoleMap BuildSubroleMap() { | 187 RoleMap BuildSubroleMap() { |
207 const MapEntry subroles[] = { | 188 const MapEntry subroles[] = { |
208 { AccessibilityNodeData::ROLE_ALERT, @"AXApplicationAlert" }, | 189 { WebKit::WebAXRoleAlert, @"AXApplicationAlert" }, |
209 { AccessibilityNodeData::ROLE_ALERT_DIALOG, @"AXApplicationAlertDialog" }, | 190 { WebKit::WebAXRoleAlertDialog, @"AXApplicationAlertDialog" }, |
210 { AccessibilityNodeData::ROLE_ARTICLE, @"AXDocumentArticle" }, | 191 { WebKit::WebAXRoleArticle, @"AXDocumentArticle" }, |
211 { AccessibilityNodeData::ROLE_DEFINITION, @"AXDefinition" }, | 192 { WebKit::WebAXRoleDefinition, @"AXDefinition" }, |
212 { AccessibilityNodeData::ROLE_DESCRIPTION_LIST_DETAIL, @"AXDescription" }, | 193 { WebKit::WebAXRoleDescriptionListDetail, @"AXDescription" }, |
213 { AccessibilityNodeData::ROLE_DESCRIPTION_LIST_TERM, @"AXTerm" }, | 194 { WebKit::WebAXRoleDescriptionListTerm, @"AXTerm" }, |
214 { AccessibilityNodeData::ROLE_DIALOG, @"AXApplicationDialog" }, | 195 { WebKit::WebAXRoleDialog, @"AXApplicationDialog" }, |
215 { AccessibilityNodeData::ROLE_DOCUMENT, @"AXDocument" }, | 196 { WebKit::WebAXRoleDocument, @"AXDocument" }, |
216 { AccessibilityNodeData::ROLE_FOOTER, @"AXLandmarkContentInfo" }, | 197 { WebKit::WebAXRoleFooter, @"AXLandmarkContentInfo" }, |
217 { AccessibilityNodeData::ROLE_LANDMARK_APPLICATION, | 198 { WebKit::WebAXRoleApplication, |
218 @"AXLandmarkApplication" }, | 199 @"AXLandmarkApplication" }, |
aboxhall
2013/08/29 00:59:06
Does this fit on previous line now? (and below)
dmazzoni
2013/08/29 04:47:15
Yes, thanks. I wrapped above and forgot to check t
| |
219 { AccessibilityNodeData::ROLE_LANDMARK_BANNER, @"AXLandmarkBanner" }, | 200 { WebKit::WebAXRoleBanner, @"AXLandmarkBanner" }, |
220 { AccessibilityNodeData::ROLE_LANDMARK_COMPLEMENTARY, | 201 { WebKit::WebAXRoleComplementary, |
221 @"AXLandmarkComplementary" }, | 202 @"AXLandmarkComplementary" }, |
222 { AccessibilityNodeData::ROLE_LANDMARK_CONTENTINFO, | 203 { WebKit::WebAXRoleContentInfo, |
223 @"AXLandmarkContentInfo" }, | 204 @"AXLandmarkContentInfo" }, |
224 { AccessibilityNodeData::ROLE_LANDMARK_MAIN, @"AXLandmarkMain" }, | 205 { WebKit::WebAXRoleMain, @"AXLandmarkMain" }, |
225 { AccessibilityNodeData::ROLE_LANDMARK_NAVIGATION, | 206 { WebKit::WebAXRoleNavigation, |
226 @"AXLandmarkNavigation" }, | 207 @"AXLandmarkNavigation" }, |
227 { AccessibilityNodeData::ROLE_LANDMARK_SEARCH, @"AXLandmarkSearch" }, | 208 { WebKit::WebAXRoleSearch, @"AXLandmarkSearch" }, |
228 { AccessibilityNodeData::ROLE_LOG, @"AXApplicationLog" }, | 209 { WebKit::WebAXRoleLog, @"AXApplicationLog" }, |
229 { AccessibilityNodeData::ROLE_MARQUEE, @"AXApplicationMarquee" }, | 210 { WebKit::WebAXRoleMarquee, @"AXApplicationMarquee" }, |
230 { AccessibilityNodeData::ROLE_MATH, @"AXDocumentMath" }, | 211 { WebKit::WebAXRoleMath, @"AXDocumentMath" }, |
231 { AccessibilityNodeData::ROLE_NOTE, @"AXDocumentNote" }, | 212 { WebKit::WebAXRoleNote, @"AXDocumentNote" }, |
232 { AccessibilityNodeData::ROLE_REGION, @"AXDocumentRegion" }, | 213 { WebKit::WebAXRoleRegion, @"AXDocumentRegion" }, |
233 { AccessibilityNodeData::ROLE_STATUS, @"AXApplicationStatus" }, | 214 { WebKit::WebAXRoleStatus, @"AXApplicationStatus" }, |
234 { AccessibilityNodeData::ROLE_TAB_PANEL, @"AXTabPanel" }, | 215 { WebKit::WebAXRoleTabPanel, @"AXTabPanel" }, |
235 { AccessibilityNodeData::ROLE_TIMER, @"AXApplicationTimer" }, | 216 { WebKit::WebAXRoleTimer, @"AXApplicationTimer" }, |
236 { AccessibilityNodeData::ROLE_TOOLTIP, @"AXUserInterfaceTooltip" }, | 217 { WebKit::WebAXRoleUserInterfaceTooltip, @"AXUserInterfaceTooltip" }, |
237 { AccessibilityNodeData::ROLE_TREE_ITEM, NSAccessibilityOutlineRowSubrole }, | 218 { WebKit::WebAXRoleTreeItem, NSAccessibilityOutlineRowSubrole }, |
238 }; | 219 }; |
239 | 220 |
240 RoleMap subrole_map; | 221 RoleMap subrole_map; |
241 for (size_t i = 0; i < arraysize(subroles); ++i) | 222 for (size_t i = 0; i < arraysize(subroles); ++i) |
242 subrole_map[subroles[i].webKitValue] = subroles[i].nativeValue; | 223 subrole_map[subroles[i].webKitValue] = subroles[i].nativeValue; |
243 return subrole_map; | 224 return subrole_map; |
244 } | 225 } |
245 | 226 |
246 // A mapping of webkit roles to native subroles. | 227 // A mapping of webkit roles to native subroles. |
247 NSString* NativeSubroleFromAccessibilityNodeDataRole( | 228 NSString* NativeSubroleFromAccessibilityNodeDataRole( |
248 const AccessibilityNodeData::Role& role) { | 229 const WebKit::WebAXRole& role) { |
249 CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_subrole, | 230 CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_subrole, |
250 (BuildSubroleMap())); | 231 (BuildSubroleMap())); |
251 RoleMap::iterator it = web_accessibility_to_native_subrole.find(role); | 232 RoleMap::iterator it = web_accessibility_to_native_subrole.find(role); |
252 if (it != web_accessibility_to_native_subrole.end()) | 233 if (it != web_accessibility_to_native_subrole.end()) |
253 return it->second; | 234 return it->second; |
254 else | 235 else |
255 return nil; | 236 return nil; |
256 } | 237 } |
257 | 238 |
258 // A mapping from an accessibility attribute to its method name. | 239 // A mapping from an accessibility attribute to its method name. |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
414 - (void)childrenChanged { | 395 - (void)childrenChanged { |
415 if (![self isIgnored]) { | 396 if (![self isIgnored]) { |
416 children_.reset(); | 397 children_.reset(); |
417 } else { | 398 } else { |
418 [browserAccessibility_->parent()->ToBrowserAccessibilityCocoa() | 399 [browserAccessibility_->parent()->ToBrowserAccessibilityCocoa() |
419 childrenChanged]; | 400 childrenChanged]; |
420 } | 401 } |
421 } | 402 } |
422 | 403 |
423 - (NSArray*)columnHeaders { | 404 - (NSArray*)columnHeaders { |
424 if ([self internalRole] != AccessibilityNodeData::ROLE_TABLE && | 405 if ([self internalRole] != WebKit::WebAXRoleTable && |
425 [self internalRole] != AccessibilityNodeData::ROLE_GRID) { | 406 [self internalRole] != WebKit::WebAXRoleGrid) { |
426 return nil; | 407 return nil; |
427 } | 408 } |
428 | 409 |
429 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; | 410 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; |
430 const std::vector<int32>& uniqueCellIds = | 411 const std::vector<int32>& uniqueCellIds = |
431 browserAccessibility_->GetIntListAttribute( | 412 browserAccessibility_->GetIntListAttribute( |
432 AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS); | 413 AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS); |
433 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { | 414 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { |
434 int id = uniqueCellIds[i]; | 415 int id = uniqueCellIds[i]; |
435 BrowserAccessibility* cell = | 416 BrowserAccessibility* cell = |
436 browserAccessibility_->manager()->GetFromRendererID(id); | 417 browserAccessibility_->manager()->GetFromRendererID(id); |
437 if (cell && cell->role() == AccessibilityNodeData::ROLE_COLUMN_HEADER) | 418 if (cell && cell->role() == WebKit::WebAXRoleColumnHeader) |
438 [ret addObject:cell->ToBrowserAccessibilityCocoa()]; | 419 [ret addObject:cell->ToBrowserAccessibilityCocoa()]; |
439 } | 420 } |
440 return ret; | 421 return ret; |
441 } | 422 } |
442 | 423 |
443 - (NSValue*)columnIndexRange { | 424 - (NSValue*)columnIndexRange { |
444 if ([self internalRole] != AccessibilityNodeData::ROLE_CELL) | 425 if ([self internalRole] != WebKit::WebAXRoleCell) |
445 return nil; | 426 return nil; |
446 | 427 |
447 int column = -1; | 428 int column = -1; |
448 int colspan = -1; | 429 int colspan = -1; |
449 browserAccessibility_->GetIntAttribute( | 430 browserAccessibility_->GetIntAttribute( |
450 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column); | 431 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column); |
451 browserAccessibility_->GetIntAttribute( | 432 browserAccessibility_->GetIntAttribute( |
452 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan); | 433 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan); |
453 if (column >= 0 && colspan >= 1) | 434 if (column >= 0 && colspan >= 1) |
454 return [NSValue valueWithRange:NSMakeRange(column, colspan)]; | 435 return [NSValue valueWithRange:NSMakeRange(column, colspan)]; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
492 size_t leftIndex = url.rfind('/'); | 473 size_t leftIndex = url.rfind('/'); |
493 std::string basename = | 474 std::string basename = |
494 leftIndex != std::string::npos ? url.substr(leftIndex) : url; | 475 leftIndex != std::string::npos ? url.substr(leftIndex) : url; |
495 return base::SysUTF8ToNSString(basename); | 476 return base::SysUTF8ToNSString(basename); |
496 } | 477 } |
497 | 478 |
498 return @""; | 479 return @""; |
499 } | 480 } |
500 | 481 |
501 - (NSNumber*)disclosing { | 482 - (NSNumber*)disclosing { |
502 if ([self internalRole] == AccessibilityNodeData::ROLE_TREE_ITEM) { | 483 if ([self internalRole] == WebKit::WebAXRoleTreeItem) { |
503 return [NSNumber numberWithBool: | 484 return [NSNumber numberWithBool: |
504 GetState(browserAccessibility_, AccessibilityNodeData::STATE_EXPANDED)]; | 485 GetState(browserAccessibility_, WebKit::WebAXStateExpanded)]; |
505 } else { | 486 } else { |
506 return nil; | 487 return nil; |
507 } | 488 } |
508 } | 489 } |
509 | 490 |
510 - (id)disclosedByRow { | 491 - (id)disclosedByRow { |
511 // The row that contains this row. | 492 // The row that contains this row. |
512 // It should be the same as the first parent that is a treeitem. | 493 // It should be the same as the first parent that is a treeitem. |
513 return nil; | 494 return nil; |
514 } | 495 } |
515 | 496 |
516 - (NSNumber*)disclosureLevel { | 497 - (NSNumber*)disclosureLevel { |
517 AccessibilityNodeData::Role role = [self internalRole]; | 498 WebKit::WebAXRole role = [self internalRole]; |
518 if (role == AccessibilityNodeData::ROLE_ROW || | 499 if (role == WebKit::WebAXRoleRow || |
519 role == AccessibilityNodeData::ROLE_TREE_ITEM) { | 500 role == WebKit::WebAXRoleTreeItem) { |
520 int level = browserAccessibility_->GetIntAttribute( | 501 int level = browserAccessibility_->GetIntAttribute( |
521 AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL); | 502 AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL); |
522 // Mac disclosureLevel is 0-based, but web levels are 1-based. | 503 // Mac disclosureLevel is 0-based, but web levels are 1-based. |
523 if (level > 0) | 504 if (level > 0) |
524 level--; | 505 level--; |
525 return [NSNumber numberWithInt:level]; | 506 return [NSNumber numberWithInt:level]; |
526 } else { | 507 } else { |
527 return nil; | 508 return nil; |
528 } | 509 } |
529 } | 510 } |
530 | 511 |
531 - (id)disclosedRows { | 512 - (id)disclosedRows { |
532 // The rows that are considered inside this row. | 513 // The rows that are considered inside this row. |
533 return nil; | 514 return nil; |
534 } | 515 } |
535 | 516 |
536 - (NSNumber*)enabled { | 517 - (NSNumber*)enabled { |
537 return [NSNumber numberWithBool: | 518 return [NSNumber numberWithBool: |
538 !GetState(browserAccessibility_, | 519 GetState(browserAccessibility_, WebKit::WebAXStateEnabled)]; |
aboxhall
2013/08/29 00:59:06
What's the difference between enabled and availabl
dmazzoni
2013/08/29 04:47:15
Enabled seems a lot more clear to me (and web-like
| |
539 AccessibilityNodeData::STATE_UNAVAILABLE)]; | |
540 } | 520 } |
541 | 521 |
542 - (NSNumber*)focused { | 522 - (NSNumber*)focused { |
543 BrowserAccessibilityManager* manager = browserAccessibility_->manager(); | 523 BrowserAccessibilityManager* manager = browserAccessibility_->manager(); |
544 NSNumber* ret = [NSNumber numberWithBool: | 524 NSNumber* ret = [NSNumber numberWithBool: |
545 manager->GetFocus(NULL) == browserAccessibility_]; | 525 manager->GetFocus(NULL) == browserAccessibility_]; |
546 return ret; | 526 return ret; |
547 } | 527 } |
548 | 528 |
549 - (id)header { | 529 - (id)header { |
550 int headerElementId = -1; | 530 int headerElementId = -1; |
551 if ([self internalRole] == AccessibilityNodeData::ROLE_TABLE || | 531 if ([self internalRole] == WebKit::WebAXRoleTable || |
552 [self internalRole] == AccessibilityNodeData::ROLE_GRID) { | 532 [self internalRole] == WebKit::WebAXRoleGrid) { |
553 browserAccessibility_->GetIntAttribute( | 533 browserAccessibility_->GetIntAttribute( |
554 AccessibilityNodeData::ATTR_TABLE_HEADER_ID, &headerElementId); | 534 AccessibilityNodeData::ATTR_TABLE_HEADER_ID, &headerElementId); |
555 } else if ([self internalRole] == AccessibilityNodeData::ROLE_COLUMN) { | 535 } else if ([self internalRole] == WebKit::WebAXRoleColumn) { |
556 browserAccessibility_->GetIntAttribute( | 536 browserAccessibility_->GetIntAttribute( |
557 AccessibilityNodeData::ATTR_TABLE_COLUMN_HEADER_ID, &headerElementId); | 537 AccessibilityNodeData::ATTR_TABLE_COLUMN_HEADER_ID, &headerElementId); |
558 } else if ([self internalRole] == AccessibilityNodeData::ROLE_ROW) { | 538 } else if ([self internalRole] == WebKit::WebAXRoleRow) { |
559 browserAccessibility_->GetIntAttribute( | 539 browserAccessibility_->GetIntAttribute( |
560 AccessibilityNodeData::ATTR_TABLE_ROW_HEADER_ID, &headerElementId); | 540 AccessibilityNodeData::ATTR_TABLE_ROW_HEADER_ID, &headerElementId); |
561 } | 541 } |
562 | 542 |
563 if (headerElementId > 0) { | 543 if (headerElementId > 0) { |
564 BrowserAccessibility* headerObject = | 544 BrowserAccessibility* headerObject = |
565 browserAccessibility_->manager()->GetFromRendererID(headerElementId); | 545 browserAccessibility_->manager()->GetFromRendererID(headerElementId); |
566 if (headerObject) | 546 if (headerObject) |
567 return headerObject->ToBrowserAccessibilityCocoa(); | 547 return headerObject->ToBrowserAccessibilityCocoa(); |
568 } | 548 } |
569 return nil; | 549 return nil; |
570 } | 550 } |
571 | 551 |
572 - (NSString*)help { | 552 - (NSString*)help { |
573 return NSStringForStringAttribute( | 553 return NSStringForStringAttribute( |
574 browserAccessibility_, AccessibilityNodeData::ATTR_HELP); | 554 browserAccessibility_, AccessibilityNodeData::ATTR_HELP); |
575 } | 555 } |
576 | 556 |
577 - (NSNumber*)index { | 557 - (NSNumber*)index { |
578 if ([self internalRole] == AccessibilityNodeData::ROLE_COLUMN) { | 558 if ([self internalRole] == WebKit::WebAXRoleColumn) { |
579 int columnIndex = browserAccessibility_->GetIntAttribute( | 559 int columnIndex = browserAccessibility_->GetIntAttribute( |
580 AccessibilityNodeData::ATTR_TABLE_COLUMN_INDEX); | 560 AccessibilityNodeData::ATTR_TABLE_COLUMN_INDEX); |
581 return [NSNumber numberWithInt:columnIndex]; | 561 return [NSNumber numberWithInt:columnIndex]; |
582 } else if ([self internalRole] == AccessibilityNodeData::ROLE_ROW) { | 562 } else if ([self internalRole] == WebKit::WebAXRoleRow) { |
583 int rowIndex = browserAccessibility_->GetIntAttribute( | 563 int rowIndex = browserAccessibility_->GetIntAttribute( |
584 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX); | 564 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX); |
585 return [NSNumber numberWithInt:rowIndex]; | 565 return [NSNumber numberWithInt:rowIndex]; |
586 } | 566 } |
587 | 567 |
588 return nil; | 568 return nil; |
589 } | 569 } |
590 | 570 |
591 // Returns whether or not this node should be ignored in the | 571 // Returns whether or not this node should be ignored in the |
592 // accessibility tree. | 572 // accessibility tree. |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
624 | 604 |
625 - (NSNumber*)minValue { | 605 - (NSNumber*)minValue { |
626 float floatValue = browserAccessibility_->GetFloatAttribute( | 606 float floatValue = browserAccessibility_->GetFloatAttribute( |
627 AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE); | 607 AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE); |
628 return [NSNumber numberWithFloat:floatValue]; | 608 return [NSNumber numberWithFloat:floatValue]; |
629 } | 609 } |
630 | 610 |
631 - (NSString*)orientation { | 611 - (NSString*)orientation { |
632 // We present a spin button as a vertical slider, with a role description | 612 // We present a spin button as a vertical slider, with a role description |
633 // of "spin button". | 613 // of "spin button". |
634 if ([self internalRole] == AccessibilityNodeData::ROLE_SPIN_BUTTON) | 614 if ([self internalRole] == WebKit::WebAXRoleSpinButton) |
635 return NSAccessibilityVerticalOrientationValue; | 615 return NSAccessibilityVerticalOrientationValue; |
636 | 616 |
637 if (GetState(browserAccessibility_, AccessibilityNodeData::STATE_VERTICAL)) | 617 if (GetState(browserAccessibility_, WebKit::WebAXStateVertical)) |
638 return NSAccessibilityVerticalOrientationValue; | 618 return NSAccessibilityVerticalOrientationValue; |
639 else | 619 else |
640 return NSAccessibilityHorizontalOrientationValue; | 620 return NSAccessibilityHorizontalOrientationValue; |
641 } | 621 } |
642 | 622 |
643 - (NSNumber*)numberOfCharacters { | 623 - (NSNumber*)numberOfCharacters { |
644 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; | 624 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; |
645 } | 625 } |
646 | 626 |
647 // The origin of this accessibility object in the page's document. | 627 // The origin of this accessibility object in the page's document. |
(...skipping 17 matching lines...) Expand all Loading... | |
665 return manager->parent_view(); | 645 return manager->parent_view(); |
666 } | 646 } |
667 } | 647 } |
668 | 648 |
669 - (NSValue*)position { | 649 - (NSValue*)position { |
670 return [NSValue valueWithPoint:[delegate_ accessibilityPointInScreen:self]]; | 650 return [NSValue valueWithPoint:[delegate_ accessibilityPointInScreen:self]]; |
671 } | 651 } |
672 | 652 |
673 - (NSNumber*)required { | 653 - (NSNumber*)required { |
674 return [NSNumber numberWithBool: | 654 return [NSNumber numberWithBool: |
675 GetState(browserAccessibility_, AccessibilityNodeData::STATE_REQUIRED)]; | 655 GetState(browserAccessibility_, WebKit::WebAXStateRequired)]; |
676 } | 656 } |
677 | 657 |
678 // Returns an enum indicating the role from browserAccessibility_. | 658 // Returns an enum indicating the role from browserAccessibility_. |
679 - (AccessibilityNodeData::Role)internalRole { | 659 - (WebKit::WebAXRole)internalRole { |
680 return static_cast<AccessibilityNodeData::Role>( | 660 return static_cast<WebKit::WebAXRole>(browserAccessibility_->role()); |
681 browserAccessibility_->role()); | |
682 } | 661 } |
683 | 662 |
684 // Returns a string indicating the NSAccessibility role of this object. | 663 // Returns a string indicating the NSAccessibility role of this object. |
685 - (NSString*)role { | 664 - (NSString*)role { |
686 return NativeRoleFromAccessibilityNodeDataRole([self internalRole]); | 665 return NativeRoleFromAccessibilityNodeDataRole([self internalRole]); |
687 } | 666 } |
688 | 667 |
689 // Returns a string indicating the role description of this object. | 668 // Returns a string indicating the role description of this object. |
690 - (NSString*)roleDescription { | 669 - (NSString*)roleDescription { |
691 NSString* role = [self role]; | 670 NSString* role = [self role]; |
(...skipping 13 matching lines...) Expand all Loading... | |
705 | 684 |
706 if ([role isEqualToString:@"AXHeading"]) { | 685 if ([role isEqualToString:@"AXHeading"]) { |
707 return base::SysUTF16ToNSString(content_client->GetLocalizedString( | 686 return base::SysUTF16ToNSString(content_client->GetLocalizedString( |
708 IDS_AX_ROLE_HEADING)); | 687 IDS_AX_ROLE_HEADING)); |
709 } | 688 } |
710 | 689 |
711 if ([role isEqualToString:NSAccessibilityGroupRole] || | 690 if ([role isEqualToString:NSAccessibilityGroupRole] || |
712 [role isEqualToString:NSAccessibilityRadioButtonRole]) { | 691 [role isEqualToString:NSAccessibilityRadioButtonRole]) { |
713 std::string role; | 692 std::string role; |
714 if (browserAccessibility_->GetHtmlAttribute("role", &role)) { | 693 if (browserAccessibility_->GetHtmlAttribute("role", &role)) { |
715 AccessibilityNodeData::Role internalRole = | 694 WebKit::WebAXRole internalRole = [self internalRole]; |
716 [self internalRole]; | 695 if ((internalRole != WebKit::WebAXRoleGroup && |
717 if ((internalRole != AccessibilityNodeData::ROLE_GROUP && | 696 internalRole != WebKit::WebAXRoleListItem) || |
718 internalRole != AccessibilityNodeData::ROLE_LIST_ITEM) || | 697 internalRole == WebKit::WebAXRoleTab) { |
719 internalRole == AccessibilityNodeData::ROLE_TAB) { | |
720 // TODO(dtseng): This is not localized; see crbug/84814. | 698 // TODO(dtseng): This is not localized; see crbug/84814. |
721 return base::SysUTF8ToNSString(role); | 699 return base::SysUTF8ToNSString(role); |
722 } | 700 } |
723 } | 701 } |
724 } | 702 } |
725 | 703 |
726 switch([self internalRole]) { | 704 switch([self internalRole]) { |
727 case AccessibilityNodeData::ROLE_FOOTER: | 705 case WebKit::WebAXRoleFooter: |
728 return base::SysUTF16ToNSString(content_client->GetLocalizedString( | 706 return base::SysUTF16ToNSString(content_client->GetLocalizedString( |
729 IDS_AX_ROLE_FOOTER)); | 707 IDS_AX_ROLE_FOOTER)); |
730 case AccessibilityNodeData::ROLE_SPIN_BUTTON: | 708 case WebKit::WebAXRoleSpinButton: |
731 // This control is similar to what VoiceOver calls a "stepper". | 709 // This control is similar to what VoiceOver calls a "stepper". |
732 return base::SysUTF16ToNSString(content_client->GetLocalizedString( | 710 return base::SysUTF16ToNSString(content_client->GetLocalizedString( |
733 IDS_AX_ROLE_STEPPER)); | 711 IDS_AX_ROLE_STEPPER)); |
734 default: | 712 default: |
735 break; | 713 break; |
736 } | 714 } |
737 | 715 |
738 return NSAccessibilityRoleDescription(role, nil); | 716 return NSAccessibilityRoleDescription(role, nil); |
739 } | 717 } |
740 | 718 |
741 - (NSArray*)rowHeaders { | 719 - (NSArray*)rowHeaders { |
742 if ([self internalRole] != AccessibilityNodeData::ROLE_TABLE && | 720 if ([self internalRole] != WebKit::WebAXRoleTable && |
743 [self internalRole] != AccessibilityNodeData::ROLE_GRID) { | 721 [self internalRole] != WebKit::WebAXRoleGrid) { |
744 return nil; | 722 return nil; |
745 } | 723 } |
746 | 724 |
747 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; | 725 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; |
748 const std::vector<int32>& uniqueCellIds = | 726 const std::vector<int32>& uniqueCellIds = |
749 browserAccessibility_->GetIntListAttribute( | 727 browserAccessibility_->GetIntListAttribute( |
750 AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS); | 728 AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS); |
751 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { | 729 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { |
752 int id = uniqueCellIds[i]; | 730 int id = uniqueCellIds[i]; |
753 BrowserAccessibility* cell = | 731 BrowserAccessibility* cell = |
754 browserAccessibility_->manager()->GetFromRendererID(id); | 732 browserAccessibility_->manager()->GetFromRendererID(id); |
755 if (cell && cell->role() == AccessibilityNodeData::ROLE_ROW_HEADER) | 733 if (cell && cell->role() == WebKit::WebAXRoleRowHeader) |
756 [ret addObject:cell->ToBrowserAccessibilityCocoa()]; | 734 [ret addObject:cell->ToBrowserAccessibilityCocoa()]; |
757 } | 735 } |
758 return ret; | 736 return ret; |
759 } | 737 } |
760 | 738 |
761 - (NSValue*)rowIndexRange { | 739 - (NSValue*)rowIndexRange { |
762 if ([self internalRole] != AccessibilityNodeData::ROLE_CELL) | 740 if ([self internalRole] != WebKit::WebAXRoleCell) |
763 return nil; | 741 return nil; |
764 | 742 |
765 int row = -1; | 743 int row = -1; |
766 int rowspan = -1; | 744 int rowspan = -1; |
767 browserAccessibility_->GetIntAttribute( | 745 browserAccessibility_->GetIntAttribute( |
768 AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row); | 746 AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row); |
769 browserAccessibility_->GetIntAttribute( | 747 browserAccessibility_->GetIntAttribute( |
770 AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan); | 748 AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan); |
771 if (row >= 0 && rowspan >= 1) | 749 if (row >= 0 && rowspan >= 1) |
772 return [NSValue valueWithRange:NSMakeRange(row, rowspan)]; | 750 return [NSValue valueWithRange:NSMakeRange(row, rowspan)]; |
773 return nil; | 751 return nil; |
774 } | 752 } |
775 | 753 |
776 - (NSArray*)rows { | 754 - (NSArray*)rows { |
777 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; | 755 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; |
778 | 756 |
779 if ([self internalRole] == AccessibilityNodeData::ROLE_TABLE|| | 757 if ([self internalRole] == WebKit::WebAXRoleTable|| |
780 [self internalRole] == AccessibilityNodeData::ROLE_GRID) { | 758 [self internalRole] == WebKit::WebAXRoleGrid) { |
781 for (BrowserAccessibilityCocoa* child in [self children]) { | 759 for (BrowserAccessibilityCocoa* child in [self children]) { |
782 if ([[child role] isEqualToString:NSAccessibilityRowRole]) | 760 if ([[child role] isEqualToString:NSAccessibilityRowRole]) |
783 [ret addObject:child]; | 761 [ret addObject:child]; |
784 } | 762 } |
785 } else if ([self internalRole] == AccessibilityNodeData::ROLE_COLUMN) { | 763 } else if ([self internalRole] == WebKit::WebAXRoleColumn) { |
786 const std::vector<int32>& indirectChildIds = | 764 const std::vector<int32>& indirectChildIds = |
787 browserAccessibility_->GetIntListAttribute( | 765 browserAccessibility_->GetIntListAttribute( |
788 AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS); | 766 AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS); |
789 for (uint32 i = 0; i < indirectChildIds.size(); ++i) { | 767 for (uint32 i = 0; i < indirectChildIds.size(); ++i) { |
790 int id = indirectChildIds[i]; | 768 int id = indirectChildIds[i]; |
791 BrowserAccessibility* rowElement = | 769 BrowserAccessibility* rowElement = |
792 browserAccessibility_->manager()->GetFromRendererID(id); | 770 browserAccessibility_->manager()->GetFromRendererID(id); |
793 if (rowElement) | 771 if (rowElement) |
794 [ret addObject:rowElement->ToBrowserAccessibilityCocoa()]; | 772 [ret addObject:rowElement->ToBrowserAccessibilityCocoa()]; |
795 } | 773 } |
796 } | 774 } |
797 | 775 |
798 return ret; | 776 return ret; |
799 } | 777 } |
800 | 778 |
801 // Returns the size of this object. | 779 // Returns the size of this object. |
802 - (NSValue*)size { | 780 - (NSValue*)size { |
803 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect(); | 781 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect(); |
804 return [NSValue valueWithSize:NSMakeSize(bounds.width(), bounds.height())]; | 782 return [NSValue valueWithSize:NSMakeSize(bounds.width(), bounds.height())]; |
805 } | 783 } |
806 | 784 |
807 // Returns a subrole based upon the role. | 785 // Returns a subrole based upon the role. |
808 - (NSString*) subrole { | 786 - (NSString*) subrole { |
809 AccessibilityNodeData::Role browserAccessibilityRole = [self internalRole]; | 787 WebKit::WebAXRole browserAccessibilityRole = [self internalRole]; |
810 if (browserAccessibilityRole == AccessibilityNodeData::ROLE_TEXT_FIELD && | 788 if (browserAccessibilityRole == WebKit::WebAXRoleTextField && |
811 GetState(browserAccessibility_, AccessibilityNodeData::STATE_PROTECTED)) { | 789 GetState(browserAccessibility_, WebKit::WebAXStateProtected)) { |
812 return @"AXSecureTextField"; | 790 return @"AXSecureTextField"; |
813 } | 791 } |
814 | 792 |
815 NSString* htmlTag = NSStringForStringAttribute( | 793 NSString* htmlTag = NSStringForStringAttribute( |
816 browserAccessibility_, AccessibilityNodeData::ATTR_HTML_TAG); | 794 browserAccessibility_, AccessibilityNodeData::ATTR_HTML_TAG); |
817 | 795 |
818 if (browserAccessibilityRole == AccessibilityNodeData::ROLE_LIST) { | 796 if (browserAccessibilityRole == WebKit::WebAXRoleList) { |
819 if ([htmlTag isEqualToString:@"ul"] || | 797 if ([htmlTag isEqualToString:@"ul"] || |
820 [htmlTag isEqualToString:@"ol"]) { | 798 [htmlTag isEqualToString:@"ol"]) { |
821 return @"AXContentList"; | 799 return @"AXContentList"; |
822 } else if ([htmlTag isEqualToString:@"dl"]) { | 800 } else if ([htmlTag isEqualToString:@"dl"]) { |
823 return @"AXDescriptionList"; | 801 return @"AXDescriptionList"; |
824 } | 802 } |
825 } | 803 } |
826 | 804 |
827 return NativeSubroleFromAccessibilityNodeDataRole(browserAccessibilityRole); | 805 return NativeSubroleFromAccessibilityNodeDataRole(browserAccessibilityRole); |
828 } | 806 } |
829 | 807 |
830 // Returns all tabs in this subtree. | 808 // Returns all tabs in this subtree. |
831 - (NSArray*)tabs { | 809 - (NSArray*)tabs { |
832 NSMutableArray* tabSubtree = [[[NSMutableArray alloc] init] autorelease]; | 810 NSMutableArray* tabSubtree = [[[NSMutableArray alloc] init] autorelease]; |
833 | 811 |
834 if ([self internalRole] == AccessibilityNodeData::ROLE_TAB) | 812 if ([self internalRole] == WebKit::WebAXRoleTab) |
835 [tabSubtree addObject:self]; | 813 [tabSubtree addObject:self]; |
836 | 814 |
837 for (uint i=0; i < [[self children] count]; ++i) { | 815 for (uint i=0; i < [[self children] count]; ++i) { |
838 NSArray* tabChildren = [[[self children] objectAtIndex:i] tabs]; | 816 NSArray* tabChildren = [[[self children] objectAtIndex:i] tabs]; |
839 if ([tabChildren count] > 0) | 817 if ([tabChildren count] > 0) |
840 [tabSubtree addObjectsFromArray:tabChildren]; | 818 [tabSubtree addObjectsFromArray:tabChildren]; |
841 } | 819 } |
842 | 820 |
843 return tabSubtree; | 821 return tabSubtree; |
844 } | 822 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
879 AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL, &level)) { | 857 AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL, &level)) { |
880 return [NSNumber numberWithInt:level]; | 858 return [NSNumber numberWithInt:level]; |
881 } | 859 } |
882 } else if ([role isEqualToString:NSAccessibilityButtonRole]) { | 860 } else if ([role isEqualToString:NSAccessibilityButtonRole]) { |
883 // AXValue does not make sense for pure buttons. | 861 // AXValue does not make sense for pure buttons. |
884 return @""; | 862 return @""; |
885 } else if ([role isEqualToString:NSAccessibilityCheckBoxRole] || | 863 } else if ([role isEqualToString:NSAccessibilityCheckBoxRole] || |
886 [role isEqualToString:NSAccessibilityRadioButtonRole]) { | 864 [role isEqualToString:NSAccessibilityRadioButtonRole]) { |
887 int value = 0; | 865 int value = 0; |
888 value = GetState( | 866 value = GetState( |
889 browserAccessibility_, AccessibilityNodeData::STATE_CHECKED) ? 1 : 0; | 867 browserAccessibility_, WebKit::WebAXStateChecked) ? 1 : 0; |
890 value = GetState( | 868 value = GetState( |
891 browserAccessibility_, AccessibilityNodeData::STATE_SELECTED) ? | 869 browserAccessibility_, WebKit::WebAXStateSelected) ? |
892 1 : | 870 1 : |
893 value; | 871 value; |
894 | 872 |
895 if (browserAccessibility_->GetBoolAttribute( | 873 if (browserAccessibility_->GetBoolAttribute( |
896 AccessibilityNodeData::ATTR_BUTTON_MIXED)) { | 874 AccessibilityNodeData::ATTR_BUTTON_MIXED)) { |
897 value = 2; | 875 value = 2; |
898 } | 876 } |
899 return [NSNumber numberWithInt:value]; | 877 return [NSNumber numberWithInt:value]; |
900 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || | 878 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || |
901 [role isEqualToString:NSAccessibilitySliderRole] || | 879 [role isEqualToString:NSAccessibilitySliderRole] || |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
949 - (NSArray*)visibleColumns { | 927 - (NSArray*)visibleColumns { |
950 return [self columns]; | 928 return [self columns]; |
951 } | 929 } |
952 | 930 |
953 - (NSArray*)visibleRows { | 931 - (NSArray*)visibleRows { |
954 return [self rows]; | 932 return [self rows]; |
955 } | 933 } |
956 | 934 |
957 - (NSNumber*)visited { | 935 - (NSNumber*)visited { |
958 return [NSNumber numberWithBool: | 936 return [NSNumber numberWithBool: |
959 GetState(browserAccessibility_, AccessibilityNodeData::STATE_TRAVERSED)]; | 937 GetState(browserAccessibility_, WebKit::WebAXStateVisited)]; |
960 } | 938 } |
961 | 939 |
962 - (id)window { | 940 - (id)window { |
963 return [delegate_ window]; | 941 return [delegate_ window]; |
964 } | 942 } |
965 | 943 |
966 - (NSString*)methodNameForAttribute:(NSString*)attribute { | 944 - (NSString*)methodNameForAttribute:(NSString*)attribute { |
967 return [attributeToMethodNameMap objectForKey:attribute]; | 945 return [attributeToMethodNameMap objectForKey:attribute]; |
968 } | 946 } |
969 | 947 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1047 if (line_index < 0 || line_index >= line_count) | 1025 if (line_index < 0 || line_index >= line_count) |
1048 return nil; | 1026 return nil; |
1049 int start = line_index > 0 ? line_breaks[line_index - 1] : 0; | 1027 int start = line_index > 0 ? line_breaks[line_index - 1] : 0; |
1050 int end = line_index < line_count - 1 ? line_breaks[line_index] : len; | 1028 int end = line_index < line_count - 1 ? line_breaks[line_index] : len; |
1051 return [NSValue valueWithRange: | 1029 return [NSValue valueWithRange: |
1052 NSMakeRange(start, end - start)]; | 1030 NSMakeRange(start, end - start)]; |
1053 } | 1031 } |
1054 | 1032 |
1055 if ([attribute isEqualToString: | 1033 if ([attribute isEqualToString: |
1056 NSAccessibilityCellForColumnAndRowParameterizedAttribute]) { | 1034 NSAccessibilityCellForColumnAndRowParameterizedAttribute]) { |
1057 if ([self internalRole] != AccessibilityNodeData::ROLE_TABLE && | 1035 if ([self internalRole] != WebKit::WebAXRoleTable && |
1058 [self internalRole] != AccessibilityNodeData::ROLE_GRID) { | 1036 [self internalRole] != WebKit::WebAXRoleGrid) { |
1059 return nil; | 1037 return nil; |
1060 } | 1038 } |
1061 if (![parameter isKindOfClass:[NSArray self]]) | 1039 if (![parameter isKindOfClass:[NSArray self]]) |
1062 return nil; | 1040 return nil; |
1063 NSArray* array = parameter; | 1041 NSArray* array = parameter; |
1064 int column = [[array objectAtIndex:0] intValue]; | 1042 int column = [[array objectAtIndex:0] intValue]; |
1065 int row = [[array objectAtIndex:1] intValue]; | 1043 int row = [[array objectAtIndex:1] intValue]; |
1066 int num_columns = browserAccessibility_->GetIntAttribute( | 1044 int num_columns = browserAccessibility_->GetIntAttribute( |
1067 AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT); | 1045 AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT); |
1068 int num_rows = browserAccessibility_->GetIntAttribute( | 1046 int num_rows = browserAccessibility_->GetIntAttribute( |
1069 AccessibilityNodeData::ATTR_TABLE_ROW_COUNT); | 1047 AccessibilityNodeData::ATTR_TABLE_ROW_COUNT); |
1070 if (column < 0 || column >= num_columns || | 1048 if (column < 0 || column >= num_columns || |
1071 row < 0 || row >= num_rows) { | 1049 row < 0 || row >= num_rows) { |
1072 return nil; | 1050 return nil; |
1073 } | 1051 } |
1074 for (size_t i = 0; | 1052 for (size_t i = 0; |
1075 i < browserAccessibility_->child_count(); | 1053 i < browserAccessibility_->child_count(); |
1076 ++i) { | 1054 ++i) { |
1077 BrowserAccessibility* child = browserAccessibility_->GetChild(i); | 1055 BrowserAccessibility* child = browserAccessibility_->GetChild(i); |
1078 if (child->role() != AccessibilityNodeData::ROLE_ROW) | 1056 if (child->role() != WebKit::WebAXRoleRow) |
1079 continue; | 1057 continue; |
1080 int rowIndex; | 1058 int rowIndex; |
1081 if (!child->GetIntAttribute( | 1059 if (!child->GetIntAttribute( |
1082 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX, &rowIndex)) { | 1060 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX, &rowIndex)) { |
1083 continue; | 1061 continue; |
1084 } | 1062 } |
1085 if (rowIndex < row) | 1063 if (rowIndex < row) |
1086 continue; | 1064 continue; |
1087 if (rowIndex > row) | 1065 if (rowIndex > row) |
1088 break; | 1066 break; |
1089 for (size_t j = 0; | 1067 for (size_t j = 0; |
1090 j < child->child_count(); | 1068 j < child->child_count(); |
1091 ++j) { | 1069 ++j) { |
1092 BrowserAccessibility* cell = child->GetChild(j); | 1070 BrowserAccessibility* cell = child->GetChild(j); |
1093 if (cell->role() != AccessibilityNodeData::ROLE_CELL) | 1071 if (cell->role() != WebKit::WebAXRoleCell) |
1094 continue; | 1072 continue; |
1095 int colIndex; | 1073 int colIndex; |
1096 if (!cell->GetIntAttribute( | 1074 if (!cell->GetIntAttribute( |
1097 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, | 1075 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, |
1098 &colIndex)) { | 1076 &colIndex)) { |
1099 continue; | 1077 continue; |
1100 } | 1078 } |
1101 if (colIndex == column) | 1079 if (colIndex == column) |
1102 return cell->ToBrowserAccessibilityCocoa(); | 1080 return cell->ToBrowserAccessibilityCocoa(); |
1103 if (colIndex > column) | 1081 if (colIndex > column) |
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1356 } | 1334 } |
1357 | 1335 |
1358 // Returns whether or not the specified attribute can be set by the | 1336 // Returns whether or not the specified attribute can be set by the |
1359 // accessibility API via |accessibilitySetValue:forAttribute:|. | 1337 // accessibility API via |accessibilitySetValue:forAttribute:|. |
1360 - (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute { | 1338 - (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute { |
1361 if (!browserAccessibility_) | 1339 if (!browserAccessibility_) |
1362 return nil; | 1340 return nil; |
1363 | 1341 |
1364 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) | 1342 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) |
1365 return GetState(browserAccessibility_, | 1343 return GetState(browserAccessibility_, |
1366 AccessibilityNodeData::STATE_FOCUSABLE); | 1344 WebKit::WebAXStateFocusable); |
1367 if ([attribute isEqualToString:NSAccessibilityValueAttribute]) { | 1345 if ([attribute isEqualToString:NSAccessibilityValueAttribute]) { |
1368 return browserAccessibility_->GetBoolAttribute( | 1346 return browserAccessibility_->GetBoolAttribute( |
1369 AccessibilityNodeData::ATTR_CAN_SET_VALUE); | 1347 AccessibilityNodeData::ATTR_CAN_SET_VALUE); |
1370 } | 1348 } |
1371 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute] && | 1349 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute] && |
1372 ([[self role] isEqualToString:NSAccessibilityTextFieldRole] || | 1350 ([[self role] isEqualToString:NSAccessibilityTextFieldRole] || |
1373 [[self role] isEqualToString:NSAccessibilityTextAreaRole])) | 1351 [[self role] isEqualToString:NSAccessibilityTextAreaRole])) |
1374 return YES; | 1352 return YES; |
1375 | 1353 |
1376 return NO; | 1354 return NO; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1472 return [super hash]; | 1450 return [super hash]; |
1473 return browserAccessibility_->renderer_id(); | 1451 return browserAccessibility_->renderer_id(); |
1474 } | 1452 } |
1475 | 1453 |
1476 - (BOOL)accessibilityShouldUseUniqueId { | 1454 - (BOOL)accessibilityShouldUseUniqueId { |
1477 return YES; | 1455 return YES; |
1478 } | 1456 } |
1479 | 1457 |
1480 @end | 1458 @end |
1481 | 1459 |
OLD | NEW |