OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 28 matching lines...) Expand all Loading... |
39 | 39 |
40 using namespace WebKit; | 40 using namespace WebKit; |
41 using namespace std; | 41 using namespace std; |
42 | 42 |
43 namespace WebTestRunner { | 43 namespace WebTestRunner { |
44 | 44 |
45 namespace { | 45 namespace { |
46 | 46 |
47 // Map role value to string, matching Safari/Mac platform implementation to | 47 // Map role value to string, matching Safari/Mac platform implementation to |
48 // avoid rebaselining layout tests. | 48 // avoid rebaselining layout tests. |
49 string roleToString(WebAccessibilityRole role) | 49 string roleToString(WebAXRole role) |
50 { | 50 { |
51 string result = "AXRole: AX"; | 51 string result = "AXRole: AX"; |
52 switch (role) { | 52 switch (role) { |
53 case WebAccessibilityRoleButton: | 53 case WebAXRoleAlertDialog: |
| 54 return result.append("AlertDialog"); |
| 55 case WebAXRoleAlert: |
| 56 return result.append("Alert"); |
| 57 case WebAXRoleAnnotation: |
| 58 return result.append("Annotation"); |
| 59 case WebAXRoleApplication: |
| 60 return result.append("Application"); |
| 61 case WebAXRoleArticle: |
| 62 return result.append("Article"); |
| 63 case WebAXRoleBanner: |
| 64 return result.append("Banner"); |
| 65 case WebAXRoleBrowser: |
| 66 return result.append("Browser"); |
| 67 case WebAXRoleBusyIndicator: |
| 68 return result.append("BusyIndicator"); |
| 69 case WebAXRoleButton: |
54 return result.append("Button"); | 70 return result.append("Button"); |
55 case WebAccessibilityRoleRadioButton: | 71 case WebAXRoleCanvas: |
| 72 return result.append("Canvas"); |
| 73 case WebAXRoleCell: |
| 74 return result.append("Cell"); |
| 75 case WebAXRoleCheckBox: |
| 76 return result.append("CheckBox"); |
| 77 case WebAXRoleColorWell: |
| 78 return result.append("ColorWell"); |
| 79 case WebAXRoleColumnHeader: |
| 80 return result.append("ColumnHeader"); |
| 81 case WebAXRoleColumn: |
| 82 return result.append("Column"); |
| 83 case WebAXRoleComboBox: |
| 84 return result.append("ComboBox"); |
| 85 case WebAXRoleComplementary: |
| 86 return result.append("Complementary"); |
| 87 case WebAXRoleContentInfo: |
| 88 return result.append("ContentInfo"); |
| 89 case WebAXRoleDefinition: |
| 90 return result.append("Definition"); |
| 91 case WebAXRoleDescriptionListDetail: |
| 92 return result.append("DescriptionListDetail"); |
| 93 case WebAXRoleDescriptionListTerm: |
| 94 return result.append("DescriptionListTerm"); |
| 95 case WebAXRoleDialog: |
| 96 return result.append("Dialog"); |
| 97 case WebAXRoleDirectory: |
| 98 return result.append("Directory"); |
| 99 case WebAXRoleDisclosureTriangle: |
| 100 return result.append("DisclosureTriangle"); |
| 101 case WebAXRoleDiv: |
| 102 return result.append("Div"); |
| 103 case WebAXRoleDocument: |
| 104 return result.append("Document"); |
| 105 case WebAXRoleDrawer: |
| 106 return result.append("Drawer"); |
| 107 case WebAXRoleEditableText: |
| 108 return result.append("EditableText"); |
| 109 case WebAXRoleFooter: |
| 110 return result.append("Footer"); |
| 111 case WebAXRoleForm: |
| 112 return result.append("Form"); |
| 113 case WebAXRoleGrid: |
| 114 return result.append("Grid"); |
| 115 case WebAXRoleGroup: |
| 116 return result.append("Group"); |
| 117 case WebAXRoleGrowArea: |
| 118 return result.append("GrowArea"); |
| 119 case WebAXRoleHeading: |
| 120 return result.append("Heading"); |
| 121 case WebAXRoleHelpTag: |
| 122 return result.append("HelpTag"); |
| 123 case WebAXRoleHorizontalRule: |
| 124 return result.append("HorizontalRule"); |
| 125 case WebAXRoleIgnored: |
| 126 return result.append("Ignored"); |
| 127 case WebAXRoleImageMapLink: |
| 128 return result.append("ImageMapLink"); |
| 129 case WebAXRoleImageMap: |
| 130 return result.append("ImageMap"); |
| 131 case WebAXRoleImage: |
| 132 return result.append("Image"); |
| 133 case WebAXRoleIncrementor: |
| 134 return result.append("Incrementor"); |
| 135 case WebAXRoleLabel: |
| 136 return result.append("Label"); |
| 137 case WebAXRoleLegend: |
| 138 return result.append("Legend"); |
| 139 case WebAXRoleLink: |
| 140 return result.append("Link"); |
| 141 case WebAXRoleListBoxOption: |
| 142 return result.append("ListBoxOption"); |
| 143 case WebAXRoleListBox: |
| 144 return result.append("ListBox"); |
| 145 case WebAXRoleListItem: |
| 146 return result.append("ListItem"); |
| 147 case WebAXRoleListMarker: |
| 148 return result.append("ListMarker"); |
| 149 case WebAXRoleList: |
| 150 return result.append("List"); |
| 151 case WebAXRoleLog: |
| 152 return result.append("Log"); |
| 153 case WebAXRoleMain: |
| 154 return result.append("Main"); |
| 155 case WebAXRoleMarquee: |
| 156 return result.append("Marquee"); |
| 157 case WebAXRoleMathElement: |
| 158 return result.append("MathElement"); |
| 159 case WebAXRoleMath: |
| 160 return result.append("Math"); |
| 161 case WebAXRoleMatte: |
| 162 return result.append("Matte"); |
| 163 case WebAXRoleMenuBar: |
| 164 return result.append("MenuBar"); |
| 165 case WebAXRoleMenuButton: |
| 166 return result.append("MenuButton"); |
| 167 case WebAXRoleMenuItem: |
| 168 return result.append("MenuItem"); |
| 169 case WebAXRoleMenuListOption: |
| 170 return result.append("MenuListOption"); |
| 171 case WebAXRoleMenuListPopup: |
| 172 return result.append("MenuListPopup"); |
| 173 case WebAXRoleMenu: |
| 174 return result.append("Menu"); |
| 175 case WebAXRoleNavigation: |
| 176 return result.append("Navigation"); |
| 177 case WebAXRoleNote: |
| 178 return result.append("Note"); |
| 179 case WebAXRoleOutline: |
| 180 return result.append("Outline"); |
| 181 case WebAXRoleParagraph: |
| 182 return result.append("Paragraph"); |
| 183 case WebAXRolePopUpButton: |
| 184 return result.append("PopUpButton"); |
| 185 case WebAXRolePresentational: |
| 186 return result.append("Presentational"); |
| 187 case WebAXRoleProgressIndicator: |
| 188 return result.append("ProgressIndicator"); |
| 189 case WebAXRoleRadioButton: |
56 return result.append("RadioButton"); | 190 return result.append("RadioButton"); |
57 case WebAccessibilityRoleCheckBox: | 191 case WebAXRoleRadioGroup: |
58 return result.append("CheckBox"); | 192 return result.append("RadioGroup"); |
59 case WebAccessibilityRoleSlider: | 193 case WebAXRoleRegion: |
| 194 return result.append("Region"); |
| 195 case WebAXRoleRootWebArea: |
| 196 return result.append("RootWebArea"); |
| 197 case WebAXRoleRowHeader: |
| 198 return result.append("RowHeader"); |
| 199 case WebAXRoleRow: |
| 200 return result.append("Row"); |
| 201 case WebAXRoleRulerMarker: |
| 202 return result.append("RulerMarker"); |
| 203 case WebAXRoleRuler: |
| 204 return result.append("Ruler"); |
| 205 case WebAXRoleSVGRoot: |
| 206 return result.append("SVGRoot"); |
| 207 case WebAXRoleScrollArea: |
| 208 return result.append("ScrollArea"); |
| 209 case WebAXRoleScrollBar: |
| 210 return result.append("ScrollBar"); |
| 211 case WebAXRoleSeamlessWebArea: |
| 212 return result.append("SeamlessWebArea"); |
| 213 case WebAXRoleSearch: |
| 214 return result.append("Search"); |
| 215 case WebAXRoleSheet: |
| 216 return result.append("Sheet"); |
| 217 case WebAXRoleSlider: |
60 return result.append("Slider"); | 218 return result.append("Slider"); |
61 case WebAccessibilityRoleTabGroup: | 219 case WebAXRoleSliderThumb: |
| 220 return result.append("SliderThumb"); |
| 221 case WebAXRoleSpinButtonPart: |
| 222 return result.append("SpinButtonPart"); |
| 223 case WebAXRoleSpinButton: |
| 224 return result.append("SpinButton"); |
| 225 case WebAXRoleSplitGroup: |
| 226 return result.append("SplitGroup"); |
| 227 case WebAXRoleSplitter: |
| 228 return result.append("Splitter"); |
| 229 case WebAXRoleStaticText: |
| 230 return result.append("StaticText"); |
| 231 case WebAXRoleStatus: |
| 232 return result.append("Status"); |
| 233 case WebAXRoleSystemWide: |
| 234 return result.append("SystemWide"); |
| 235 case WebAXRoleTabGroup: |
62 return result.append("TabGroup"); | 236 return result.append("TabGroup"); |
63 case WebAccessibilityRoleTextField: | 237 case WebAXRoleTabList: |
| 238 return result.append("TabList"); |
| 239 case WebAXRoleTabPanel: |
| 240 return result.append("TabPanel"); |
| 241 case WebAXRoleTab: |
| 242 return result.append("Tab"); |
| 243 case WebAXRoleTableHeaderContainer: |
| 244 return result.append("TableHeaderContainer"); |
| 245 case WebAXRoleTable: |
| 246 return result.append("Table"); |
| 247 case WebAXRoleTextArea: |
| 248 return result.append("TextArea"); |
| 249 case WebAXRoleTextField: |
64 return result.append("TextField"); | 250 return result.append("TextField"); |
65 case WebAccessibilityRoleStaticText: | 251 case WebAXRoleTimer: |
66 return result.append("StaticText"); | 252 return result.append("Timer"); |
67 case WebAccessibilityRoleTextArea: | 253 case WebAXRoleToggleButton: |
68 return result.append("TextArea"); | 254 return result.append("ToggleButton"); |
69 case WebAccessibilityRoleScrollArea: | 255 case WebAXRoleToolbar: |
70 return result.append("ScrollArea"); | 256 return result.append("Toolbar"); |
71 case WebAccessibilityRolePopUpButton: | 257 case WebAXRoleTreeGrid: |
72 return result.append("PopUpButton"); | 258 return result.append("TreeGrid"); |
73 case WebAccessibilityRoleMenuButton: | 259 case WebAXRoleTreeItem: |
74 return result.append("MenuButton"); | 260 return result.append("TreeItem"); |
75 case WebAccessibilityRoleTable: | 261 case WebAXRoleTree: |
76 return result.append("Table"); | 262 return result.append("Tree"); |
77 case WebAccessibilityRoleApplication: | 263 case WebAXRoleUnknown: |
78 return result.append("Application"); | 264 return result.append("Unknown"); |
79 case WebAccessibilityRoleGroup: | 265 case WebAXRoleUserInterfaceTooltip: |
80 return result.append("Group"); | 266 return result.append("UserInterfaceTooltip"); |
81 case WebAccessibilityRoleRadioGroup: | 267 case WebAXRoleValueIndicator: |
82 return result.append("RadioGroup"); | |
83 case WebAccessibilityRoleList: | |
84 return result.append("List"); | |
85 case WebAccessibilityRoleScrollBar: | |
86 return result.append("ScrollBar"); | |
87 case WebAccessibilityRoleValueIndicator: | |
88 return result.append("ValueIndicator"); | 268 return result.append("ValueIndicator"); |
89 case WebAccessibilityRoleImage: | 269 case WebAXRoleWebArea: |
90 return result.append("Image"); | 270 return result.append("WebArea"); |
91 case WebAccessibilityRoleMenuBar: | 271 case WebAXRoleWindow: |
92 return result.append("MenuBar"); | |
93 case WebAccessibilityRoleMenu: | |
94 return result.append("Menu"); | |
95 case WebAccessibilityRoleMenuItem: | |
96 return result.append("MenuItem"); | |
97 case WebAccessibilityRoleColumn: | |
98 return result.append("Column"); | |
99 case WebAccessibilityRoleRow: | |
100 return result.append("Row"); | |
101 case WebAccessibilityRoleToolbar: | |
102 return result.append("Toolbar"); | |
103 case WebAccessibilityRoleBusyIndicator: | |
104 return result.append("BusyIndicator"); | |
105 case WebAccessibilityRoleProgressIndicator: | |
106 return result.append("ProgressIndicator"); | |
107 case WebAccessibilityRoleWindow: | |
108 return result.append("Window"); | 272 return result.append("Window"); |
109 case WebAccessibilityRoleDrawer: | |
110 return result.append("Drawer"); | |
111 case WebAccessibilityRoleSystemWide: | |
112 return result.append("SystemWide"); | |
113 case WebAccessibilityRoleOutline: | |
114 return result.append("Outline"); | |
115 case WebAccessibilityRoleIncrementor: | |
116 return result.append("Incrementor"); | |
117 case WebAccessibilityRoleBrowser: | |
118 return result.append("Browser"); | |
119 case WebAccessibilityRoleComboBox: | |
120 return result.append("ComboBox"); | |
121 case WebAccessibilityRoleSplitGroup: | |
122 return result.append("SplitGroup"); | |
123 case WebAccessibilityRoleSplitter: | |
124 return result.append("Splitter"); | |
125 case WebAccessibilityRoleColorWell: | |
126 return result.append("ColorWell"); | |
127 case WebAccessibilityRoleGrowArea: | |
128 return result.append("GrowArea"); | |
129 case WebAccessibilityRoleSheet: | |
130 return result.append("Sheet"); | |
131 case WebAccessibilityRoleHelpTag: | |
132 return result.append("HelpTag"); | |
133 case WebAccessibilityRoleMatte: | |
134 return result.append("Matte"); | |
135 case WebAccessibilityRoleRuler: | |
136 return result.append("Ruler"); | |
137 case WebAccessibilityRoleRulerMarker: | |
138 return result.append("RulerMarker"); | |
139 case WebAccessibilityRoleLink: | |
140 return result.append("Link"); | |
141 case WebAccessibilityRoleDisclosureTriangle: | |
142 return result.append("DisclosureTriangle"); | |
143 case WebAccessibilityRoleGrid: | |
144 return result.append("Grid"); | |
145 case WebAccessibilityRoleCell: | |
146 return result.append("Cell"); | |
147 case WebAccessibilityRoleColumnHeader: | |
148 return result.append("ColumnHeader"); | |
149 case WebAccessibilityRoleRowHeader: | |
150 return result.append("RowHeader"); | |
151 case WebAccessibilityRoleWebCoreLink: | |
152 // Maps to Link role. | |
153 return result.append("Link"); | |
154 case WebAccessibilityRoleImageMapLink: | |
155 return result.append("ImageMapLink"); | |
156 case WebAccessibilityRoleImageMap: | |
157 return result.append("ImageMap"); | |
158 case WebAccessibilityRoleListMarker: | |
159 return result.append("ListMarker"); | |
160 case WebAccessibilityRoleWebArea: | |
161 return result.append("WebArea"); | |
162 case WebAccessibilityRoleHeading: | |
163 return result.append("Heading"); | |
164 case WebAccessibilityRoleListBox: | |
165 return result.append("ListBox"); | |
166 case WebAccessibilityRoleListBoxOption: | |
167 return result.append("ListBoxOption"); | |
168 case WebAccessibilityRoleTableHeaderContainer: | |
169 return result.append("TableHeaderContainer"); | |
170 case WebAccessibilityRoleDefinition: | |
171 return result.append("Definition"); | |
172 case WebAccessibilityRoleDescriptionListTerm: | |
173 return result.append("DescriptionListTerm"); | |
174 case WebAccessibilityRoleDescriptionListDetail: | |
175 return result.append("DescriptionListDetail"); | |
176 case WebAccessibilityRoleAnnotation: | |
177 return result.append("Annotation"); | |
178 case WebAccessibilityRoleSliderThumb: | |
179 return result.append("SliderThumb"); | |
180 case WebAccessibilityRoleLandmarkApplication: | |
181 return result.append("LandmarkApplication"); | |
182 case WebAccessibilityRoleLandmarkBanner: | |
183 return result.append("LandmarkBanner"); | |
184 case WebAccessibilityRoleLandmarkComplementary: | |
185 return result.append("LandmarkComplementary"); | |
186 case WebAccessibilityRoleLandmarkContentInfo: | |
187 return result.append("LandmarkContentInfo"); | |
188 case WebAccessibilityRoleLandmarkMain: | |
189 return result.append("LandmarkMain"); | |
190 case WebAccessibilityRoleLandmarkNavigation: | |
191 return result.append("LandmarkNavigation"); | |
192 case WebAccessibilityRoleLandmarkSearch: | |
193 return result.append("LandmarkSearch"); | |
194 case WebAccessibilityRoleApplicationLog: | |
195 return result.append("ApplicationLog"); | |
196 case WebAccessibilityRoleApplicationMarquee: | |
197 return result.append("ApplicationMarquee"); | |
198 case WebAccessibilityRoleApplicationStatus: | |
199 return result.append("ApplicationStatus"); | |
200 case WebAccessibilityRoleApplicationTimer: | |
201 return result.append("ApplicationTimer"); | |
202 case WebAccessibilityRoleDocument: | |
203 return result.append("Document"); | |
204 case WebAccessibilityRoleDocumentArticle: | |
205 return result.append("DocumentArticle"); | |
206 case WebAccessibilityRoleDocumentNote: | |
207 return result.append("DocumentNote"); | |
208 case WebAccessibilityRoleDocumentRegion: | |
209 return result.append("DocumentRegion"); | |
210 case WebAccessibilityRoleUserInterfaceTooltip: | |
211 return result.append("UserInterfaceTooltip"); | |
212 case WebAccessibilityRoleToggleButton: | |
213 return result.append("ToggleButton"); | |
214 case WebAccessibilityRoleCanvas: | |
215 return result.append("Canvas"); | |
216 case WebAccessibilityRoleParagraph: | |
217 return result.append("Paragraph"); | |
218 case WebAccessibilityRoleDiv: | |
219 return result.append("Div"); | |
220 case WebAccessibilityRoleLabel: | |
221 return result.append("Label"); | |
222 case WebAccessibilityRoleForm: | |
223 return result.append("Form"); | |
224 case WebAccessibilityRoleHorizontalRule: | |
225 return result.append("HorizontalRule"); | |
226 case WebAccessibilityRoleLegend: | |
227 return result.append("Legend"); | |
228 case WebAccessibilityRoleApplicationAlert: | |
229 return result.append("Alert"); | |
230 case WebAccessibilityRoleApplicationAlertDialog: | |
231 return result.append("AlertDialog"); | |
232 case WebAccessibilityRoleApplicationDialog: | |
233 return result.append("ApplicationDialog"); | |
234 case WebAccessibilityRoleDirectory: | |
235 return result.append("Directory"); | |
236 case WebAccessibilityRoleDocumentMath: | |
237 return result.append("Math"); | |
238 case WebAccessibilityRoleEditableText: | |
239 return result.append("EditableText"); | |
240 case WebAccessibilityRoleFooter: | |
241 return result.append("Footer"); | |
242 case WebAccessibilityRoleIgnored: | |
243 return result.append("Ignored"); | |
244 case WebAccessibilityRoleListItem: | |
245 return result.append("ListItem"); | |
246 case WebAccessibilityRoleMenuListPopup: | |
247 return result.append("MenuListPopup"); | |
248 case WebAccessibilityRoleMenuListOption: | |
249 return result.append("MenuListOption"); | |
250 case WebAccessibilityRolePresentational: | |
251 return result.append("Presentational"); | |
252 case WebAccessibilityRoleSpinButton: | |
253 return result.append("SpinButton"); | |
254 case WebAccessibilityRoleSpinButtonPart: | |
255 return result.append("SpinButtonPart"); | |
256 case WebAccessibilityRoleTabList: | |
257 return result.append("TabList"); | |
258 case WebAccessibilityRoleTabPanel: | |
259 return result.append("TabPanel"); | |
260 case WebAccessibilityRoleTab: | |
261 return result.append("Tab"); | |
262 case WebAccessibilityRoleTreeRole: | |
263 return result.append("Tree"); | |
264 case WebAccessibilityRoleTreeGrid: | |
265 return result.append("TreeGrid"); | |
266 case WebAccessibilityRoleTreeItemRole: | |
267 return result.append("TreeItem"); | |
268 case WebAccessibilityRoleUnknown: | |
269 default: | 273 default: |
270 return result.append("Unknown"); | 274 return result.append("Unknown"); |
271 } | 275 } |
272 } | 276 } |
273 | 277 |
274 string getDescription(const WebAccessibilityObject& object) | 278 string getDescription(const WebAccessibilityObject& object) |
275 { | 279 { |
276 string description = object.accessibilityDescription().utf8(); | 280 string description = object.accessibilityDescription().utf8(); |
277 return description.insert(0, "AXDescription: "); | 281 return description.insert(0, "AXDescription: "); |
278 } | 282 } |
(...skipping 13 matching lines...) Expand all Loading... |
292 object.colorValue(r, g, b); | 296 object.colorValue(r, g, b); |
293 snprintf(buffer, sizeof(buffer), "rgb %7.5f %7.5f %7.5f 1", r / 255., g
/ 255., b / 255.); | 297 snprintf(buffer, sizeof(buffer), "rgb %7.5f %7.5f %7.5f 1", r / 255., g
/ 255., b / 255.); |
294 value = buffer; | 298 value = buffer; |
295 } else | 299 } else |
296 value = object.stringValue().utf8(); | 300 value = object.stringValue().utf8(); |
297 return value.insert(0, "AXValue: "); | 301 return value.insert(0, "AXValue: "); |
298 } | 302 } |
299 | 303 |
300 string getRole(const WebAccessibilityObject& object) | 304 string getRole(const WebAccessibilityObject& object) |
301 { | 305 { |
302 string roleString = roleToString(object.roleValue()); | 306 string roleString = roleToString(object.role()); |
303 | 307 |
304 // Special-case canvas with fallback content because Chromium wants to | 308 // Special-case canvas with fallback content because Chromium wants to |
305 // treat this as essentially a separate role that it can map differently dep
ending | 309 // treat this as essentially a separate role that it can map differently dep
ending |
306 // on the platform. | 310 // on the platform. |
307 if (object.roleValue() == WebAccessibilityRoleCanvas && object.canvasHasFall
backContent()) | 311 if (object.roleValue() == WebAccessibilityRoleCanvas && object.canvasHasFall
backContent()) |
308 roleString += "WithFallbackContent"; | 312 roleString += "WithFallbackContent"; |
309 | 313 |
310 return roleString; | 314 return roleString; |
311 } | 315 } |
312 | 316 |
(...skipping 765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1078 } | 1082 } |
1079 | 1083 |
1080 AccessibilityUIElement* AccessibilityUIElementList::createRoot(const WebAccessib
ilityObject& object) | 1084 AccessibilityUIElement* AccessibilityUIElementList::createRoot(const WebAccessib
ilityObject& object) |
1081 { | 1085 { |
1082 AccessibilityUIElement* element = new RootAccessibilityUIElement(object, thi
s); | 1086 AccessibilityUIElement* element = new RootAccessibilityUIElement(object, thi
s); |
1083 m_elements.push_back(element); | 1087 m_elements.push_back(element); |
1084 return element; | 1088 return element; |
1085 } | 1089 } |
1086 | 1090 |
1087 } | 1091 } |
OLD | NEW |