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

Side by Side Diff: content/common/accessibility_node_data.h

Issue 23651003: Use Blink accessibility enums in Chromium (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 7 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 | « content/common/accessibility_messages.h ('k') | content/common/accessibility_node_data.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 #ifndef CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_ 5 #ifndef CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_
6 #define CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_ 6 #define CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/strings/string16.h" 12 #include "base/strings/string16.h"
13 #include "content/common/content_export.h" 13 #include "content/common/content_export.h"
14 #include "third_party/WebKit/public/web/WebAXEnums.h"
14 #include "ui/gfx/rect.h" 15 #include "ui/gfx/rect.h"
15 16
16 namespace content { 17 namespace content {
17 18
18 // A compact representation of the accessibility information for a 19 // A compact representation of the accessibility information for a
19 // single web object, in a form that can be serialized and sent from 20 // single web object, in a form that can be serialized and sent from
20 // the renderer process to the browser process. 21 // the renderer process to the browser process.
21 struct CONTENT_EXPORT AccessibilityNodeData { 22 struct CONTENT_EXPORT AccessibilityNodeData {
22 // An enumeration of accessibility roles.
23 enum Role {
24 ROLE_UNKNOWN = 0,
25
26 // Used by Chromium to distinguish between the root of the tree
27 // for this page, and a web area for a frame within this page.
28 ROLE_ROOT_WEB_AREA,
29
30 // These roles all directly correspond to WebKit accessibility roles,
31 // keep these alphabetical.
32 ROLE_ALERT,
33 ROLE_ALERT_DIALOG,
34 ROLE_ANNOTATION,
35 ROLE_APPLICATION,
36 ROLE_ARTICLE,
37 ROLE_BROWSER,
38 ROLE_BUSY_INDICATOR,
39 ROLE_BUTTON,
40 ROLE_CANVAS,
41 ROLE_CANVAS_WITH_FALLBACK_CONTENT,
42 ROLE_CELL,
43 ROLE_CHECKBOX,
44 ROLE_COLOR_WELL,
45 ROLE_COLUMN,
46 ROLE_COLUMN_HEADER,
47 ROLE_COMBO_BOX,
48 ROLE_DEFINITION,
49 ROLE_DESCRIPTION_LIST_DETAIL,
50 ROLE_DESCRIPTION_LIST_TERM,
51 ROLE_DIALOG,
52 ROLE_DIRECTORY,
53 ROLE_DISCLOSURE_TRIANGLE,
54 ROLE_DIV,
55 ROLE_DOCUMENT,
56 ROLE_DRAWER,
57 ROLE_EDITABLE_TEXT,
58 ROLE_FOOTER,
59 ROLE_FORM,
60 ROLE_GRID,
61 ROLE_GROUP,
62 ROLE_GROW_AREA,
63 ROLE_HEADING,
64 ROLE_HELP_TAG,
65 ROLE_HORIZONTAL_RULE,
66 ROLE_IGNORED,
67 ROLE_IMAGE,
68 ROLE_IMAGE_MAP,
69 ROLE_IMAGE_MAP_LINK,
70 ROLE_INCREMENTOR,
71 ROLE_LABEL,
72 ROLE_LANDMARK_APPLICATION,
73 ROLE_LANDMARK_BANNER,
74 ROLE_LANDMARK_COMPLEMENTARY,
75 ROLE_LANDMARK_CONTENTINFO,
76 ROLE_LANDMARK_MAIN,
77 ROLE_LANDMARK_NAVIGATION,
78 ROLE_LANDMARK_SEARCH,
79 ROLE_LINK,
80 ROLE_LIST,
81 ROLE_LISTBOX,
82 ROLE_LISTBOX_OPTION,
83 ROLE_LIST_ITEM,
84 ROLE_LIST_MARKER,
85 ROLE_LOG,
86 ROLE_MARQUEE,
87 ROLE_MATH,
88 ROLE_MATTE,
89 ROLE_MENU,
90 ROLE_MENU_BAR,
91 ROLE_MENU_ITEM,
92 ROLE_MENU_BUTTON,
93 ROLE_MENU_LIST_OPTION,
94 ROLE_MENU_LIST_POPUP,
95 ROLE_NOTE,
96 ROLE_OUTLINE,
97 ROLE_PARAGRAPH,
98 ROLE_POPUP_BUTTON,
99 ROLE_PRESENTATIONAL,
100 ROLE_PROGRESS_INDICATOR,
101 ROLE_RADIO_BUTTON,
102 ROLE_RADIO_GROUP,
103 ROLE_REGION,
104 ROLE_ROW,
105 ROLE_ROW_HEADER,
106 ROLE_RULER,
107 ROLE_RULER_MARKER,
108 ROLE_SCROLLAREA,
109 ROLE_SCROLLBAR,
110 ROLE_SHEET,
111 ROLE_SLIDER,
112 ROLE_SLIDER_THUMB,
113 ROLE_SPIN_BUTTON,
114 ROLE_SPIN_BUTTON_PART,
115 ROLE_SPLITTER,
116 ROLE_SPLIT_GROUP,
117 ROLE_STATIC_TEXT,
118 ROLE_STATUS,
119 ROLE_SVG_ROOT,
120 ROLE_SYSTEM_WIDE,
121 ROLE_TAB,
122 ROLE_TABLE,
123 ROLE_TABLE_HEADER_CONTAINER,
124 ROLE_TAB_GROUP_UNUSED, // WebKit doesn't use (uses ROLE_TAB_LIST)
125 ROLE_TAB_LIST,
126 ROLE_TAB_PANEL,
127 ROLE_TEXTAREA,
128 ROLE_TEXT_FIELD,
129 ROLE_TIMER,
130 ROLE_TOGGLE_BUTTON,
131 ROLE_TOOLBAR,
132 ROLE_TOOLTIP,
133 ROLE_TREE,
134 ROLE_TREE_GRID,
135 ROLE_TREE_ITEM,
136 ROLE_VALUE_INDICATOR,
137 ROLE_WEBCORE_LINK,
138 ROLE_WEB_AREA,
139 ROLE_WINDOW,
140 NUM_ROLES
141 };
142
143 // An alphabetical enumeration of accessibility states.
144 // A state bitmask is formed by shifting 1 to the left by each state,
145 // for example:
146 // int mask = (1 << STATE_CHECKED) | (1 << STATE_FOCUSED);
147 enum State {
148 STATE_BUSY,
149 STATE_CHECKED,
150 STATE_COLLAPSED,
151 STATE_EXPANDED,
152 STATE_FOCUSABLE,
153 STATE_FOCUSED,
154 STATE_HASPOPUP,
155 STATE_HOTTRACKED,
156 STATE_INDETERMINATE,
157 STATE_INVISIBLE,
158 STATE_LINKED,
159 STATE_MULTISELECTABLE,
160 STATE_OFFSCREEN,
161 STATE_PRESSED,
162 STATE_PROTECTED,
163 STATE_READONLY,
164 STATE_REQUIRED,
165 STATE_SELECTABLE,
166 STATE_SELECTED,
167 STATE_TRAVERSED,
168 STATE_UNAVAILABLE,
169 STATE_VERTICAL,
170 STATE_VISITED,
171 NUM_STATES
172 };
173
174 COMPILE_ASSERT(NUM_STATES <= 31, state_enum_not_too_large);
175
176 // Additional optional attributes that can be optionally attached to 23 // Additional optional attributes that can be optionally attached to
177 // a node. 24 // a node.
178 enum StringAttribute { 25 enum StringAttribute {
179 // Document attributes. 26 // Document attributes.
180 ATTR_DOC_URL, 27 ATTR_DOC_URL,
181 ATTR_DOC_TITLE, 28 ATTR_DOC_TITLE,
182 ATTR_DOC_MIMETYPE, 29 ATTR_DOC_MIMETYPE,
183 ATTR_DOC_DOCTYPE, 30 ATTR_DOC_DOCTYPE,
184 31
185 // Attributes that could apply to any node. 32 // Attributes that could apply to any node.
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 ATTR_TABLE_CELL_COLUMN_SPAN, 78 ATTR_TABLE_CELL_COLUMN_SPAN,
232 ATTR_TABLE_CELL_ROW_INDEX, 79 ATTR_TABLE_CELL_ROW_INDEX,
233 ATTR_TABLE_CELL_ROW_SPAN, 80 ATTR_TABLE_CELL_ROW_SPAN,
234 81
235 // Tree control attributes. 82 // Tree control attributes.
236 ATTR_HIERARCHICAL_LEVEL, 83 ATTR_HIERARCHICAL_LEVEL,
237 84
238 // Relationships between this element and other elements. 85 // Relationships between this element and other elements.
239 ATTR_TITLE_UI_ELEMENT, 86 ATTR_TITLE_UI_ELEMENT,
240 87
241 // Color value for ROLE_COLOR_WELL, each component is 0..255 88 // Color value for WebKit::WebAXRoleColorWell, each component is 0..255
242 ATTR_COLOR_VALUE_RED, 89 ATTR_COLOR_VALUE_RED,
243 ATTR_COLOR_VALUE_GREEN, 90 ATTR_COLOR_VALUE_GREEN,
244 ATTR_COLOR_VALUE_BLUE 91 ATTR_COLOR_VALUE_BLUE
245 }; 92 };
246 93
247 enum FloatAttribute { 94 enum FloatAttribute {
248 // Document attributes. 95 // Document attributes.
249 ATTR_DOC_LOADING_PROGRESS, 96 ATTR_DOC_LOADING_PROGRESS,
250 97
251 // Range attributes. 98 // Range attributes.
(...skipping 17 matching lines...) Expand all
269 116
270 // ARIA readonly flag. 117 // ARIA readonly flag.
271 ATTR_ARIA_READONLY, 118 ATTR_ARIA_READONLY,
272 119
273 // Writeable attributes 120 // Writeable attributes
274 ATTR_CAN_SET_VALUE, 121 ATTR_CAN_SET_VALUE,
275 122
276 // If this is set, all of the other fields in this struct should 123 // If this is set, all of the other fields in this struct should
277 // be ignored and only the locations should change. 124 // be ignored and only the locations should change.
278 ATTR_UPDATE_LOCATION_ONLY, 125 ATTR_UPDATE_LOCATION_ONLY,
126
127 // Set on a canvas element if it has fallback content.
128 ATTR_CANVAS_HAS_FALLBACK,
279 }; 129 };
280 130
281 enum IntListAttribute { 131 enum IntListAttribute {
282 // Ids of nodes that are children of this node logically, but are 132 // Ids of nodes that are children of this node logically, but are
283 // not children of this node in the tree structure. As an example, 133 // not children of this node in the tree structure. As an example,
284 // a table cell is a child of a row, and an 'indirect' child of a 134 // a table cell is a child of a row, and an 'indirect' child of a
285 // column. 135 // column.
286 ATTR_INDIRECT_CHILD_IDS, 136 ATTR_INDIRECT_CHILD_IDS,
287 137
288 // Character indices where line breaks occur. 138 // Character indices where line breaks occur.
(...skipping 24 matching lines...) Expand all
313 // Equivalent to AddStringAttribute(ATTR_NAME, name). 163 // Equivalent to AddStringAttribute(ATTR_NAME, name).
314 void SetName(std::string name); 164 void SetName(std::string name);
315 165
316 #ifndef NDEBUG 166 #ifndef NDEBUG
317 virtual std::string DebugString(bool recursive) const; 167 virtual std::string DebugString(bool recursive) const;
318 #endif 168 #endif
319 169
320 // This is a simple serializable struct. All member variables should be 170 // This is a simple serializable struct. All member variables should be
321 // public and copyable. 171 // public and copyable.
322 int32 id; 172 int32 id;
323 Role role; 173 WebKit::WebAXRole role;
324 uint32 state; 174 uint32 state;
325 gfx::Rect location; 175 gfx::Rect location;
326 std::vector<std::pair<StringAttribute, std::string> > string_attributes; 176 std::vector<std::pair<StringAttribute, std::string> > string_attributes;
327 std::vector<std::pair<IntAttribute, int32> > int_attributes; 177 std::vector<std::pair<IntAttribute, int32> > int_attributes;
328 std::vector<std::pair<FloatAttribute, float> > float_attributes; 178 std::vector<std::pair<FloatAttribute, float> > float_attributes;
329 std::vector<std::pair<BoolAttribute, bool> > bool_attributes; 179 std::vector<std::pair<BoolAttribute, bool> > bool_attributes;
330 std::vector<std::pair<IntListAttribute, std::vector<int32> > > 180 std::vector<std::pair<IntListAttribute, std::vector<int32> > >
331 intlist_attributes; 181 intlist_attributes;
332 std::vector<std::pair<std::string, std::string> > html_attributes; 182 std::vector<std::pair<std::string, std::string> > html_attributes;
333 std::vector<int32> child_ids; 183 std::vector<int32> child_ids;
(...skipping 22 matching lines...) Expand all
356 // build a tree of AccessibilityNodeDataTreeNode objects for easier 206 // build a tree of AccessibilityNodeDataTreeNode objects for easier
357 // testing and debugging, where each node contains its children. 207 // testing and debugging, where each node contains its children.
358 // The |dst| argument will become the root of the new tree. 208 // The |dst| argument will become the root of the new tree.
359 void MakeAccessibilityNodeDataTree( 209 void MakeAccessibilityNodeDataTree(
360 const std::vector<AccessibilityNodeData>& src, 210 const std::vector<AccessibilityNodeData>& src,
361 AccessibilityNodeDataTreeNode* dst); 211 AccessibilityNodeDataTreeNode* dst);
362 212
363 } // namespace content 213 } // namespace content
364 214
365 #endif // CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_ 215 #endif // CONTENT_COMMON_ACCESSIBILITY_NODE_DATA_H_
OLDNEW
« no previous file with comments | « content/common/accessibility_messages.h ('k') | content/common/accessibility_node_data.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698