Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(970)

Side by Side Diff: content/browser/accessibility/browser_accessibility_cocoa.mm

Issue 63253002: Rename WebKit namespace to blink (part 3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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 WebKit::WebAXRole webKitValue; 43 blink::WebAXRole webKitValue;
44 NSString* nativeValue; 44 NSString* nativeValue;
45 }; 45 };
46 46
47 typedef std::map<WebKit::WebAXRole, NSString*> RoleMap; 47 typedef std::map<blink::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, WebKit::WebAXState state) { 51 bool GetState(BrowserAccessibility* accessibility, blink::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 { WebKit::WebAXRoleAlert, NSAccessibilityGroupRole }, 57 { blink::WebAXRoleAlert, NSAccessibilityGroupRole },
58 { WebKit::WebAXRoleAlertDialog, NSAccessibilityGroupRole }, 58 { blink::WebAXRoleAlertDialog, NSAccessibilityGroupRole },
59 { WebKit::WebAXRoleAnnotation, NSAccessibilityUnknownRole }, 59 { blink::WebAXRoleAnnotation, NSAccessibilityUnknownRole },
60 { WebKit::WebAXRoleApplication, NSAccessibilityGroupRole }, 60 { blink::WebAXRoleApplication, NSAccessibilityGroupRole },
61 { WebKit::WebAXRoleArticle, NSAccessibilityGroupRole }, 61 { blink::WebAXRoleArticle, NSAccessibilityGroupRole },
62 { WebKit::WebAXRoleBrowser, NSAccessibilityBrowserRole }, 62 { blink::WebAXRoleBrowser, NSAccessibilityBrowserRole },
63 { WebKit::WebAXRoleBusyIndicator, NSAccessibilityBusyIndicatorRole }, 63 { blink::WebAXRoleBusyIndicator, NSAccessibilityBusyIndicatorRole },
64 { WebKit::WebAXRoleButton, NSAccessibilityButtonRole }, 64 { blink::WebAXRoleButton, NSAccessibilityButtonRole },
65 { WebKit::WebAXRoleCanvas, NSAccessibilityImageRole }, 65 { blink::WebAXRoleCanvas, NSAccessibilityImageRole },
66 { WebKit::WebAXRoleCell, @"AXCell" }, 66 { blink::WebAXRoleCell, @"AXCell" },
67 { WebKit::WebAXRoleCheckBox, NSAccessibilityCheckBoxRole }, 67 { blink::WebAXRoleCheckBox, NSAccessibilityCheckBoxRole },
68 { WebKit::WebAXRoleColorWell, NSAccessibilityColorWellRole }, 68 { blink::WebAXRoleColorWell, NSAccessibilityColorWellRole },
69 { WebKit::WebAXRoleComboBox, NSAccessibilityComboBoxRole }, 69 { blink::WebAXRoleComboBox, NSAccessibilityComboBoxRole },
70 { WebKit::WebAXRoleColumn, NSAccessibilityColumnRole }, 70 { blink::WebAXRoleColumn, NSAccessibilityColumnRole },
71 { WebKit::WebAXRoleColumnHeader, @"AXCell" }, 71 { blink::WebAXRoleColumnHeader, @"AXCell" },
72 { WebKit::WebAXRoleDefinition, NSAccessibilityGroupRole }, 72 { blink::WebAXRoleDefinition, NSAccessibilityGroupRole },
73 { WebKit::WebAXRoleDescriptionListDetail, NSAccessibilityGroupRole }, 73 { blink::WebAXRoleDescriptionListDetail, NSAccessibilityGroupRole },
74 { WebKit::WebAXRoleDescriptionListTerm, NSAccessibilityGroupRole }, 74 { blink::WebAXRoleDescriptionListTerm, NSAccessibilityGroupRole },
75 { WebKit::WebAXRoleDialog, NSAccessibilityGroupRole }, 75 { blink::WebAXRoleDialog, NSAccessibilityGroupRole },
76 { WebKit::WebAXRoleDirectory, NSAccessibilityListRole }, 76 { blink::WebAXRoleDirectory, NSAccessibilityListRole },
77 { WebKit::WebAXRoleDisclosureTriangle, 77 { blink::WebAXRoleDisclosureTriangle,
78 NSAccessibilityDisclosureTriangleRole }, 78 NSAccessibilityDisclosureTriangleRole },
79 { WebKit::WebAXRoleDiv, NSAccessibilityGroupRole }, 79 { blink::WebAXRoleDiv, NSAccessibilityGroupRole },
80 { WebKit::WebAXRoleDocument, NSAccessibilityGroupRole }, 80 { blink::WebAXRoleDocument, NSAccessibilityGroupRole },
81 { WebKit::WebAXRoleDrawer, NSAccessibilityDrawerRole }, 81 { blink::WebAXRoleDrawer, NSAccessibilityDrawerRole },
82 { WebKit::WebAXRoleEditableText, NSAccessibilityTextFieldRole }, 82 { blink::WebAXRoleEditableText, NSAccessibilityTextFieldRole },
83 { WebKit::WebAXRoleFooter, NSAccessibilityGroupRole }, 83 { blink::WebAXRoleFooter, NSAccessibilityGroupRole },
84 { WebKit::WebAXRoleForm, NSAccessibilityGroupRole }, 84 { blink::WebAXRoleForm, NSAccessibilityGroupRole },
85 { WebKit::WebAXRoleGrid, NSAccessibilityGridRole }, 85 { blink::WebAXRoleGrid, NSAccessibilityGridRole },
86 { WebKit::WebAXRoleGroup, NSAccessibilityGroupRole }, 86 { blink::WebAXRoleGroup, NSAccessibilityGroupRole },
87 { WebKit::WebAXRoleGrowArea, NSAccessibilityGrowAreaRole }, 87 { blink::WebAXRoleGrowArea, NSAccessibilityGrowAreaRole },
88 { WebKit::WebAXRoleHeading, @"AXHeading" }, 88 { blink::WebAXRoleHeading, @"AXHeading" },
89 { WebKit::WebAXRoleHelpTag, NSAccessibilityHelpTagRole }, 89 { blink::WebAXRoleHelpTag, NSAccessibilityHelpTagRole },
90 { WebKit::WebAXRoleHorizontalRule, NSAccessibilityGroupRole }, 90 { blink::WebAXRoleHorizontalRule, NSAccessibilityGroupRole },
91 { WebKit::WebAXRoleIgnored, NSAccessibilityUnknownRole }, 91 { blink::WebAXRoleIgnored, NSAccessibilityUnknownRole },
92 { WebKit::WebAXRoleImage, NSAccessibilityImageRole }, 92 { blink::WebAXRoleImage, NSAccessibilityImageRole },
93 { WebKit::WebAXRoleImageMap, NSAccessibilityGroupRole }, 93 { blink::WebAXRoleImageMap, NSAccessibilityGroupRole },
94 { WebKit::WebAXRoleImageMapLink, NSAccessibilityLinkRole }, 94 { blink::WebAXRoleImageMapLink, NSAccessibilityLinkRole },
95 { WebKit::WebAXRoleIncrementor, NSAccessibilityIncrementorRole }, 95 { blink::WebAXRoleIncrementor, NSAccessibilityIncrementorRole },
96 { WebKit::WebAXRoleLabel, NSAccessibilityGroupRole }, 96 { blink::WebAXRoleLabel, NSAccessibilityGroupRole },
97 { WebKit::WebAXRoleApplication, NSAccessibilityGroupRole }, 97 { blink::WebAXRoleApplication, NSAccessibilityGroupRole },
98 { WebKit::WebAXRoleBanner, NSAccessibilityGroupRole }, 98 { blink::WebAXRoleBanner, NSAccessibilityGroupRole },
99 { WebKit::WebAXRoleComplementary, NSAccessibilityGroupRole }, 99 { blink::WebAXRoleComplementary, NSAccessibilityGroupRole },
100 { WebKit::WebAXRoleContentInfo, NSAccessibilityGroupRole }, 100 { blink::WebAXRoleContentInfo, NSAccessibilityGroupRole },
101 { WebKit::WebAXRoleMain, NSAccessibilityGroupRole }, 101 { blink::WebAXRoleMain, NSAccessibilityGroupRole },
102 { WebKit::WebAXRoleNavigation, NSAccessibilityGroupRole }, 102 { blink::WebAXRoleNavigation, NSAccessibilityGroupRole },
103 { WebKit::WebAXRoleSearch, NSAccessibilityGroupRole }, 103 { blink::WebAXRoleSearch, NSAccessibilityGroupRole },
104 { WebKit::WebAXRoleLink, NSAccessibilityLinkRole }, 104 { blink::WebAXRoleLink, NSAccessibilityLinkRole },
105 { WebKit::WebAXRoleList, NSAccessibilityListRole }, 105 { blink::WebAXRoleList, NSAccessibilityListRole },
106 { WebKit::WebAXRoleListItem, NSAccessibilityGroupRole }, 106 { blink::WebAXRoleListItem, NSAccessibilityGroupRole },
107 { WebKit::WebAXRoleListMarker, @"AXListMarker" }, 107 { blink::WebAXRoleListMarker, @"AXListMarker" },
108 { WebKit::WebAXRoleListBox, NSAccessibilityListRole }, 108 { blink::WebAXRoleListBox, NSAccessibilityListRole },
109 { WebKit::WebAXRoleListBoxOption, NSAccessibilityStaticTextRole }, 109 { blink::WebAXRoleListBoxOption, NSAccessibilityStaticTextRole },
110 { WebKit::WebAXRoleLog, NSAccessibilityGroupRole }, 110 { blink::WebAXRoleLog, NSAccessibilityGroupRole },
111 { WebKit::WebAXRoleMarquee, NSAccessibilityGroupRole }, 111 { blink::WebAXRoleMarquee, NSAccessibilityGroupRole },
112 { WebKit::WebAXRoleMath, NSAccessibilityGroupRole }, 112 { blink::WebAXRoleMath, NSAccessibilityGroupRole },
113 { WebKit::WebAXRoleMatte, NSAccessibilityMatteRole }, 113 { blink::WebAXRoleMatte, NSAccessibilityMatteRole },
114 { WebKit::WebAXRoleMenu, NSAccessibilityMenuRole }, 114 { blink::WebAXRoleMenu, NSAccessibilityMenuRole },
115 { WebKit::WebAXRoleMenuBar, NSAccessibilityMenuBarRole }, 115 { blink::WebAXRoleMenuBar, NSAccessibilityMenuBarRole },
116 { WebKit::WebAXRoleMenuItem, NSAccessibilityMenuItemRole }, 116 { blink::WebAXRoleMenuItem, NSAccessibilityMenuItemRole },
117 { WebKit::WebAXRoleMenuButton, NSAccessibilityButtonRole }, 117 { blink::WebAXRoleMenuButton, NSAccessibilityButtonRole },
118 { WebKit::WebAXRoleMenuListOption, NSAccessibilityMenuItemRole }, 118 { blink::WebAXRoleMenuListOption, NSAccessibilityMenuItemRole },
119 { WebKit::WebAXRoleMenuListPopup, NSAccessibilityUnknownRole }, 119 { blink::WebAXRoleMenuListPopup, NSAccessibilityUnknownRole },
120 { WebKit::WebAXRoleNote, NSAccessibilityGroupRole }, 120 { blink::WebAXRoleNote, NSAccessibilityGroupRole },
121 { WebKit::WebAXRoleOutline, NSAccessibilityOutlineRole }, 121 { blink::WebAXRoleOutline, NSAccessibilityOutlineRole },
122 { WebKit::WebAXRoleParagraph, NSAccessibilityGroupRole }, 122 { blink::WebAXRoleParagraph, NSAccessibilityGroupRole },
123 { WebKit::WebAXRolePopUpButton, NSAccessibilityPopUpButtonRole }, 123 { blink::WebAXRolePopUpButton, NSAccessibilityPopUpButtonRole },
124 { WebKit::WebAXRolePresentational, NSAccessibilityGroupRole }, 124 { blink::WebAXRolePresentational, NSAccessibilityGroupRole },
125 { WebKit::WebAXRoleProgressIndicator, 125 { blink::WebAXRoleProgressIndicator,
126 NSAccessibilityProgressIndicatorRole }, 126 NSAccessibilityProgressIndicatorRole },
127 { WebKit::WebAXRoleRadioButton, NSAccessibilityRadioButtonRole }, 127 { blink::WebAXRoleRadioButton, NSAccessibilityRadioButtonRole },
128 { WebKit::WebAXRoleRadioGroup, NSAccessibilityRadioGroupRole }, 128 { blink::WebAXRoleRadioGroup, NSAccessibilityRadioGroupRole },
129 { WebKit::WebAXRoleRegion, NSAccessibilityGroupRole }, 129 { blink::WebAXRoleRegion, NSAccessibilityGroupRole },
130 { WebKit::WebAXRoleRootWebArea, @"AXWebArea" }, 130 { blink::WebAXRoleRootWebArea, @"AXWebArea" },
131 { WebKit::WebAXRoleRow, NSAccessibilityRowRole }, 131 { blink::WebAXRoleRow, NSAccessibilityRowRole },
132 { WebKit::WebAXRoleRowHeader, @"AXCell" }, 132 { blink::WebAXRoleRowHeader, @"AXCell" },
133 { WebKit::WebAXRoleRuler, NSAccessibilityRulerRole }, 133 { blink::WebAXRoleRuler, NSAccessibilityRulerRole },
134 { WebKit::WebAXRoleRulerMarker, NSAccessibilityRulerMarkerRole }, 134 { blink::WebAXRoleRulerMarker, NSAccessibilityRulerMarkerRole },
135 // TODO(dtseng): we don't correctly support the attributes for these roles. 135 // TODO(dtseng): we don't correctly support the attributes for these roles.
136 // { WebKit::WebAXRoleScrollArea, NSAccessibilityScrollAreaRole }, 136 // { blink::WebAXRoleScrollArea, NSAccessibilityScrollAreaRole },
137 { WebKit::WebAXRoleScrollBar, NSAccessibilityScrollBarRole }, 137 { blink::WebAXRoleScrollBar, NSAccessibilityScrollBarRole },
138 { WebKit::WebAXRoleSheet, NSAccessibilitySheetRole }, 138 { blink::WebAXRoleSheet, NSAccessibilitySheetRole },
139 { WebKit::WebAXRoleSlider, NSAccessibilitySliderRole }, 139 { blink::WebAXRoleSlider, NSAccessibilitySliderRole },
140 { WebKit::WebAXRoleSliderThumb, NSAccessibilityValueIndicatorRole }, 140 { blink::WebAXRoleSliderThumb, NSAccessibilityValueIndicatorRole },
141 { WebKit::WebAXRoleSpinButton, NSAccessibilitySliderRole }, 141 { blink::WebAXRoleSpinButton, NSAccessibilitySliderRole },
142 { WebKit::WebAXRoleSplitter, NSAccessibilitySplitterRole }, 142 { blink::WebAXRoleSplitter, NSAccessibilitySplitterRole },
143 { WebKit::WebAXRoleSplitGroup, NSAccessibilitySplitGroupRole }, 143 { blink::WebAXRoleSplitGroup, NSAccessibilitySplitGroupRole },
144 { WebKit::WebAXRoleStaticText, NSAccessibilityStaticTextRole }, 144 { blink::WebAXRoleStaticText, NSAccessibilityStaticTextRole },
145 { WebKit::WebAXRoleStatus, NSAccessibilityGroupRole }, 145 { blink::WebAXRoleStatus, NSAccessibilityGroupRole },
146 { WebKit::WebAXRoleSVGRoot, NSAccessibilityGroupRole }, 146 { blink::WebAXRoleSVGRoot, NSAccessibilityGroupRole },
147 { WebKit::WebAXRoleSystemWide, NSAccessibilityUnknownRole }, 147 { blink::WebAXRoleSystemWide, NSAccessibilityUnknownRole },
148 { WebKit::WebAXRoleTab, NSAccessibilityRadioButtonRole }, 148 { blink::WebAXRoleTab, NSAccessibilityRadioButtonRole },
149 { WebKit::WebAXRoleTabList, NSAccessibilityTabGroupRole }, 149 { blink::WebAXRoleTabList, NSAccessibilityTabGroupRole },
150 { WebKit::WebAXRoleTabPanel, NSAccessibilityGroupRole }, 150 { blink::WebAXRoleTabPanel, NSAccessibilityGroupRole },
151 { WebKit::WebAXRoleTable, NSAccessibilityTableRole }, 151 { blink::WebAXRoleTable, NSAccessibilityTableRole },
152 { WebKit::WebAXRoleTableHeaderContainer, NSAccessibilityGroupRole }, 152 { blink::WebAXRoleTableHeaderContainer, NSAccessibilityGroupRole },
153 { WebKit::WebAXRoleTextArea, NSAccessibilityTextAreaRole }, 153 { blink::WebAXRoleTextArea, NSAccessibilityTextAreaRole },
154 { WebKit::WebAXRoleTextField, NSAccessibilityTextFieldRole }, 154 { blink::WebAXRoleTextField, NSAccessibilityTextFieldRole },
155 { WebKit::WebAXRoleTimer, NSAccessibilityGroupRole }, 155 { blink::WebAXRoleTimer, NSAccessibilityGroupRole },
156 { WebKit::WebAXRoleToggleButton, NSAccessibilityButtonRole }, 156 { blink::WebAXRoleToggleButton, NSAccessibilityButtonRole },
157 { WebKit::WebAXRoleToolbar, NSAccessibilityToolbarRole }, 157 { blink::WebAXRoleToolbar, NSAccessibilityToolbarRole },
158 { WebKit::WebAXRoleUserInterfaceTooltip, NSAccessibilityGroupRole }, 158 { blink::WebAXRoleUserInterfaceTooltip, NSAccessibilityGroupRole },
159 { WebKit::WebAXRoleTree, NSAccessibilityOutlineRole }, 159 { blink::WebAXRoleTree, NSAccessibilityOutlineRole },
160 { WebKit::WebAXRoleTreeGrid, NSAccessibilityTableRole }, 160 { blink::WebAXRoleTreeGrid, NSAccessibilityTableRole },
161 { WebKit::WebAXRoleTreeItem, NSAccessibilityRowRole }, 161 { blink::WebAXRoleTreeItem, NSAccessibilityRowRole },
162 { WebKit::WebAXRoleValueIndicator, NSAccessibilityValueIndicatorRole }, 162 { blink::WebAXRoleValueIndicator, NSAccessibilityValueIndicatorRole },
163 { WebKit::WebAXRoleLink, NSAccessibilityLinkRole }, 163 { blink::WebAXRoleLink, NSAccessibilityLinkRole },
164 { WebKit::WebAXRoleWebArea, @"AXWebArea" }, 164 { blink::WebAXRoleWebArea, @"AXWebArea" },
165 { WebKit::WebAXRoleWindow, NSAccessibilityWindowRole }, 165 { blink::WebAXRoleWindow, NSAccessibilityWindowRole },
166 }; 166 };
167 167
168 RoleMap role_map; 168 RoleMap role_map;
169 for (size_t i = 0; i < arraysize(roles); ++i) 169 for (size_t i = 0; i < arraysize(roles); ++i)
170 role_map[roles[i].webKitValue] = roles[i].nativeValue; 170 role_map[roles[i].webKitValue] = roles[i].nativeValue;
171 return role_map; 171 return role_map;
172 } 172 }
173 173
174 // A mapping of webkit roles to native roles. 174 // A mapping of webkit roles to native roles.
175 NSString* NativeRoleFromAccessibilityNodeDataRole( 175 NSString* NativeRoleFromAccessibilityNodeDataRole(
176 const WebKit::WebAXRole& role) { 176 const blink::WebAXRole& role) {
177 CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_role, 177 CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_role,
178 (BuildRoleMap())); 178 (BuildRoleMap()));
179 RoleMap::iterator it = web_accessibility_to_native_role.find(role); 179 RoleMap::iterator it = web_accessibility_to_native_role.find(role);
180 if (it != web_accessibility_to_native_role.end()) 180 if (it != web_accessibility_to_native_role.end())
181 return it->second; 181 return it->second;
182 else 182 else
183 return NSAccessibilityUnknownRole; 183 return NSAccessibilityUnknownRole;
184 } 184 }
185 185
186 RoleMap BuildSubroleMap() { 186 RoleMap BuildSubroleMap() {
187 const MapEntry subroles[] = { 187 const MapEntry subroles[] = {
188 { WebKit::WebAXRoleAlert, @"AXApplicationAlert" }, 188 { blink::WebAXRoleAlert, @"AXApplicationAlert" },
189 { WebKit::WebAXRoleAlertDialog, @"AXApplicationAlertDialog" }, 189 { blink::WebAXRoleAlertDialog, @"AXApplicationAlertDialog" },
190 { WebKit::WebAXRoleArticle, @"AXDocumentArticle" }, 190 { blink::WebAXRoleArticle, @"AXDocumentArticle" },
191 { WebKit::WebAXRoleDefinition, @"AXDefinition" }, 191 { blink::WebAXRoleDefinition, @"AXDefinition" },
192 { WebKit::WebAXRoleDescriptionListDetail, @"AXDescription" }, 192 { blink::WebAXRoleDescriptionListDetail, @"AXDescription" },
193 { WebKit::WebAXRoleDescriptionListTerm, @"AXTerm" }, 193 { blink::WebAXRoleDescriptionListTerm, @"AXTerm" },
194 { WebKit::WebAXRoleDialog, @"AXApplicationDialog" }, 194 { blink::WebAXRoleDialog, @"AXApplicationDialog" },
195 { WebKit::WebAXRoleDocument, @"AXDocument" }, 195 { blink::WebAXRoleDocument, @"AXDocument" },
196 { WebKit::WebAXRoleFooter, @"AXLandmarkContentInfo" }, 196 { blink::WebAXRoleFooter, @"AXLandmarkContentInfo" },
197 { WebKit::WebAXRoleApplication, @"AXLandmarkApplication" }, 197 { blink::WebAXRoleApplication, @"AXLandmarkApplication" },
198 { WebKit::WebAXRoleBanner, @"AXLandmarkBanner" }, 198 { blink::WebAXRoleBanner, @"AXLandmarkBanner" },
199 { WebKit::WebAXRoleComplementary, @"AXLandmarkComplementary" }, 199 { blink::WebAXRoleComplementary, @"AXLandmarkComplementary" },
200 { WebKit::WebAXRoleContentInfo, @"AXLandmarkContentInfo" }, 200 { blink::WebAXRoleContentInfo, @"AXLandmarkContentInfo" },
201 { WebKit::WebAXRoleMain, @"AXLandmarkMain" }, 201 { blink::WebAXRoleMain, @"AXLandmarkMain" },
202 { WebKit::WebAXRoleNavigation, @"AXLandmarkNavigation" }, 202 { blink::WebAXRoleNavigation, @"AXLandmarkNavigation" },
203 { WebKit::WebAXRoleSearch, @"AXLandmarkSearch" }, 203 { blink::WebAXRoleSearch, @"AXLandmarkSearch" },
204 { WebKit::WebAXRoleLog, @"AXApplicationLog" }, 204 { blink::WebAXRoleLog, @"AXApplicationLog" },
205 { WebKit::WebAXRoleMarquee, @"AXApplicationMarquee" }, 205 { blink::WebAXRoleMarquee, @"AXApplicationMarquee" },
206 { WebKit::WebAXRoleMath, @"AXDocumentMath" }, 206 { blink::WebAXRoleMath, @"AXDocumentMath" },
207 { WebKit::WebAXRoleNote, @"AXDocumentNote" }, 207 { blink::WebAXRoleNote, @"AXDocumentNote" },
208 { WebKit::WebAXRoleRegion, @"AXDocumentRegion" }, 208 { blink::WebAXRoleRegion, @"AXDocumentRegion" },
209 { WebKit::WebAXRoleStatus, @"AXApplicationStatus" }, 209 { blink::WebAXRoleStatus, @"AXApplicationStatus" },
210 { WebKit::WebAXRoleTabPanel, @"AXTabPanel" }, 210 { blink::WebAXRoleTabPanel, @"AXTabPanel" },
211 { WebKit::WebAXRoleTimer, @"AXApplicationTimer" }, 211 { blink::WebAXRoleTimer, @"AXApplicationTimer" },
212 { WebKit::WebAXRoleUserInterfaceTooltip, @"AXUserInterfaceTooltip" }, 212 { blink::WebAXRoleUserInterfaceTooltip, @"AXUserInterfaceTooltip" },
213 { WebKit::WebAXRoleTreeItem, NSAccessibilityOutlineRowSubrole }, 213 { blink::WebAXRoleTreeItem, NSAccessibilityOutlineRowSubrole },
214 }; 214 };
215 215
216 RoleMap subrole_map; 216 RoleMap subrole_map;
217 for (size_t i = 0; i < arraysize(subroles); ++i) 217 for (size_t i = 0; i < arraysize(subroles); ++i)
218 subrole_map[subroles[i].webKitValue] = subroles[i].nativeValue; 218 subrole_map[subroles[i].webKitValue] = subroles[i].nativeValue;
219 return subrole_map; 219 return subrole_map;
220 } 220 }
221 221
222 // A mapping of webkit roles to native subroles. 222 // A mapping of webkit roles to native subroles.
223 NSString* NativeSubroleFromAccessibilityNodeDataRole( 223 NSString* NativeSubroleFromAccessibilityNodeDataRole(
224 const WebKit::WebAXRole& role) { 224 const blink::WebAXRole& role) {
225 CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_subrole, 225 CR_DEFINE_STATIC_LOCAL(RoleMap, web_accessibility_to_native_subrole,
226 (BuildSubroleMap())); 226 (BuildSubroleMap()));
227 RoleMap::iterator it = web_accessibility_to_native_subrole.find(role); 227 RoleMap::iterator it = web_accessibility_to_native_subrole.find(role);
228 if (it != web_accessibility_to_native_subrole.end()) 228 if (it != web_accessibility_to_native_subrole.end())
229 return it->second; 229 return it->second;
230 else 230 else
231 return nil; 231 return nil;
232 } 232 }
233 233
234 // A mapping from an accessibility attribute to its method name. 234 // A mapping from an accessibility attribute to its method name.
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 - (void)childrenChanged { 389 - (void)childrenChanged {
390 if (![self isIgnored]) { 390 if (![self isIgnored]) {
391 children_.reset(); 391 children_.reset();
392 } else { 392 } else {
393 [browserAccessibility_->parent()->ToBrowserAccessibilityCocoa() 393 [browserAccessibility_->parent()->ToBrowserAccessibilityCocoa()
394 childrenChanged]; 394 childrenChanged];
395 } 395 }
396 } 396 }
397 397
398 - (NSArray*)columnHeaders { 398 - (NSArray*)columnHeaders {
399 if ([self internalRole] != WebKit::WebAXRoleTable && 399 if ([self internalRole] != blink::WebAXRoleTable &&
400 [self internalRole] != WebKit::WebAXRoleGrid) { 400 [self internalRole] != blink::WebAXRoleGrid) {
401 return nil; 401 return nil;
402 } 402 }
403 403
404 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; 404 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease];
405 const std::vector<int32>& uniqueCellIds = 405 const std::vector<int32>& uniqueCellIds =
406 browserAccessibility_->GetIntListAttribute( 406 browserAccessibility_->GetIntListAttribute(
407 AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS); 407 AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
408 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { 408 for (size_t i = 0; i < uniqueCellIds.size(); ++i) {
409 int id = uniqueCellIds[i]; 409 int id = uniqueCellIds[i];
410 BrowserAccessibility* cell = 410 BrowserAccessibility* cell =
411 browserAccessibility_->manager()->GetFromRendererID(id); 411 browserAccessibility_->manager()->GetFromRendererID(id);
412 if (cell && cell->role() == WebKit::WebAXRoleColumnHeader) 412 if (cell && cell->role() == blink::WebAXRoleColumnHeader)
413 [ret addObject:cell->ToBrowserAccessibilityCocoa()]; 413 [ret addObject:cell->ToBrowserAccessibilityCocoa()];
414 } 414 }
415 return ret; 415 return ret;
416 } 416 }
417 417
418 - (NSValue*)columnIndexRange { 418 - (NSValue*)columnIndexRange {
419 if ([self internalRole] != WebKit::WebAXRoleCell) 419 if ([self internalRole] != blink::WebAXRoleCell)
420 return nil; 420 return nil;
421 421
422 int column = -1; 422 int column = -1;
423 int colspan = -1; 423 int colspan = -1;
424 browserAccessibility_->GetIntAttribute( 424 browserAccessibility_->GetIntAttribute(
425 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column); 425 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, &column);
426 browserAccessibility_->GetIntAttribute( 426 browserAccessibility_->GetIntAttribute(
427 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan); 427 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_SPAN, &colspan);
428 if (column >= 0 && colspan >= 1) 428 if (column >= 0 && colspan >= 1)
429 return [NSValue valueWithRange:NSMakeRange(column, colspan)]; 429 return [NSValue valueWithRange:NSMakeRange(column, colspan)];
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 size_t leftIndex = url.rfind('/'); 467 size_t leftIndex = url.rfind('/');
468 std::string basename = 468 std::string basename =
469 leftIndex != std::string::npos ? url.substr(leftIndex) : url; 469 leftIndex != std::string::npos ? url.substr(leftIndex) : url;
470 return base::SysUTF8ToNSString(basename); 470 return base::SysUTF8ToNSString(basename);
471 } 471 }
472 472
473 return @""; 473 return @"";
474 } 474 }
475 475
476 - (NSNumber*)disclosing { 476 - (NSNumber*)disclosing {
477 if ([self internalRole] == WebKit::WebAXRoleTreeItem) { 477 if ([self internalRole] == blink::WebAXRoleTreeItem) {
478 return [NSNumber numberWithBool: 478 return [NSNumber numberWithBool:
479 GetState(browserAccessibility_, WebKit::WebAXStateExpanded)]; 479 GetState(browserAccessibility_, blink::WebAXStateExpanded)];
480 } else { 480 } else {
481 return nil; 481 return nil;
482 } 482 }
483 } 483 }
484 484
485 - (id)disclosedByRow { 485 - (id)disclosedByRow {
486 // The row that contains this row. 486 // The row that contains this row.
487 // It should be the same as the first parent that is a treeitem. 487 // It should be the same as the first parent that is a treeitem.
488 return nil; 488 return nil;
489 } 489 }
490 490
491 - (NSNumber*)disclosureLevel { 491 - (NSNumber*)disclosureLevel {
492 WebKit::WebAXRole role = [self internalRole]; 492 blink::WebAXRole role = [self internalRole];
493 if (role == WebKit::WebAXRoleRow || 493 if (role == blink::WebAXRoleRow ||
494 role == WebKit::WebAXRoleTreeItem) { 494 role == blink::WebAXRoleTreeItem) {
495 int level = browserAccessibility_->GetIntAttribute( 495 int level = browserAccessibility_->GetIntAttribute(
496 AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL); 496 AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL);
497 // Mac disclosureLevel is 0-based, but web levels are 1-based. 497 // Mac disclosureLevel is 0-based, but web levels are 1-based.
498 if (level > 0) 498 if (level > 0)
499 level--; 499 level--;
500 return [NSNumber numberWithInt:level]; 500 return [NSNumber numberWithInt:level];
501 } else { 501 } else {
502 return nil; 502 return nil;
503 } 503 }
504 } 504 }
505 505
506 - (id)disclosedRows { 506 - (id)disclosedRows {
507 // The rows that are considered inside this row. 507 // The rows that are considered inside this row.
508 return nil; 508 return nil;
509 } 509 }
510 510
511 - (NSNumber*)enabled { 511 - (NSNumber*)enabled {
512 return [NSNumber numberWithBool: 512 return [NSNumber numberWithBool:
513 GetState(browserAccessibility_, WebKit::WebAXStateEnabled)]; 513 GetState(browserAccessibility_, blink::WebAXStateEnabled)];
514 } 514 }
515 515
516 - (NSNumber*)focused { 516 - (NSNumber*)focused {
517 BrowserAccessibilityManager* manager = browserAccessibility_->manager(); 517 BrowserAccessibilityManager* manager = browserAccessibility_->manager();
518 NSNumber* ret = [NSNumber numberWithBool: 518 NSNumber* ret = [NSNumber numberWithBool:
519 manager->GetFocus(NULL) == browserAccessibility_]; 519 manager->GetFocus(NULL) == browserAccessibility_];
520 return ret; 520 return ret;
521 } 521 }
522 522
523 - (id)header { 523 - (id)header {
524 int headerElementId = -1; 524 int headerElementId = -1;
525 if ([self internalRole] == WebKit::WebAXRoleTable || 525 if ([self internalRole] == blink::WebAXRoleTable ||
526 [self internalRole] == WebKit::WebAXRoleGrid) { 526 [self internalRole] == blink::WebAXRoleGrid) {
527 browserAccessibility_->GetIntAttribute( 527 browserAccessibility_->GetIntAttribute(
528 AccessibilityNodeData::ATTR_TABLE_HEADER_ID, &headerElementId); 528 AccessibilityNodeData::ATTR_TABLE_HEADER_ID, &headerElementId);
529 } else if ([self internalRole] == WebKit::WebAXRoleColumn) { 529 } else if ([self internalRole] == blink::WebAXRoleColumn) {
530 browserAccessibility_->GetIntAttribute( 530 browserAccessibility_->GetIntAttribute(
531 AccessibilityNodeData::ATTR_TABLE_COLUMN_HEADER_ID, &headerElementId); 531 AccessibilityNodeData::ATTR_TABLE_COLUMN_HEADER_ID, &headerElementId);
532 } else if ([self internalRole] == WebKit::WebAXRoleRow) { 532 } else if ([self internalRole] == blink::WebAXRoleRow) {
533 browserAccessibility_->GetIntAttribute( 533 browserAccessibility_->GetIntAttribute(
534 AccessibilityNodeData::ATTR_TABLE_ROW_HEADER_ID, &headerElementId); 534 AccessibilityNodeData::ATTR_TABLE_ROW_HEADER_ID, &headerElementId);
535 } 535 }
536 536
537 if (headerElementId > 0) { 537 if (headerElementId > 0) {
538 BrowserAccessibility* headerObject = 538 BrowserAccessibility* headerObject =
539 browserAccessibility_->manager()->GetFromRendererID(headerElementId); 539 browserAccessibility_->manager()->GetFromRendererID(headerElementId);
540 if (headerObject) 540 if (headerObject)
541 return headerObject->ToBrowserAccessibilityCocoa(); 541 return headerObject->ToBrowserAccessibilityCocoa();
542 } 542 }
543 return nil; 543 return nil;
544 } 544 }
545 545
546 - (NSString*)help { 546 - (NSString*)help {
547 return NSStringForStringAttribute( 547 return NSStringForStringAttribute(
548 browserAccessibility_, AccessibilityNodeData::ATTR_HELP); 548 browserAccessibility_, AccessibilityNodeData::ATTR_HELP);
549 } 549 }
550 550
551 - (NSNumber*)index { 551 - (NSNumber*)index {
552 if ([self internalRole] == WebKit::WebAXRoleColumn) { 552 if ([self internalRole] == blink::WebAXRoleColumn) {
553 int columnIndex = browserAccessibility_->GetIntAttribute( 553 int columnIndex = browserAccessibility_->GetIntAttribute(
554 AccessibilityNodeData::ATTR_TABLE_COLUMN_INDEX); 554 AccessibilityNodeData::ATTR_TABLE_COLUMN_INDEX);
555 return [NSNumber numberWithInt:columnIndex]; 555 return [NSNumber numberWithInt:columnIndex];
556 } else if ([self internalRole] == WebKit::WebAXRoleRow) { 556 } else if ([self internalRole] == blink::WebAXRoleRow) {
557 int rowIndex = browserAccessibility_->GetIntAttribute( 557 int rowIndex = browserAccessibility_->GetIntAttribute(
558 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX); 558 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX);
559 return [NSNumber numberWithInt:rowIndex]; 559 return [NSNumber numberWithInt:rowIndex];
560 } 560 }
561 561
562 return nil; 562 return nil;
563 } 563 }
564 564
565 // Returns whether or not this node should be ignored in the 565 // Returns whether or not this node should be ignored in the
566 // accessibility tree. 566 // accessibility tree.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
598 598
599 - (NSNumber*)minValue { 599 - (NSNumber*)minValue {
600 float floatValue = browserAccessibility_->GetFloatAttribute( 600 float floatValue = browserAccessibility_->GetFloatAttribute(
601 AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE); 601 AccessibilityNodeData::ATTR_MIN_VALUE_FOR_RANGE);
602 return [NSNumber numberWithFloat:floatValue]; 602 return [NSNumber numberWithFloat:floatValue];
603 } 603 }
604 604
605 - (NSString*)orientation { 605 - (NSString*)orientation {
606 // We present a spin button as a vertical slider, with a role description 606 // We present a spin button as a vertical slider, with a role description
607 // of "spin button". 607 // of "spin button".
608 if ([self internalRole] == WebKit::WebAXRoleSpinButton) 608 if ([self internalRole] == blink::WebAXRoleSpinButton)
609 return NSAccessibilityVerticalOrientationValue; 609 return NSAccessibilityVerticalOrientationValue;
610 610
611 if (GetState(browserAccessibility_, WebKit::WebAXStateVertical)) 611 if (GetState(browserAccessibility_, blink::WebAXStateVertical))
612 return NSAccessibilityVerticalOrientationValue; 612 return NSAccessibilityVerticalOrientationValue;
613 else 613 else
614 return NSAccessibilityHorizontalOrientationValue; 614 return NSAccessibilityHorizontalOrientationValue;
615 } 615 }
616 616
617 - (NSNumber*)numberOfCharacters { 617 - (NSNumber*)numberOfCharacters {
618 return [NSNumber numberWithInt:browserAccessibility_->value().length()]; 618 return [NSNumber numberWithInt:browserAccessibility_->value().length()];
619 } 619 }
620 620
621 // The origin of this accessibility object in the page's document. 621 // The origin of this accessibility object in the page's document.
(...skipping 17 matching lines...) Expand all
639 return manager->parent_view(); 639 return manager->parent_view();
640 } 640 }
641 } 641 }
642 642
643 - (NSValue*)position { 643 - (NSValue*)position {
644 return [NSValue valueWithPoint:[delegate_ accessibilityPointInScreen:self]]; 644 return [NSValue valueWithPoint:[delegate_ accessibilityPointInScreen:self]];
645 } 645 }
646 646
647 - (NSNumber*)required { 647 - (NSNumber*)required {
648 return [NSNumber numberWithBool: 648 return [NSNumber numberWithBool:
649 GetState(browserAccessibility_, WebKit::WebAXStateRequired)]; 649 GetState(browserAccessibility_, blink::WebAXStateRequired)];
650 } 650 }
651 651
652 // Returns an enum indicating the role from browserAccessibility_. 652 // Returns an enum indicating the role from browserAccessibility_.
653 - (WebKit::WebAXRole)internalRole { 653 - (blink::WebAXRole)internalRole {
654 return static_cast<WebKit::WebAXRole>(browserAccessibility_->role()); 654 return static_cast<blink::WebAXRole>(browserAccessibility_->role());
655 } 655 }
656 656
657 // Returns a string indicating the NSAccessibility role of this object. 657 // Returns a string indicating the NSAccessibility role of this object.
658 - (NSString*)role { 658 - (NSString*)role {
659 WebKit::WebAXRole role = [self internalRole]; 659 blink::WebAXRole role = [self internalRole];
660 if (role == WebKit::WebAXRoleCanvas && 660 if (role == blink::WebAXRoleCanvas &&
661 browserAccessibility_->GetBoolAttribute( 661 browserAccessibility_->GetBoolAttribute(
662 AccessibilityNodeData::ATTR_CANVAS_HAS_FALLBACK)) { 662 AccessibilityNodeData::ATTR_CANVAS_HAS_FALLBACK)) {
663 return NSAccessibilityGroupRole; 663 return NSAccessibilityGroupRole;
664 } 664 }
665 return NativeRoleFromAccessibilityNodeDataRole(role); 665 return NativeRoleFromAccessibilityNodeDataRole(role);
666 } 666 }
667 667
668 // Returns a string indicating the role description of this object. 668 // Returns a string indicating the role description of this object.
669 - (NSString*)roleDescription { 669 - (NSString*)roleDescription {
670 NSString* role = [self role]; 670 NSString* role = [self role];
(...skipping 13 matching lines...) Expand all
684 684
685 if ([role isEqualToString:@"AXHeading"]) { 685 if ([role isEqualToString:@"AXHeading"]) {
686 return base::SysUTF16ToNSString(content_client->GetLocalizedString( 686 return base::SysUTF16ToNSString(content_client->GetLocalizedString(
687 IDS_AX_ROLE_HEADING)); 687 IDS_AX_ROLE_HEADING));
688 } 688 }
689 689
690 if ([role isEqualToString:NSAccessibilityGroupRole] || 690 if ([role isEqualToString:NSAccessibilityGroupRole] ||
691 [role isEqualToString:NSAccessibilityRadioButtonRole]) { 691 [role isEqualToString:NSAccessibilityRadioButtonRole]) {
692 std::string role; 692 std::string role;
693 if (browserAccessibility_->GetHtmlAttribute("role", &role)) { 693 if (browserAccessibility_->GetHtmlAttribute("role", &role)) {
694 WebKit::WebAXRole internalRole = [self internalRole]; 694 blink::WebAXRole internalRole = [self internalRole];
695 if ((internalRole != WebKit::WebAXRoleGroup && 695 if ((internalRole != blink::WebAXRoleGroup &&
696 internalRole != WebKit::WebAXRoleListItem) || 696 internalRole != blink::WebAXRoleListItem) ||
697 internalRole == WebKit::WebAXRoleTab) { 697 internalRole == blink::WebAXRoleTab) {
698 // TODO(dtseng): This is not localized; see crbug/84814. 698 // TODO(dtseng): This is not localized; see crbug/84814.
699 return base::SysUTF8ToNSString(role); 699 return base::SysUTF8ToNSString(role);
700 } 700 }
701 } 701 }
702 } 702 }
703 703
704 switch([self internalRole]) { 704 switch([self internalRole]) {
705 case WebKit::WebAXRoleFooter: 705 case blink::WebAXRoleFooter:
706 return base::SysUTF16ToNSString(content_client->GetLocalizedString( 706 return base::SysUTF16ToNSString(content_client->GetLocalizedString(
707 IDS_AX_ROLE_FOOTER)); 707 IDS_AX_ROLE_FOOTER));
708 case WebKit::WebAXRoleSpinButton: 708 case blink::WebAXRoleSpinButton:
709 // This control is similar to what VoiceOver calls a "stepper". 709 // This control is similar to what VoiceOver calls a "stepper".
710 return base::SysUTF16ToNSString(content_client->GetLocalizedString( 710 return base::SysUTF16ToNSString(content_client->GetLocalizedString(
711 IDS_AX_ROLE_STEPPER)); 711 IDS_AX_ROLE_STEPPER));
712 default: 712 default:
713 break; 713 break;
714 } 714 }
715 715
716 return NSAccessibilityRoleDescription(role, nil); 716 return NSAccessibilityRoleDescription(role, nil);
717 } 717 }
718 718
719 - (NSArray*)rowHeaders { 719 - (NSArray*)rowHeaders {
720 if ([self internalRole] != WebKit::WebAXRoleTable && 720 if ([self internalRole] != blink::WebAXRoleTable &&
721 [self internalRole] != WebKit::WebAXRoleGrid) { 721 [self internalRole] != blink::WebAXRoleGrid) {
722 return nil; 722 return nil;
723 } 723 }
724 724
725 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; 725 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease];
726 const std::vector<int32>& uniqueCellIds = 726 const std::vector<int32>& uniqueCellIds =
727 browserAccessibility_->GetIntListAttribute( 727 browserAccessibility_->GetIntListAttribute(
728 AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS); 728 AccessibilityNodeData::ATTR_UNIQUE_CELL_IDS);
729 for (size_t i = 0; i < uniqueCellIds.size(); ++i) { 729 for (size_t i = 0; i < uniqueCellIds.size(); ++i) {
730 int id = uniqueCellIds[i]; 730 int id = uniqueCellIds[i];
731 BrowserAccessibility* cell = 731 BrowserAccessibility* cell =
732 browserAccessibility_->manager()->GetFromRendererID(id); 732 browserAccessibility_->manager()->GetFromRendererID(id);
733 if (cell && cell->role() == WebKit::WebAXRoleRowHeader) 733 if (cell && cell->role() == blink::WebAXRoleRowHeader)
734 [ret addObject:cell->ToBrowserAccessibilityCocoa()]; 734 [ret addObject:cell->ToBrowserAccessibilityCocoa()];
735 } 735 }
736 return ret; 736 return ret;
737 } 737 }
738 738
739 - (NSValue*)rowIndexRange { 739 - (NSValue*)rowIndexRange {
740 if ([self internalRole] != WebKit::WebAXRoleCell) 740 if ([self internalRole] != blink::WebAXRoleCell)
741 return nil; 741 return nil;
742 742
743 int row = -1; 743 int row = -1;
744 int rowspan = -1; 744 int rowspan = -1;
745 browserAccessibility_->GetIntAttribute( 745 browserAccessibility_->GetIntAttribute(
746 AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row); 746 AccessibilityNodeData::ATTR_TABLE_CELL_ROW_INDEX, &row);
747 browserAccessibility_->GetIntAttribute( 747 browserAccessibility_->GetIntAttribute(
748 AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan); 748 AccessibilityNodeData::ATTR_TABLE_CELL_ROW_SPAN, &rowspan);
749 if (row >= 0 && rowspan >= 1) 749 if (row >= 0 && rowspan >= 1)
750 return [NSValue valueWithRange:NSMakeRange(row, rowspan)]; 750 return [NSValue valueWithRange:NSMakeRange(row, rowspan)];
751 return nil; 751 return nil;
752 } 752 }
753 753
754 - (NSArray*)rows { 754 - (NSArray*)rows {
755 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease]; 755 NSMutableArray* ret = [[[NSMutableArray alloc] init] autorelease];
756 756
757 if ([self internalRole] == WebKit::WebAXRoleTable|| 757 if ([self internalRole] == blink::WebAXRoleTable||
758 [self internalRole] == WebKit::WebAXRoleGrid) { 758 [self internalRole] == blink::WebAXRoleGrid) {
759 for (BrowserAccessibilityCocoa* child in [self children]) { 759 for (BrowserAccessibilityCocoa* child in [self children]) {
760 if ([[child role] isEqualToString:NSAccessibilityRowRole]) 760 if ([[child role] isEqualToString:NSAccessibilityRowRole])
761 [ret addObject:child]; 761 [ret addObject:child];
762 } 762 }
763 } else if ([self internalRole] == WebKit::WebAXRoleColumn) { 763 } else if ([self internalRole] == blink::WebAXRoleColumn) {
764 const std::vector<int32>& indirectChildIds = 764 const std::vector<int32>& indirectChildIds =
765 browserAccessibility_->GetIntListAttribute( 765 browserAccessibility_->GetIntListAttribute(
766 AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS); 766 AccessibilityNodeData::ATTR_INDIRECT_CHILD_IDS);
767 for (uint32 i = 0; i < indirectChildIds.size(); ++i) { 767 for (uint32 i = 0; i < indirectChildIds.size(); ++i) {
768 int id = indirectChildIds[i]; 768 int id = indirectChildIds[i];
769 BrowserAccessibility* rowElement = 769 BrowserAccessibility* rowElement =
770 browserAccessibility_->manager()->GetFromRendererID(id); 770 browserAccessibility_->manager()->GetFromRendererID(id);
771 if (rowElement) 771 if (rowElement)
772 [ret addObject:rowElement->ToBrowserAccessibilityCocoa()]; 772 [ret addObject:rowElement->ToBrowserAccessibilityCocoa()];
773 } 773 }
774 } 774 }
775 775
776 return ret; 776 return ret;
777 } 777 }
778 778
779 // Returns the size of this object. 779 // Returns the size of this object.
780 - (NSValue*)size { 780 - (NSValue*)size {
781 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect(); 781 gfx::Rect bounds = browserAccessibility_->GetLocalBoundsRect();
782 return [NSValue valueWithSize:NSMakeSize(bounds.width(), bounds.height())]; 782 return [NSValue valueWithSize:NSMakeSize(bounds.width(), bounds.height())];
783 } 783 }
784 784
785 // Returns a subrole based upon the role. 785 // Returns a subrole based upon the role.
786 - (NSString*) subrole { 786 - (NSString*) subrole {
787 WebKit::WebAXRole browserAccessibilityRole = [self internalRole]; 787 blink::WebAXRole browserAccessibilityRole = [self internalRole];
788 if (browserAccessibilityRole == WebKit::WebAXRoleTextField && 788 if (browserAccessibilityRole == blink::WebAXRoleTextField &&
789 GetState(browserAccessibility_, WebKit::WebAXStateProtected)) { 789 GetState(browserAccessibility_, blink::WebAXStateProtected)) {
790 return @"AXSecureTextField"; 790 return @"AXSecureTextField";
791 } 791 }
792 792
793 NSString* htmlTag = NSStringForStringAttribute( 793 NSString* htmlTag = NSStringForStringAttribute(
794 browserAccessibility_, AccessibilityNodeData::ATTR_HTML_TAG); 794 browserAccessibility_, AccessibilityNodeData::ATTR_HTML_TAG);
795 795
796 if (browserAccessibilityRole == WebKit::WebAXRoleList) { 796 if (browserAccessibilityRole == blink::WebAXRoleList) {
797 if ([htmlTag isEqualToString:@"ul"] || 797 if ([htmlTag isEqualToString:@"ul"] ||
798 [htmlTag isEqualToString:@"ol"]) { 798 [htmlTag isEqualToString:@"ol"]) {
799 return @"AXContentList"; 799 return @"AXContentList";
800 } else if ([htmlTag isEqualToString:@"dl"]) { 800 } else if ([htmlTag isEqualToString:@"dl"]) {
801 return @"AXDescriptionList"; 801 return @"AXDescriptionList";
802 } 802 }
803 } 803 }
804 804
805 return NativeSubroleFromAccessibilityNodeDataRole(browserAccessibilityRole); 805 return NativeSubroleFromAccessibilityNodeDataRole(browserAccessibilityRole);
806 } 806 }
807 807
808 // Returns all tabs in this subtree. 808 // Returns all tabs in this subtree.
809 - (NSArray*)tabs { 809 - (NSArray*)tabs {
810 NSMutableArray* tabSubtree = [[[NSMutableArray alloc] init] autorelease]; 810 NSMutableArray* tabSubtree = [[[NSMutableArray alloc] init] autorelease];
811 811
812 if ([self internalRole] == WebKit::WebAXRoleTab) 812 if ([self internalRole] == blink::WebAXRoleTab)
813 [tabSubtree addObject:self]; 813 [tabSubtree addObject:self];
814 814
815 for (uint i=0; i < [[self children] count]; ++i) { 815 for (uint i=0; i < [[self children] count]; ++i) {
816 NSArray* tabChildren = [[[self children] objectAtIndex:i] tabs]; 816 NSArray* tabChildren = [[[self children] objectAtIndex:i] tabs];
817 if ([tabChildren count] > 0) 817 if ([tabChildren count] > 0)
818 [tabSubtree addObjectsFromArray:tabChildren]; 818 [tabSubtree addObjectsFromArray:tabChildren];
819 } 819 }
820 820
821 return tabSubtree; 821 return tabSubtree;
822 } 822 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL, &level)) { 857 AccessibilityNodeData::ATTR_HIERARCHICAL_LEVEL, &level)) {
858 return [NSNumber numberWithInt:level]; 858 return [NSNumber numberWithInt:level];
859 } 859 }
860 } else if ([role isEqualToString:NSAccessibilityButtonRole]) { 860 } else if ([role isEqualToString:NSAccessibilityButtonRole]) {
861 // AXValue does not make sense for pure buttons. 861 // AXValue does not make sense for pure buttons.
862 return @""; 862 return @"";
863 } else if ([role isEqualToString:NSAccessibilityCheckBoxRole] || 863 } else if ([role isEqualToString:NSAccessibilityCheckBoxRole] ||
864 [role isEqualToString:NSAccessibilityRadioButtonRole]) { 864 [role isEqualToString:NSAccessibilityRadioButtonRole]) {
865 int value = 0; 865 int value = 0;
866 value = GetState( 866 value = GetState(
867 browserAccessibility_, WebKit::WebAXStateChecked) ? 1 : 0; 867 browserAccessibility_, blink::WebAXStateChecked) ? 1 : 0;
868 value = GetState( 868 value = GetState(
869 browserAccessibility_, WebKit::WebAXStateSelected) ? 869 browserAccessibility_, blink::WebAXStateSelected) ?
870 1 : 870 1 :
871 value; 871 value;
872 872
873 if (browserAccessibility_->GetBoolAttribute( 873 if (browserAccessibility_->GetBoolAttribute(
874 AccessibilityNodeData::ATTR_BUTTON_MIXED)) { 874 AccessibilityNodeData::ATTR_BUTTON_MIXED)) {
875 value = 2; 875 value = 2;
876 } 876 }
877 return [NSNumber numberWithInt:value]; 877 return [NSNumber numberWithInt:value];
878 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] || 878 } else if ([role isEqualToString:NSAccessibilityProgressIndicatorRole] ||
879 [role isEqualToString:NSAccessibilitySliderRole] || 879 [role isEqualToString:NSAccessibilitySliderRole] ||
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
927 - (NSArray*)visibleColumns { 927 - (NSArray*)visibleColumns {
928 return [self columns]; 928 return [self columns];
929 } 929 }
930 930
931 - (NSArray*)visibleRows { 931 - (NSArray*)visibleRows {
932 return [self rows]; 932 return [self rows];
933 } 933 }
934 934
935 - (NSNumber*)visited { 935 - (NSNumber*)visited {
936 return [NSNumber numberWithBool: 936 return [NSNumber numberWithBool:
937 GetState(browserAccessibility_, WebKit::WebAXStateVisited)]; 937 GetState(browserAccessibility_, blink::WebAXStateVisited)];
938 } 938 }
939 939
940 - (id)window { 940 - (id)window {
941 return [delegate_ window]; 941 return [delegate_ window];
942 } 942 }
943 943
944 - (NSString*)methodNameForAttribute:(NSString*)attribute { 944 - (NSString*)methodNameForAttribute:(NSString*)attribute {
945 return [attributeToMethodNameMap objectForKey:attribute]; 945 return [attributeToMethodNameMap objectForKey:attribute];
946 } 946 }
947 947
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
1025 if (line_index < 0 || line_index >= line_count) 1025 if (line_index < 0 || line_index >= line_count)
1026 return nil; 1026 return nil;
1027 int start = line_index > 0 ? line_breaks[line_index - 1] : 0; 1027 int start = line_index > 0 ? line_breaks[line_index - 1] : 0;
1028 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;
1029 return [NSValue valueWithRange: 1029 return [NSValue valueWithRange:
1030 NSMakeRange(start, end - start)]; 1030 NSMakeRange(start, end - start)];
1031 } 1031 }
1032 1032
1033 if ([attribute isEqualToString: 1033 if ([attribute isEqualToString:
1034 NSAccessibilityCellForColumnAndRowParameterizedAttribute]) { 1034 NSAccessibilityCellForColumnAndRowParameterizedAttribute]) {
1035 if ([self internalRole] != WebKit::WebAXRoleTable && 1035 if ([self internalRole] != blink::WebAXRoleTable &&
1036 [self internalRole] != WebKit::WebAXRoleGrid) { 1036 [self internalRole] != blink::WebAXRoleGrid) {
1037 return nil; 1037 return nil;
1038 } 1038 }
1039 if (![parameter isKindOfClass:[NSArray self]]) 1039 if (![parameter isKindOfClass:[NSArray self]])
1040 return nil; 1040 return nil;
1041 NSArray* array = parameter; 1041 NSArray* array = parameter;
1042 int column = [[array objectAtIndex:0] intValue]; 1042 int column = [[array objectAtIndex:0] intValue];
1043 int row = [[array objectAtIndex:1] intValue]; 1043 int row = [[array objectAtIndex:1] intValue];
1044 int num_columns = browserAccessibility_->GetIntAttribute( 1044 int num_columns = browserAccessibility_->GetIntAttribute(
1045 AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT); 1045 AccessibilityNodeData::ATTR_TABLE_COLUMN_COUNT);
1046 int num_rows = browserAccessibility_->GetIntAttribute( 1046 int num_rows = browserAccessibility_->GetIntAttribute(
1047 AccessibilityNodeData::ATTR_TABLE_ROW_COUNT); 1047 AccessibilityNodeData::ATTR_TABLE_ROW_COUNT);
1048 if (column < 0 || column >= num_columns || 1048 if (column < 0 || column >= num_columns ||
1049 row < 0 || row >= num_rows) { 1049 row < 0 || row >= num_rows) {
1050 return nil; 1050 return nil;
1051 } 1051 }
1052 for (size_t i = 0; 1052 for (size_t i = 0;
1053 i < browserAccessibility_->PlatformChildCount(); 1053 i < browserAccessibility_->PlatformChildCount();
1054 ++i) { 1054 ++i) {
1055 BrowserAccessibility* child = browserAccessibility_->PlatformGetChild(i); 1055 BrowserAccessibility* child = browserAccessibility_->PlatformGetChild(i);
1056 if (child->role() != WebKit::WebAXRoleRow) 1056 if (child->role() != blink::WebAXRoleRow)
1057 continue; 1057 continue;
1058 int rowIndex; 1058 int rowIndex;
1059 if (!child->GetIntAttribute( 1059 if (!child->GetIntAttribute(
1060 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX, &rowIndex)) { 1060 AccessibilityNodeData::ATTR_TABLE_ROW_INDEX, &rowIndex)) {
1061 continue; 1061 continue;
1062 } 1062 }
1063 if (rowIndex < row) 1063 if (rowIndex < row)
1064 continue; 1064 continue;
1065 if (rowIndex > row) 1065 if (rowIndex > row)
1066 break; 1066 break;
1067 for (size_t j = 0; 1067 for (size_t j = 0;
1068 j < child->PlatformChildCount(); 1068 j < child->PlatformChildCount();
1069 ++j) { 1069 ++j) {
1070 BrowserAccessibility* cell = child->PlatformGetChild(j); 1070 BrowserAccessibility* cell = child->PlatformGetChild(j);
1071 if (cell->role() != WebKit::WebAXRoleCell) 1071 if (cell->role() != blink::WebAXRoleCell)
1072 continue; 1072 continue;
1073 int colIndex; 1073 int colIndex;
1074 if (!cell->GetIntAttribute( 1074 if (!cell->GetIntAttribute(
1075 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX, 1075 AccessibilityNodeData::ATTR_TABLE_CELL_COLUMN_INDEX,
1076 &colIndex)) { 1076 &colIndex)) {
1077 continue; 1077 continue;
1078 } 1078 }
1079 if (colIndex == column) 1079 if (colIndex == column)
1080 return cell->ToBrowserAccessibilityCocoa(); 1080 return cell->ToBrowserAccessibilityCocoa();
1081 if (colIndex > column) 1081 if (colIndex > column)
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
1334 } 1334 }
1335 1335
1336 // 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
1337 // accessibility API via |accessibilitySetValue:forAttribute:|. 1337 // accessibility API via |accessibilitySetValue:forAttribute:|.
1338 - (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute { 1338 - (BOOL)accessibilityIsAttributeSettable:(NSString*)attribute {
1339 if (!browserAccessibility_) 1339 if (!browserAccessibility_)
1340 return nil; 1340 return nil;
1341 1341
1342 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) 1342 if ([attribute isEqualToString:NSAccessibilityFocusedAttribute])
1343 return GetState(browserAccessibility_, 1343 return GetState(browserAccessibility_,
1344 WebKit::WebAXStateFocusable); 1344 blink::WebAXStateFocusable);
1345 if ([attribute isEqualToString:NSAccessibilityValueAttribute]) { 1345 if ([attribute isEqualToString:NSAccessibilityValueAttribute]) {
1346 return browserAccessibility_->GetBoolAttribute( 1346 return browserAccessibility_->GetBoolAttribute(
1347 AccessibilityNodeData::ATTR_CAN_SET_VALUE); 1347 AccessibilityNodeData::ATTR_CAN_SET_VALUE);
1348 } 1348 }
1349 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute] && 1349 if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute] &&
1350 ([[self role] isEqualToString:NSAccessibilityTextFieldRole] || 1350 ([[self role] isEqualToString:NSAccessibilityTextFieldRole] ||
1351 [[self role] isEqualToString:NSAccessibilityTextAreaRole])) 1351 [[self role] isEqualToString:NSAccessibilityTextAreaRole]))
1352 return YES; 1352 return YES;
1353 1353
1354 return NO; 1354 return NO;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1450 return [super hash]; 1450 return [super hash];
1451 return browserAccessibility_->renderer_id(); 1451 return browserAccessibility_->renderer_id();
1452 } 1452 }
1453 1453
1454 - (BOOL)accessibilityShouldUseUniqueId { 1454 - (BOOL)accessibilityShouldUseUniqueId {
1455 return YES; 1455 return YES;
1456 } 1456 }
1457 1457
1458 @end 1458 @end
1459 1459
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698