OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #import "ui/accessibility/platform/ax_platform_node_mac.h" | 5 #import "ui/accessibility/platform/ax_platform_node_mac.h" |
6 | 6 |
7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
8 | 8 |
9 #include "base/strings/sys_string_conversions.h" | 9 #include "base/strings/sys_string_conversions.h" |
10 #import "ui/accessibility/platform/ax_platform_node_delegate.h" | 10 #import "ui/accessibility/platform/ax_platform_node_delegate.h" |
(...skipping 10 matching lines...) Expand all Loading... |
21 | 21 |
22 RoleMap BuildRoleMap() { | 22 RoleMap BuildRoleMap() { |
23 const MapEntry roles[] = { | 23 const MapEntry roles[] = { |
24 {ui::AX_ROLE_ALERT, NSAccessibilityGroupRole}, | 24 {ui::AX_ROLE_ALERT, NSAccessibilityGroupRole}, |
25 {ui::AX_ROLE_ALERT_DIALOG, NSAccessibilityGroupRole}, | 25 {ui::AX_ROLE_ALERT_DIALOG, NSAccessibilityGroupRole}, |
26 {ui::AX_ROLE_ANNOTATION, NSAccessibilityUnknownRole}, | 26 {ui::AX_ROLE_ANNOTATION, NSAccessibilityUnknownRole}, |
27 {ui::AX_ROLE_APPLICATION, NSAccessibilityGroupRole}, | 27 {ui::AX_ROLE_APPLICATION, NSAccessibilityGroupRole}, |
28 {ui::AX_ROLE_ARTICLE, NSAccessibilityGroupRole}, | 28 {ui::AX_ROLE_ARTICLE, NSAccessibilityGroupRole}, |
29 {ui::AX_ROLE_BANNER, NSAccessibilityGroupRole}, | 29 {ui::AX_ROLE_BANNER, NSAccessibilityGroupRole}, |
30 {ui::AX_ROLE_BLOCKQUOTE, NSAccessibilityGroupRole}, | 30 {ui::AX_ROLE_BLOCKQUOTE, NSAccessibilityGroupRole}, |
31 {ui::AX_ROLE_BROWSER, NSAccessibilityBrowserRole}, | |
32 {ui::AX_ROLE_BUSY_INDICATOR, NSAccessibilityBusyIndicatorRole}, | 31 {ui::AX_ROLE_BUSY_INDICATOR, NSAccessibilityBusyIndicatorRole}, |
33 {ui::AX_ROLE_BUTTON, NSAccessibilityButtonRole}, | 32 {ui::AX_ROLE_BUTTON, NSAccessibilityButtonRole}, |
34 {ui::AX_ROLE_CANVAS, NSAccessibilityImageRole}, | 33 {ui::AX_ROLE_CANVAS, NSAccessibilityImageRole}, |
35 {ui::AX_ROLE_CELL, @"AXCell"}, | 34 {ui::AX_ROLE_CELL, @"AXCell"}, |
36 {ui::AX_ROLE_CHECK_BOX, NSAccessibilityCheckBoxRole}, | 35 {ui::AX_ROLE_CHECK_BOX, NSAccessibilityCheckBoxRole}, |
37 {ui::AX_ROLE_COLOR_WELL, NSAccessibilityColorWellRole}, | 36 {ui::AX_ROLE_COLOR_WELL, NSAccessibilityColorWellRole}, |
38 {ui::AX_ROLE_COLUMN, NSAccessibilityColumnRole}, | 37 {ui::AX_ROLE_COLUMN, NSAccessibilityColumnRole}, |
39 {ui::AX_ROLE_COLUMN_HEADER, @"AXCell"}, | 38 {ui::AX_ROLE_COLUMN_HEADER, @"AXCell"}, |
40 {ui::AX_ROLE_COMBO_BOX, NSAccessibilityComboBoxRole}, | 39 {ui::AX_ROLE_COMBO_BOX, NSAccessibilityComboBoxRole}, |
41 {ui::AX_ROLE_COMPLEMENTARY, NSAccessibilityGroupRole}, | 40 {ui::AX_ROLE_COMPLEMENTARY, NSAccessibilityGroupRole}, |
42 {ui::AX_ROLE_CONTENT_INFO, NSAccessibilityGroupRole}, | 41 {ui::AX_ROLE_CONTENT_INFO, NSAccessibilityGroupRole}, |
43 {ui::AX_ROLE_DATE, @"AXDateField"}, | 42 {ui::AX_ROLE_DATE, @"AXDateField"}, |
44 {ui::AX_ROLE_DATE_TIME, NSAccessibilityTextFieldRole}, | 43 {ui::AX_ROLE_DATE_TIME, NSAccessibilityTextFieldRole}, |
45 {ui::AX_ROLE_DEFINITION, NSAccessibilityGroupRole}, | 44 {ui::AX_ROLE_DEFINITION, NSAccessibilityGroupRole}, |
46 {ui::AX_ROLE_DESCRIPTION_LIST_DETAIL, NSAccessibilityGroupRole}, | 45 {ui::AX_ROLE_DESCRIPTION_LIST_DETAIL, NSAccessibilityGroupRole}, |
47 {ui::AX_ROLE_DESCRIPTION_LIST, NSAccessibilityListRole}, | 46 {ui::AX_ROLE_DESCRIPTION_LIST, NSAccessibilityListRole}, |
48 {ui::AX_ROLE_DESCRIPTION_LIST_TERM, NSAccessibilityGroupRole}, | 47 {ui::AX_ROLE_DESCRIPTION_LIST_TERM, NSAccessibilityGroupRole}, |
49 {ui::AX_ROLE_DIALOG, NSAccessibilityGroupRole}, | 48 {ui::AX_ROLE_DIALOG, NSAccessibilityGroupRole}, |
50 {ui::AX_ROLE_DETAILS, NSAccessibilityGroupRole}, | 49 {ui::AX_ROLE_DETAILS, NSAccessibilityGroupRole}, |
51 {ui::AX_ROLE_DIRECTORY, NSAccessibilityListRole}, | 50 {ui::AX_ROLE_DIRECTORY, NSAccessibilityListRole}, |
52 {ui::AX_ROLE_DISCLOSURE_TRIANGLE, NSAccessibilityDisclosureTriangleRole}, | 51 {ui::AX_ROLE_DISCLOSURE_TRIANGLE, NSAccessibilityDisclosureTriangleRole}, |
53 {ui::AX_ROLE_DIV, NSAccessibilityGroupRole}, | 52 {ui::AX_ROLE_DIV, NSAccessibilityGroupRole}, |
54 {ui::AX_ROLE_DOCUMENT, NSAccessibilityGroupRole}, | 53 {ui::AX_ROLE_DOCUMENT, NSAccessibilityGroupRole}, |
55 {ui::AX_ROLE_DRAWER, NSAccessibilityDrawerRole}, | |
56 {ui::AX_ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole}, | 54 {ui::AX_ROLE_EDITABLE_TEXT, NSAccessibilityTextFieldRole}, |
57 {ui::AX_ROLE_FIGCAPTION, NSAccessibilityGroupRole}, | 55 {ui::AX_ROLE_FIGCAPTION, NSAccessibilityGroupRole}, |
58 {ui::AX_ROLE_FIGURE, NSAccessibilityGroupRole}, | 56 {ui::AX_ROLE_FIGURE, NSAccessibilityGroupRole}, |
59 {ui::AX_ROLE_FOOTER, NSAccessibilityGroupRole}, | 57 {ui::AX_ROLE_FOOTER, NSAccessibilityGroupRole}, |
60 {ui::AX_ROLE_FORM, NSAccessibilityGroupRole}, | 58 {ui::AX_ROLE_FORM, NSAccessibilityGroupRole}, |
61 {ui::AX_ROLE_GRID, NSAccessibilityGridRole}, | 59 {ui::AX_ROLE_GRID, NSAccessibilityGridRole}, |
62 {ui::AX_ROLE_GROUP, NSAccessibilityGroupRole}, | 60 {ui::AX_ROLE_GROUP, NSAccessibilityGroupRole}, |
63 {ui::AX_ROLE_GROW_AREA, NSAccessibilityGrowAreaRole}, | 61 {ui::AX_ROLE_GROW_AREA, NSAccessibilityGrowAreaRole}, |
64 {ui::AX_ROLE_HEADING, @"AXHeading"}, | 62 {ui::AX_ROLE_HEADING, @"AXHeading"}, |
65 {ui::AX_ROLE_HELP_TAG, NSAccessibilityHelpTagRole}, | |
66 {ui::AX_ROLE_IFRAME, NSAccessibilityGroupRole}, | 63 {ui::AX_ROLE_IFRAME, NSAccessibilityGroupRole}, |
67 {ui::AX_ROLE_IGNORED, NSAccessibilityUnknownRole}, | 64 {ui::AX_ROLE_IGNORED, NSAccessibilityUnknownRole}, |
68 {ui::AX_ROLE_IMAGE, NSAccessibilityImageRole}, | 65 {ui::AX_ROLE_IMAGE, NSAccessibilityImageRole}, |
69 {ui::AX_ROLE_IMAGE_MAP, NSAccessibilityGroupRole}, | 66 {ui::AX_ROLE_IMAGE_MAP, NSAccessibilityGroupRole}, |
70 {ui::AX_ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole}, | 67 {ui::AX_ROLE_IMAGE_MAP_LINK, NSAccessibilityLinkRole}, |
71 {ui::AX_ROLE_LABEL_TEXT, NSAccessibilityGroupRole}, | 68 {ui::AX_ROLE_LABEL_TEXT, NSAccessibilityGroupRole}, |
72 {ui::AX_ROLE_LINK, NSAccessibilityLinkRole}, | 69 {ui::AX_ROLE_LINK, NSAccessibilityLinkRole}, |
73 {ui::AX_ROLE_LIST, NSAccessibilityListRole}, | 70 {ui::AX_ROLE_LIST, NSAccessibilityListRole}, |
74 {ui::AX_ROLE_LIST_BOX, NSAccessibilityListRole}, | 71 {ui::AX_ROLE_LIST_BOX, NSAccessibilityListRole}, |
75 {ui::AX_ROLE_LIST_BOX_OPTION, NSAccessibilityStaticTextRole}, | 72 {ui::AX_ROLE_LIST_BOX_OPTION, NSAccessibilityStaticTextRole}, |
76 {ui::AX_ROLE_LIST_ITEM, NSAccessibilityGroupRole}, | 73 {ui::AX_ROLE_LIST_ITEM, NSAccessibilityGroupRole}, |
77 {ui::AX_ROLE_LIST_MARKER, @"AXListMarker"}, | 74 {ui::AX_ROLE_LIST_MARKER, @"AXListMarker"}, |
78 {ui::AX_ROLE_LOG, NSAccessibilityGroupRole}, | 75 {ui::AX_ROLE_LOG, NSAccessibilityGroupRole}, |
79 {ui::AX_ROLE_MAIN, NSAccessibilityGroupRole}, | 76 {ui::AX_ROLE_MAIN, NSAccessibilityGroupRole}, |
80 {ui::AX_ROLE_MARQUEE, NSAccessibilityGroupRole}, | 77 {ui::AX_ROLE_MARQUEE, NSAccessibilityGroupRole}, |
81 {ui::AX_ROLE_MATH, NSAccessibilityGroupRole}, | 78 {ui::AX_ROLE_MATH, NSAccessibilityGroupRole}, |
82 {ui::AX_ROLE_MATTE, NSAccessibilityMatteRole}, | |
83 {ui::AX_ROLE_MENU, NSAccessibilityMenuRole}, | 79 {ui::AX_ROLE_MENU, NSAccessibilityMenuRole}, |
84 {ui::AX_ROLE_MENU_BAR, NSAccessibilityMenuBarRole}, | 80 {ui::AX_ROLE_MENU_BAR, NSAccessibilityMenuBarRole}, |
85 {ui::AX_ROLE_MENU_BUTTON, NSAccessibilityButtonRole}, | 81 {ui::AX_ROLE_MENU_BUTTON, NSAccessibilityButtonRole}, |
86 {ui::AX_ROLE_MENU_ITEM, NSAccessibilityMenuItemRole}, | 82 {ui::AX_ROLE_MENU_ITEM, NSAccessibilityMenuItemRole}, |
87 {ui::AX_ROLE_MENU_ITEM_CHECK_BOX, NSAccessibilityMenuItemRole}, | 83 {ui::AX_ROLE_MENU_ITEM_CHECK_BOX, NSAccessibilityMenuItemRole}, |
88 {ui::AX_ROLE_MENU_ITEM_RADIO, NSAccessibilityMenuItemRole}, | 84 {ui::AX_ROLE_MENU_ITEM_RADIO, NSAccessibilityMenuItemRole}, |
89 {ui::AX_ROLE_MENU_LIST_OPTION, NSAccessibilityMenuItemRole}, | 85 {ui::AX_ROLE_MENU_LIST_OPTION, NSAccessibilityMenuItemRole}, |
90 {ui::AX_ROLE_MENU_LIST_POPUP, NSAccessibilityUnknownRole}, | 86 {ui::AX_ROLE_MENU_LIST_POPUP, NSAccessibilityUnknownRole}, |
91 {ui::AX_ROLE_METER, NSAccessibilityProgressIndicatorRole}, | 87 {ui::AX_ROLE_METER, NSAccessibilityProgressIndicatorRole}, |
92 {ui::AX_ROLE_NAVIGATION, NSAccessibilityGroupRole}, | 88 {ui::AX_ROLE_NAVIGATION, NSAccessibilityGroupRole}, |
93 {ui::AX_ROLE_NONE, NSAccessibilityGroupRole}, | 89 {ui::AX_ROLE_NONE, NSAccessibilityGroupRole}, |
94 {ui::AX_ROLE_NOTE, NSAccessibilityGroupRole}, | 90 {ui::AX_ROLE_NOTE, NSAccessibilityGroupRole}, |
95 {ui::AX_ROLE_OUTLINE, NSAccessibilityOutlineRole}, | 91 {ui::AX_ROLE_OUTLINE, NSAccessibilityOutlineRole}, |
96 {ui::AX_ROLE_PARAGRAPH, NSAccessibilityGroupRole}, | 92 {ui::AX_ROLE_PARAGRAPH, NSAccessibilityGroupRole}, |
97 {ui::AX_ROLE_POP_UP_BUTTON, NSAccessibilityPopUpButtonRole}, | 93 {ui::AX_ROLE_POP_UP_BUTTON, NSAccessibilityPopUpButtonRole}, |
98 {ui::AX_ROLE_PRE, NSAccessibilityGroupRole}, | 94 {ui::AX_ROLE_PRE, NSAccessibilityGroupRole}, |
99 {ui::AX_ROLE_PRESENTATIONAL, NSAccessibilityGroupRole}, | 95 {ui::AX_ROLE_PRESENTATIONAL, NSAccessibilityGroupRole}, |
100 {ui::AX_ROLE_PROGRESS_INDICATOR, NSAccessibilityProgressIndicatorRole}, | 96 {ui::AX_ROLE_PROGRESS_INDICATOR, NSAccessibilityProgressIndicatorRole}, |
101 {ui::AX_ROLE_RADIO_BUTTON, NSAccessibilityRadioButtonRole}, | 97 {ui::AX_ROLE_RADIO_BUTTON, NSAccessibilityRadioButtonRole}, |
102 {ui::AX_ROLE_RADIO_GROUP, NSAccessibilityRadioGroupRole}, | 98 {ui::AX_ROLE_RADIO_GROUP, NSAccessibilityRadioGroupRole}, |
103 {ui::AX_ROLE_REGION, NSAccessibilityGroupRole}, | 99 {ui::AX_ROLE_REGION, NSAccessibilityGroupRole}, |
104 {ui::AX_ROLE_ROOT_WEB_AREA, @"AXWebArea"}, | 100 {ui::AX_ROLE_ROOT_WEB_AREA, @"AXWebArea"}, |
105 {ui::AX_ROLE_ROW, NSAccessibilityRowRole}, | 101 {ui::AX_ROLE_ROW, NSAccessibilityRowRole}, |
106 {ui::AX_ROLE_ROW_HEADER, @"AXCell"}, | 102 {ui::AX_ROLE_ROW_HEADER, @"AXCell"}, |
107 {ui::AX_ROLE_RULER, NSAccessibilityRulerRole}, | 103 {ui::AX_ROLE_RULER, NSAccessibilityRulerRole}, |
108 {ui::AX_ROLE_RULER_MARKER, NSAccessibilityRulerMarkerRole}, | |
109 {ui::AX_ROLE_SCROLL_BAR, NSAccessibilityScrollBarRole}, | 104 {ui::AX_ROLE_SCROLL_BAR, NSAccessibilityScrollBarRole}, |
110 {ui::AX_ROLE_SEARCH, NSAccessibilityGroupRole}, | 105 {ui::AX_ROLE_SEARCH, NSAccessibilityGroupRole}, |
111 {ui::AX_ROLE_SHEET, NSAccessibilitySheetRole}, | |
112 {ui::AX_ROLE_SLIDER, NSAccessibilitySliderRole}, | 106 {ui::AX_ROLE_SLIDER, NSAccessibilitySliderRole}, |
113 {ui::AX_ROLE_SLIDER_THUMB, NSAccessibilityValueIndicatorRole}, | 107 {ui::AX_ROLE_SLIDER_THUMB, NSAccessibilityValueIndicatorRole}, |
114 {ui::AX_ROLE_SPIN_BUTTON, NSAccessibilityIncrementorRole}, | 108 {ui::AX_ROLE_SPIN_BUTTON, NSAccessibilityIncrementorRole}, |
115 {ui::AX_ROLE_SPLITTER, NSAccessibilitySplitterRole}, | 109 {ui::AX_ROLE_SPLITTER, NSAccessibilitySplitterRole}, |
116 {ui::AX_ROLE_SPLIT_GROUP, NSAccessibilitySplitGroupRole}, | 110 {ui::AX_ROLE_SPLIT_GROUP, NSAccessibilitySplitGroupRole}, |
117 {ui::AX_ROLE_STATIC_TEXT, NSAccessibilityStaticTextRole}, | 111 {ui::AX_ROLE_STATIC_TEXT, NSAccessibilityStaticTextRole}, |
118 {ui::AX_ROLE_STATUS, NSAccessibilityGroupRole}, | 112 {ui::AX_ROLE_STATUS, NSAccessibilityGroupRole}, |
119 {ui::AX_ROLE_SVG_ROOT, NSAccessibilityGroupRole}, | 113 {ui::AX_ROLE_SVG_ROOT, NSAccessibilityGroupRole}, |
120 {ui::AX_ROLE_SYSTEM_WIDE, NSAccessibilityUnknownRole}, | |
121 {ui::AX_ROLE_TAB, NSAccessibilityRadioButtonRole}, | 114 {ui::AX_ROLE_TAB, NSAccessibilityRadioButtonRole}, |
122 {ui::AX_ROLE_TABLE, NSAccessibilityTableRole}, | 115 {ui::AX_ROLE_TABLE, NSAccessibilityTableRole}, |
123 {ui::AX_ROLE_TABLE_HEADER_CONTAINER, NSAccessibilityGroupRole}, | 116 {ui::AX_ROLE_TABLE_HEADER_CONTAINER, NSAccessibilityGroupRole}, |
124 {ui::AX_ROLE_TAB_LIST, NSAccessibilityTabGroupRole}, | 117 {ui::AX_ROLE_TAB_LIST, NSAccessibilityTabGroupRole}, |
125 {ui::AX_ROLE_TAB_PANEL, NSAccessibilityGroupRole}, | 118 {ui::AX_ROLE_TAB_PANEL, NSAccessibilityGroupRole}, |
126 {ui::AX_ROLE_TEXT_AREA, NSAccessibilityTextAreaRole}, | 119 {ui::AX_ROLE_TEXT_AREA, NSAccessibilityTextAreaRole}, |
127 {ui::AX_ROLE_TEXT_FIELD, NSAccessibilityTextFieldRole}, | 120 {ui::AX_ROLE_TEXT_FIELD, NSAccessibilityTextFieldRole}, |
128 {ui::AX_ROLE_TIME, @"AXTimeField"}, | 121 {ui::AX_ROLE_TIME, @"AXTimeField"}, |
129 {ui::AX_ROLE_TIMER, NSAccessibilityGroupRole}, | 122 {ui::AX_ROLE_TIMER, NSAccessibilityGroupRole}, |
130 {ui::AX_ROLE_TOGGLE_BUTTON, NSAccessibilityCheckBoxRole}, | 123 {ui::AX_ROLE_TOGGLE_BUTTON, NSAccessibilityCheckBoxRole}, |
131 {ui::AX_ROLE_TOOLBAR, NSAccessibilityToolbarRole}, | 124 {ui::AX_ROLE_TOOLBAR, NSAccessibilityToolbarRole}, |
132 {ui::AX_ROLE_TOOLTIP, NSAccessibilityGroupRole}, | 125 {ui::AX_ROLE_TOOLTIP, NSAccessibilityGroupRole}, |
133 {ui::AX_ROLE_TREE, NSAccessibilityOutlineRole}, | 126 {ui::AX_ROLE_TREE, NSAccessibilityOutlineRole}, |
134 {ui::AX_ROLE_TREE_GRID, NSAccessibilityTableRole}, | 127 {ui::AX_ROLE_TREE_GRID, NSAccessibilityTableRole}, |
135 {ui::AX_ROLE_TREE_ITEM, NSAccessibilityRowRole}, | 128 {ui::AX_ROLE_TREE_ITEM, NSAccessibilityRowRole}, |
136 {ui::AX_ROLE_VALUE_INDICATOR, NSAccessibilityValueIndicatorRole}, | |
137 {ui::AX_ROLE_WEB_AREA, @"AXWebArea"}, | 129 {ui::AX_ROLE_WEB_AREA, @"AXWebArea"}, |
138 {ui::AX_ROLE_WINDOW, NSAccessibilityWindowRole}, | 130 {ui::AX_ROLE_WINDOW, NSAccessibilityWindowRole}, |
139 | 131 |
140 // TODO(dtseng): we don't correctly support the attributes for these | 132 // TODO(dtseng): we don't correctly support the attributes for these |
141 // roles. | 133 // roles. |
142 // { ui::AX_ROLE_SCROLL_AREA, NSAccessibilityScrollAreaRole }, | 134 // { ui::AX_ROLE_SCROLL_AREA, NSAccessibilityScrollAreaRole }, |
143 }; | 135 }; |
144 | 136 |
145 RoleMap role_map; | 137 RoleMap role_map; |
146 for (size_t i = 0; i < arraysize(roles); ++i) | 138 for (size_t i = 0; i < arraysize(roles); ++i) |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 delete this; | 306 delete this; |
315 } | 307 } |
316 | 308 |
317 gfx::NativeViewAccessible AXPlatformNodeMac::GetNativeViewAccessible() { | 309 gfx::NativeViewAccessible AXPlatformNodeMac::GetNativeViewAccessible() { |
318 if (!native_node_) | 310 if (!native_node_) |
319 native_node_.reset([[AXPlatformNodeCocoa alloc] initWithNode:this]); | 311 native_node_.reset([[AXPlatformNodeCocoa alloc] initWithNode:this]); |
320 return native_node_.get(); | 312 return native_node_.get(); |
321 } | 313 } |
322 | 314 |
323 } // namespace ui | 315 } // namespace ui |
OLD | NEW |