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

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

Issue 10919157: Add support for new accessibility roles from WebKit, with tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add Mac expectations based on trybot runs Created 8 years, 3 months 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
« no previous file with comments | « no previous file | content/browser/accessibility/browser_accessibility_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 const MapEntry roles[] = { 57 const MapEntry roles[] = {
58 { AccessibilityNodeData::ROLE_ALERT, NSAccessibilityGroupRole }, 58 { AccessibilityNodeData::ROLE_ALERT, NSAccessibilityGroupRole },
59 { AccessibilityNodeData::ROLE_ALERT_DIALOG, NSAccessibilityGroupRole }, 59 { AccessibilityNodeData::ROLE_ALERT_DIALOG, NSAccessibilityGroupRole },
60 { AccessibilityNodeData::ROLE_ANNOTATION, NSAccessibilityUnknownRole }, 60 { AccessibilityNodeData::ROLE_ANNOTATION, NSAccessibilityUnknownRole },
61 { AccessibilityNodeData::ROLE_APPLICATION, NSAccessibilityGroupRole }, 61 { AccessibilityNodeData::ROLE_APPLICATION, NSAccessibilityGroupRole },
62 { AccessibilityNodeData::ROLE_ARTICLE, NSAccessibilityGroupRole }, 62 { AccessibilityNodeData::ROLE_ARTICLE, NSAccessibilityGroupRole },
63 { AccessibilityNodeData::ROLE_BROWSER, NSAccessibilityBrowserRole }, 63 { AccessibilityNodeData::ROLE_BROWSER, NSAccessibilityBrowserRole },
64 { AccessibilityNodeData::ROLE_BUSY_INDICATOR, 64 { AccessibilityNodeData::ROLE_BUSY_INDICATOR,
65 NSAccessibilityBusyIndicatorRole }, 65 NSAccessibilityBusyIndicatorRole },
66 { AccessibilityNodeData::ROLE_BUTTON, NSAccessibilityButtonRole }, 66 { AccessibilityNodeData::ROLE_BUTTON, NSAccessibilityButtonRole },
67 { AccessibilityNodeData::ROLE_CANVAS, NSAccessibilityImageRole },
68 { AccessibilityNodeData::ROLE_CANVAS_WITH_FALLBACK_CONTENT,
69 NSAccessibilityGroupRole },
67 { AccessibilityNodeData::ROLE_CELL, @"AXCell" }, 70 { AccessibilityNodeData::ROLE_CELL, @"AXCell" },
68 { AccessibilityNodeData::ROLE_CHECKBOX, NSAccessibilityCheckBoxRole }, 71 { AccessibilityNodeData::ROLE_CHECKBOX, NSAccessibilityCheckBoxRole },
69 { AccessibilityNodeData::ROLE_COLOR_WELL, NSAccessibilityColorWellRole }, 72 { AccessibilityNodeData::ROLE_COLOR_WELL, NSAccessibilityColorWellRole },
70 { AccessibilityNodeData::ROLE_COLUMN, NSAccessibilityColumnRole }, 73 { AccessibilityNodeData::ROLE_COLUMN, NSAccessibilityColumnRole },
71 { AccessibilityNodeData::ROLE_COLUMN_HEADER, @"AXCell" }, 74 { AccessibilityNodeData::ROLE_COLUMN_HEADER, @"AXCell" },
72 { AccessibilityNodeData::ROLE_DEFINITION_LIST_DEFINITION, 75 { AccessibilityNodeData::ROLE_DEFINITION_LIST_DEFINITION,
73 NSAccessibilityGroupRole }, 76 NSAccessibilityGroupRole },
74 { AccessibilityNodeData::ROLE_DEFINITION_LIST_TERM, 77 { AccessibilityNodeData::ROLE_DEFINITION_LIST_TERM,
75 NSAccessibilityGroupRole }, 78 NSAccessibilityGroupRole },
76 { AccessibilityNodeData::ROLE_DIALOG, NSAccessibilityGroupRole }, 79 { AccessibilityNodeData::ROLE_DIALOG, NSAccessibilityGroupRole },
77 { AccessibilityNodeData::ROLE_DIRECTORY, NSAccessibilityListRole }, 80 { AccessibilityNodeData::ROLE_DIRECTORY, NSAccessibilityListRole },
78 { AccessibilityNodeData::ROLE_DISCLOSURE_TRIANGLE, 81 { AccessibilityNodeData::ROLE_DISCLOSURE_TRIANGLE,
79 NSAccessibilityDisclosureTriangleRole }, 82 NSAccessibilityDisclosureTriangleRole },
80 { AccessibilityNodeData::ROLE_DOCUMENT, NSAccessibilityGroupRole }, 83 { AccessibilityNodeData::ROLE_DOCUMENT, NSAccessibilityGroupRole },
81 { AccessibilityNodeData::ROLE_DRAWER, NSAccessibilityDrawerRole }, 84 { AccessibilityNodeData::ROLE_DRAWER, NSAccessibilityDrawerRole },
82 { AccessibilityNodeData::ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole }, 85 { AccessibilityNodeData::ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole },
83 { AccessibilityNodeData::ROLE_FOOTER, NSAccessibilityGroupRole }, 86 { AccessibilityNodeData::ROLE_FOOTER, NSAccessibilityGroupRole },
87 { AccessibilityNodeData::ROLE_FORM, NSAccessibilityGroupRole },
84 { AccessibilityNodeData::ROLE_GRID, NSAccessibilityGridRole }, 88 { AccessibilityNodeData::ROLE_GRID, NSAccessibilityGridRole },
85 { AccessibilityNodeData::ROLE_GROUP, NSAccessibilityGroupRole }, 89 { AccessibilityNodeData::ROLE_GROUP, NSAccessibilityGroupRole },
86 { AccessibilityNodeData::ROLE_GROW_AREA, NSAccessibilityGrowAreaRole }, 90 { AccessibilityNodeData::ROLE_GROW_AREA, NSAccessibilityGrowAreaRole },
87 { AccessibilityNodeData::ROLE_HEADING, @"AXHeading" }, 91 { AccessibilityNodeData::ROLE_HEADING, @"AXHeading" },
88 { AccessibilityNodeData::ROLE_HELP_TAG, NSAccessibilityHelpTagRole }, 92 { AccessibilityNodeData::ROLE_HELP_TAG, NSAccessibilityHelpTagRole },
93 { AccessibilityNodeData::ROLE_HORIZONTAL_RULE, NSAccessibilityGroupRole },
89 { AccessibilityNodeData::ROLE_IGNORED, NSAccessibilityUnknownRole }, 94 { AccessibilityNodeData::ROLE_IGNORED, NSAccessibilityUnknownRole },
90 { AccessibilityNodeData::ROLE_IMAGE, NSAccessibilityImageRole }, 95 { AccessibilityNodeData::ROLE_IMAGE, NSAccessibilityImageRole },
91 { AccessibilityNodeData::ROLE_IMAGE_MAP, NSAccessibilityGroupRole }, 96 { AccessibilityNodeData::ROLE_IMAGE_MAP, NSAccessibilityGroupRole },
92 { AccessibilityNodeData::ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole }, 97 { AccessibilityNodeData::ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole },
93 { AccessibilityNodeData::ROLE_INCREMENTOR, NSAccessibilityIncrementorRole }, 98 { AccessibilityNodeData::ROLE_INCREMENTOR, NSAccessibilityIncrementorRole },
99 { AccessibilityNodeData::ROLE_LABEL, NSAccessibilityGroupRole },
94 { AccessibilityNodeData::ROLE_LANDMARK_APPLICATION, 100 { AccessibilityNodeData::ROLE_LANDMARK_APPLICATION,
95 NSAccessibilityGroupRole }, 101 NSAccessibilityGroupRole },
96 { AccessibilityNodeData::ROLE_LANDMARK_BANNER, NSAccessibilityGroupRole }, 102 { AccessibilityNodeData::ROLE_LANDMARK_BANNER, NSAccessibilityGroupRole },
97 { AccessibilityNodeData::ROLE_LANDMARK_COMPLEMENTARY, 103 { AccessibilityNodeData::ROLE_LANDMARK_COMPLEMENTARY,
98 NSAccessibilityGroupRole }, 104 NSAccessibilityGroupRole },
99 { AccessibilityNodeData::ROLE_LANDMARK_CONTENTINFO, 105 { AccessibilityNodeData::ROLE_LANDMARK_CONTENTINFO,
100 NSAccessibilityGroupRole }, 106 NSAccessibilityGroupRole },
101 { AccessibilityNodeData::ROLE_LANDMARK_MAIN, NSAccessibilityGroupRole }, 107 { AccessibilityNodeData::ROLE_LANDMARK_MAIN, NSAccessibilityGroupRole },
102 { AccessibilityNodeData::ROLE_LANDMARK_NAVIGATION, 108 { AccessibilityNodeData::ROLE_LANDMARK_NAVIGATION,
103 NSAccessibilityGroupRole }, 109 NSAccessibilityGroupRole },
104 { AccessibilityNodeData::ROLE_LANDMARK_SEARCH, NSAccessibilityGroupRole }, 110 { AccessibilityNodeData::ROLE_LANDMARK_SEARCH, NSAccessibilityGroupRole },
105 { AccessibilityNodeData::ROLE_LINK, NSAccessibilityLinkRole }, 111 { AccessibilityNodeData::ROLE_LINK, NSAccessibilityLinkRole },
106 { AccessibilityNodeData::ROLE_LIST, NSAccessibilityListRole }, 112 { AccessibilityNodeData::ROLE_LIST, NSAccessibilityListRole },
107 { AccessibilityNodeData::ROLE_LIST_ITEM, NSAccessibilityGroupRole }, 113 { AccessibilityNodeData::ROLE_LIST_ITEM, NSAccessibilityGroupRole },
108 { AccessibilityNodeData::ROLE_LIST_MARKER, @"AXListMarker" }, 114 { AccessibilityNodeData::ROLE_LIST_MARKER, @"AXListMarker" },
109 { AccessibilityNodeData::ROLE_LISTBOX, NSAccessibilityListRole }, 115 { AccessibilityNodeData::ROLE_LISTBOX, NSAccessibilityListRole },
110 { AccessibilityNodeData::ROLE_LISTBOX_OPTION, NSAccessibilityGroupRole }, 116 { AccessibilityNodeData::ROLE_LISTBOX_OPTION, NSAccessibilityGroupRole },
111 { AccessibilityNodeData::ROLE_LOG, NSAccessibilityGroupRole }, 117 { AccessibilityNodeData::ROLE_LOG, NSAccessibilityGroupRole },
112 { AccessibilityNodeData::ROLE_MARQUEE, NSAccessibilityGroupRole }, 118 { AccessibilityNodeData::ROLE_MARQUEE, NSAccessibilityGroupRole },
113 { AccessibilityNodeData::ROLE_MATH, NSAccessibilityGroupRole }, 119 { AccessibilityNodeData::ROLE_MATH, NSAccessibilityGroupRole },
114 { AccessibilityNodeData::ROLE_MATTE, NSAccessibilityMatteRole }, 120 { AccessibilityNodeData::ROLE_MATTE, NSAccessibilityMatteRole },
115 { AccessibilityNodeData::ROLE_MENU, NSAccessibilityMenuRole }, 121 { AccessibilityNodeData::ROLE_MENU, NSAccessibilityMenuRole },
116 { AccessibilityNodeData::ROLE_MENU_ITEM, NSAccessibilityMenuItemRole }, 122 { AccessibilityNodeData::ROLE_MENU_ITEM, NSAccessibilityMenuItemRole },
117 { AccessibilityNodeData::ROLE_MENU_BUTTON, NSAccessibilityButtonRole }, 123 { AccessibilityNodeData::ROLE_MENU_BUTTON, NSAccessibilityButtonRole },
118 { AccessibilityNodeData::ROLE_MENU_LIST_OPTION, 124 { AccessibilityNodeData::ROLE_MENU_LIST_OPTION,
119 NSAccessibilityMenuItemRole }, 125 NSAccessibilityMenuItemRole },
120 { AccessibilityNodeData::ROLE_MENU_LIST_POPUP, NSAccessibilityUnknownRole }, 126 { AccessibilityNodeData::ROLE_MENU_LIST_POPUP, NSAccessibilityUnknownRole },
121 { AccessibilityNodeData::ROLE_NOTE, NSAccessibilityGroupRole }, 127 { AccessibilityNodeData::ROLE_NOTE, NSAccessibilityGroupRole },
122 { AccessibilityNodeData::ROLE_OUTLINE, NSAccessibilityOutlineRole }, 128 { AccessibilityNodeData::ROLE_OUTLINE, NSAccessibilityOutlineRole },
129 { AccessibilityNodeData::ROLE_PARAGRAPH, NSAccessibilityGroupRole },
123 { AccessibilityNodeData::ROLE_POPUP_BUTTON, 130 { AccessibilityNodeData::ROLE_POPUP_BUTTON,
124 NSAccessibilityPopUpButtonRole }, 131 NSAccessibilityPopUpButtonRole },
132 { AccessibilityNodeData::ROLE_PRESENTATIONAL, NSAccessibilityGroupRole },
125 { AccessibilityNodeData::ROLE_PROGRESS_INDICATOR, 133 { AccessibilityNodeData::ROLE_PROGRESS_INDICATOR,
126 NSAccessibilityProgressIndicatorRole }, 134 NSAccessibilityProgressIndicatorRole },
127 { AccessibilityNodeData::ROLE_RADIO_BUTTON, 135 { AccessibilityNodeData::ROLE_RADIO_BUTTON,
128 NSAccessibilityRadioButtonRole }, 136 NSAccessibilityRadioButtonRole },
129 { AccessibilityNodeData::ROLE_RADIO_GROUP, NSAccessibilityRadioGroupRole }, 137 { AccessibilityNodeData::ROLE_RADIO_GROUP, NSAccessibilityRadioGroupRole },
130 { AccessibilityNodeData::ROLE_REGION, NSAccessibilityGroupRole }, 138 { AccessibilityNodeData::ROLE_REGION, NSAccessibilityGroupRole },
131 { AccessibilityNodeData::ROLE_ROOT_WEB_AREA, @"AXWebArea" }, 139 { AccessibilityNodeData::ROLE_ROOT_WEB_AREA, @"AXWebArea" },
132 { AccessibilityNodeData::ROLE_ROW, NSAccessibilityRowRole }, 140 { AccessibilityNodeData::ROLE_ROW, NSAccessibilityRowRole },
133 { AccessibilityNodeData::ROLE_ROW_HEADER, @"AXCell" }, 141 { AccessibilityNodeData::ROLE_ROW_HEADER, @"AXCell" },
134 { AccessibilityNodeData::ROLE_RULER, NSAccessibilityRulerRole }, 142 { AccessibilityNodeData::ROLE_RULER, NSAccessibilityRulerRole },
135 { AccessibilityNodeData::ROLE_RULER_MARKER, 143 { AccessibilityNodeData::ROLE_RULER_MARKER,
136 NSAccessibilityRulerMarkerRole }, 144 NSAccessibilityRulerMarkerRole },
137 // TODO(dtseng): we don't correctly support the attributes for these roles. 145 // TODO(dtseng): we don't correctly support the attributes for these roles.
138 // { AccessibilityNodeData::ROLE_SCROLLAREA, 146 // { AccessibilityNodeData::ROLE_SCROLLAREA,
139 // NSAccessibilityScrollAreaRole }, 147 // NSAccessibilityScrollAreaRole },
140 // { AccessibilityNodeData::ROLE_SCROLLBAR, NSAccessibilityScrollBarRole }, 148 // { AccessibilityNodeData::ROLE_SCROLLBAR, NSAccessibilityScrollBarRole },
141 { AccessibilityNodeData::ROLE_SHEET, NSAccessibilitySheetRole }, 149 { AccessibilityNodeData::ROLE_SHEET, NSAccessibilitySheetRole },
142 { AccessibilityNodeData::ROLE_SLIDER, NSAccessibilitySliderRole }, 150 { AccessibilityNodeData::ROLE_SLIDER, NSAccessibilitySliderRole },
143 { AccessibilityNodeData::ROLE_SLIDER_THUMB, NSAccessibilityGroupRole }, 151 { AccessibilityNodeData::ROLE_SLIDER_THUMB, NSAccessibilityGroupRole },
152 { AccessibilityNodeData::ROLE_SPIN_BUTTON, NSAccessibilityTextFieldRole },
144 { AccessibilityNodeData::ROLE_SPLITTER, NSAccessibilitySplitterRole }, 153 { AccessibilityNodeData::ROLE_SPLITTER, NSAccessibilitySplitterRole },
145 { AccessibilityNodeData::ROLE_SPLIT_GROUP, NSAccessibilitySplitGroupRole }, 154 { AccessibilityNodeData::ROLE_SPLIT_GROUP, NSAccessibilitySplitGroupRole },
146 { AccessibilityNodeData::ROLE_STATIC_TEXT, NSAccessibilityStaticTextRole }, 155 { AccessibilityNodeData::ROLE_STATIC_TEXT, NSAccessibilityStaticTextRole },
147 { AccessibilityNodeData::ROLE_STATUS, NSAccessibilityGroupRole }, 156 { AccessibilityNodeData::ROLE_STATUS, NSAccessibilityGroupRole },
148 { AccessibilityNodeData::ROLE_SYSTEM_WIDE, NSAccessibilityUnknownRole }, 157 { AccessibilityNodeData::ROLE_SYSTEM_WIDE, NSAccessibilityUnknownRole },
149 { AccessibilityNodeData::ROLE_TAB, NSAccessibilityRadioButtonRole }, 158 { AccessibilityNodeData::ROLE_TAB, NSAccessibilityRadioButtonRole },
150 { AccessibilityNodeData::ROLE_TAB_LIST, NSAccessibilityTabGroupRole }, 159 { AccessibilityNodeData::ROLE_TAB_LIST, NSAccessibilityTabGroupRole },
151 { AccessibilityNodeData::ROLE_TAB_PANEL, NSAccessibilityGroupRole }, 160 { AccessibilityNodeData::ROLE_TAB_PANEL, NSAccessibilityGroupRole },
152 { AccessibilityNodeData::ROLE_TABLE, NSAccessibilityTableRole }, 161 { AccessibilityNodeData::ROLE_TABLE, NSAccessibilityTableRole },
153 { AccessibilityNodeData::ROLE_TABLE_HEADER_CONTAINER, 162 { AccessibilityNodeData::ROLE_TABLE_HEADER_CONTAINER,
154 NSAccessibilityGroupRole }, 163 NSAccessibilityGroupRole },
155 { AccessibilityNodeData::ROLE_TAB_GROUP_UNUSED, 164 { AccessibilityNodeData::ROLE_TAB_GROUP_UNUSED,
156 NSAccessibilityTabGroupRole }, 165 NSAccessibilityTabGroupRole },
157 { AccessibilityNodeData::ROLE_TEXTAREA, NSAccessibilityTextAreaRole }, 166 { AccessibilityNodeData::ROLE_TEXTAREA, NSAccessibilityTextAreaRole },
158 { AccessibilityNodeData::ROLE_TEXT_FIELD, NSAccessibilityTextFieldRole }, 167 { AccessibilityNodeData::ROLE_TEXT_FIELD, NSAccessibilityTextFieldRole },
159 { AccessibilityNodeData::ROLE_TIMER, NSAccessibilityGroupRole }, 168 { AccessibilityNodeData::ROLE_TIMER, NSAccessibilityGroupRole },
169 { AccessibilityNodeData::ROLE_TOGGLE_BUTTON, NSAccessibilityButtonRole },
160 { AccessibilityNodeData::ROLE_TOOLBAR, NSAccessibilityToolbarRole }, 170 { AccessibilityNodeData::ROLE_TOOLBAR, NSAccessibilityToolbarRole },
161 { AccessibilityNodeData::ROLE_TOOLTIP, NSAccessibilityGroupRole }, 171 { AccessibilityNodeData::ROLE_TOOLTIP, NSAccessibilityGroupRole },
162 { AccessibilityNodeData::ROLE_TREE, NSAccessibilityOutlineRole }, 172 { AccessibilityNodeData::ROLE_TREE, NSAccessibilityOutlineRole },
163 { AccessibilityNodeData::ROLE_TREE_GRID, NSAccessibilityTableRole }, 173 { AccessibilityNodeData::ROLE_TREE_GRID, NSAccessibilityTableRole },
164 { AccessibilityNodeData::ROLE_TREE_ITEM, NSAccessibilityRowRole }, 174 { AccessibilityNodeData::ROLE_TREE_ITEM, NSAccessibilityRowRole },
165 { AccessibilityNodeData::ROLE_VALUE_INDICATOR, 175 { AccessibilityNodeData::ROLE_VALUE_INDICATOR,
166 NSAccessibilityValueIndicatorRole }, 176 NSAccessibilityValueIndicatorRole },
167 { AccessibilityNodeData::ROLE_WEBCORE_LINK, NSAccessibilityLinkRole }, 177 { AccessibilityNodeData::ROLE_WEBCORE_LINK, NSAccessibilityLinkRole },
168 { AccessibilityNodeData::ROLE_WEB_AREA, @"AXWebArea" }, 178 { AccessibilityNodeData::ROLE_WEB_AREA, @"AXWebArea" },
169 { AccessibilityNodeData::ROLE_WINDOW, NSAccessibilityUnknownRole }, 179 { AccessibilityNodeData::ROLE_WINDOW, NSAccessibilityUnknownRole },
(...skipping 905 matching lines...) Expand 10 before | Expand all | Expand 10 after
1075 return [super hash]; 1085 return [super hash];
1076 return browserAccessibility_->renderer_id(); 1086 return browserAccessibility_->renderer_id();
1077 } 1087 }
1078 1088
1079 - (BOOL)accessibilityShouldUseUniqueId { 1089 - (BOOL)accessibilityShouldUseUniqueId {
1080 return YES; 1090 return YES;
1081 } 1091 }
1082 1092
1083 @end 1093 @end
1084 1094
OLDNEW
« no previous file with comments | « no previous file | content/browser/accessibility/browser_accessibility_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698