OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 WEBKIT_GLUE_WEBACCESSIBILITY_H_ | 5 #ifndef WEBKIT_GLUE_WEBACCESSIBILITY_H_ |
6 #define WEBKIT_GLUE_WEBACCESSIBILITY_H_ | 6 #define WEBKIT_GLUE_WEBACCESSIBILITY_H_ |
7 | 7 |
| 8 #include <map> |
8 #include <vector> | 9 #include <vector> |
9 | 10 |
10 #include "base/string16.h" | 11 #include "base/string16.h" |
11 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityObject.h" | 12 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityObject.h" |
12 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityRole.h" | 13 #include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityRole.h" |
13 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h" | 14 #include "third_party/WebKit/WebKit/chromium/public/WebRect.h" |
14 | 15 |
15 namespace WebKit { | 16 namespace WebKit { |
16 class WebAccessibilityCache; | 17 class WebAccessibilityCache; |
17 } | 18 } |
18 | 19 |
19 namespace webkit_glue { | 20 namespace webkit_glue { |
20 | 21 |
21 // A compact representation of the accessibility information for a | 22 // A compact representation of the accessibility information for a |
22 // single web object, in a form that can be serialized and sent from | 23 // single web object, in a form that can be serialized and sent from |
23 // the renderer process to the browser process. | 24 // the renderer process to the browser process. |
24 struct WebAccessibility { | 25 struct WebAccessibility { |
25 public: | 26 public: |
26 // An alphabetical enumeration of accessibility roles. | 27 // An alphabetical enumeration of accessibility roles. |
27 enum Role { | 28 enum Role { |
28 ROLE_NONE = 0, | 29 ROLE_NONE = 0, |
29 | 30 |
| 31 ROLE_UNKNOWN, |
| 32 |
| 33 ROLE_ALERT, |
| 34 ROLE_ALERT_DIALOG, |
| 35 ROLE_ANNOTATION, |
30 ROLE_APPLICATION, | 36 ROLE_APPLICATION, |
| 37 ROLE_ARTICLE, |
| 38 ROLE_BROWSER, |
| 39 ROLE_BUSY_INDICATOR, |
| 40 ROLE_BUTTON, |
31 ROLE_CELL, | 41 ROLE_CELL, |
32 ROLE_CHECKBUTTON, | 42 ROLE_CHECKBOX, |
33 ROLE_CLIENT, | 43 ROLE_COLOR_WELL, |
34 ROLE_COLUMN, | 44 ROLE_COLUMN, |
35 ROLE_COLUMNHEADER, | 45 ROLE_COLUMN_HEADER, |
| 46 ROLE_COMBO_BOX, |
| 47 ROLE_DEFINITION_LIST_DEFINITION, |
| 48 ROLE_DEFINITION_LIST_TERM, |
| 49 ROLE_DIALOG, |
| 50 ROLE_DIRECTORY, |
| 51 ROLE_DISCLOSURE_TRIANGLE, |
36 ROLE_DOCUMENT, | 52 ROLE_DOCUMENT, |
37 ROLE_GRAPHIC, | 53 ROLE_DRAWER, |
38 ROLE_GROUPING, | 54 ROLE_EDITABLE_TEXT, |
| 55 ROLE_GRID, |
| 56 ROLE_GROUP, |
| 57 ROLE_GROW_AREA, |
| 58 ROLE_HEADING, |
| 59 ROLE_HELP_TAG, |
| 60 ROLE_IGNORED, |
| 61 ROLE_IMAGE, |
| 62 ROLE_IMAGE_MAP, |
| 63 ROLE_IMAGE_MAP_LINK, |
| 64 ROLE_INCREMENTOR, |
| 65 ROLE_LANDMARK_APPLICATION, |
| 66 ROLE_LANDMARK_BANNER, |
| 67 ROLE_LANDMARK_COMPLEMENTARY, |
| 68 ROLE_LANDMARK_CONTENTINFO, |
| 69 ROLE_LANDMARK_MAIN, |
| 70 ROLE_LANDMARK_NAVIGATION, |
| 71 ROLE_LANDMARK_SEARCH, |
39 ROLE_LINK, | 72 ROLE_LINK, |
40 ROLE_LIST, | 73 ROLE_LIST, |
41 ROLE_LISTBOX, | 74 ROLE_LISTBOX, |
42 ROLE_LISTITEM, | 75 ROLE_LISTBOX_OPTION, |
43 ROLE_MENUBAR, | 76 ROLE_LIST_ITEM, |
44 ROLE_MENUITEM, | 77 ROLE_LIST_MARKER, |
45 ROLE_MENUPOPUP, | 78 ROLE_LOG, |
| 79 ROLE_MARQUEE, |
| 80 ROLE_MATH, |
| 81 ROLE_MATTE, |
| 82 ROLE_MENU, |
| 83 ROLE_MENU_BAR, |
| 84 ROLE_MENU_ITEM, |
| 85 ROLE_MENU_BUTTON, |
| 86 ROLE_MENU_LIST_OPTION, |
| 87 ROLE_MENU_LIST_POPUP, |
| 88 ROLE_NOTE, |
46 ROLE_OUTLINE, | 89 ROLE_OUTLINE, |
47 ROLE_PAGETABLIST, | 90 ROLE_POPUP_BUTTON, |
48 ROLE_PROGRESSBAR, | 91 ROLE_PROGRESS_INDICATOR, |
49 ROLE_PUSHBUTTON, | 92 ROLE_RADIO_BUTTON, |
50 ROLE_RADIOBUTTON, | 93 ROLE_RADIO_GROUP, |
| 94 ROLE_REGION, |
51 ROLE_ROW, | 95 ROLE_ROW, |
52 ROLE_ROWHEADER, | 96 ROLE_ROW_HEADER, |
53 ROLE_SEPARATOR, | 97 ROLE_RULER, |
| 98 ROLE_RULER_MARKER, |
| 99 ROLE_SCROLLAREA, |
| 100 ROLE_SCROLLBAR, |
| 101 ROLE_SHEET, |
54 ROLE_SLIDER, | 102 ROLE_SLIDER, |
55 ROLE_STATICTEXT, | 103 ROLE_SLIDER_THUMB, |
56 ROLE_STATUSBAR, | 104 ROLE_SPLITTER, |
| 105 ROLE_SPLIT_GROUP, |
| 106 ROLE_STATIC_TEXT, |
| 107 ROLE_STATUS, |
| 108 ROLE_SYSTEM_WIDE, |
| 109 ROLE_TAB, |
57 ROLE_TABLE, | 110 ROLE_TABLE, |
58 ROLE_TEXT, | 111 ROLE_TABLE_HEADER_CONTAINER, |
| 112 ROLE_TAB_GROUP, |
| 113 ROLE_TAB_LIST, |
| 114 ROLE_TAB_PANEL, |
| 115 ROLE_TEXTAREA, |
| 116 ROLE_TEXT_FIELD, |
| 117 ROLE_TIMER, |
59 ROLE_TOOLBAR, | 118 ROLE_TOOLBAR, |
60 ROLE_TOOLTIP, | 119 ROLE_TOOLTIP, |
| 120 ROLE_TREE, |
| 121 ROLE_TREE_GRID, |
| 122 ROLE_TREE_ITEM, |
| 123 ROLE_VALUE_INDICATOR, |
| 124 ROLE_WEBCORE_LINK, |
| 125 ROLE_WEB_AREA, |
| 126 ROLE_WINDOW, |
61 NUM_ROLES | 127 NUM_ROLES |
62 }; | 128 }; |
63 | 129 |
64 // An alphabetical enumeration of accessibility states. | 130 // An alphabetical enumeration of accessibility states. |
65 // A state bitmask is formed by shifting 1 to the left by each state, | 131 // A state bitmask is formed by shifting 1 to the left by each state, |
66 // for example: | 132 // for example: |
67 // int mask = (1 << STATE_CHECKED) | (1 << STATE_FOCUSED); | 133 // int mask = (1 << STATE_CHECKED) | (1 << STATE_FOCUSED); |
68 enum State { | 134 enum State { |
69 STATE_CHECKED, | 135 STATE_CHECKED, |
70 STATE_FOCUSABLE, | 136 STATE_FOCUSABLE, |
71 STATE_FOCUSED, | 137 STATE_FOCUSED, |
72 STATE_HOTTRACKED, | 138 STATE_HOTTRACKED, |
73 STATE_INDETERMINATE, | 139 STATE_INDETERMINATE, |
74 STATE_LINKED, | 140 STATE_LINKED, |
75 STATE_MULTISELECTABLE, | 141 STATE_MULTISELECTABLE, |
76 STATE_OFFSCREEN, | 142 STATE_OFFSCREEN, |
77 STATE_PRESSED, | 143 STATE_PRESSED, |
78 STATE_PROTECTED, | 144 STATE_PROTECTED, |
79 STATE_READONLY, | 145 STATE_READONLY, |
80 STATE_TRAVERSED, | 146 STATE_TRAVERSED, |
81 STATE_UNAVAILABLE | 147 STATE_UNAVAILABLE |
82 }; | 148 }; |
83 | 149 |
| 150 enum Attribute { |
| 151 ATTR_ACTION, |
| 152 ATTR_DESCRIPTION, |
| 153 ATTR_HELP, |
| 154 ATTR_HTML_TAG, |
| 155 ATTR_LINK_TARGET, |
| 156 ATTR_SHORTCUT, |
| 157 NUM_ATTRIBUTES |
| 158 }; |
| 159 |
84 // Empty constructor, for serialization. | 160 // Empty constructor, for serialization. |
85 WebAccessibility(); | 161 WebAccessibility(); |
86 | 162 |
87 // Construct from a WebAccessibilityObject. Recursively creates child | 163 // Construct from a WebAccessibilityObject. Recursively creates child |
88 // nodes as needed to complete the tree. Adds |src| to |cache| and | 164 // nodes as needed to complete the tree. Adds |src| to |cache| and |
89 // stores its cache ID. | 165 // stores its cache ID. |
90 WebAccessibility(const WebKit::WebAccessibilityObject& src, | 166 WebAccessibility(const WebKit::WebAccessibilityObject& src, |
91 WebKit::WebAccessibilityCache* cache); | 167 WebKit::WebAccessibilityCache* cache); |
92 | 168 |
93 // Initialize an already-created struct, same as the constructor a | 169 // Initialize an already-created struct, same as the constructor a |
94 void Init(const WebKit::WebAccessibilityObject& src, | 170 void Init(const WebKit::WebAccessibilityObject& src, |
95 WebKit::WebAccessibilityCache* cache); | 171 WebKit::WebAccessibilityCache* cache); |
96 | 172 |
97 // This is a simple serializable struct. All member variables should be | 173 // This is a simple serializable struct. All member variables should be |
98 // copyable. | 174 // copyable. |
99 int32 id; | 175 int32 id; |
100 string16 name; | 176 string16 name; |
101 string16 value; | 177 string16 value; |
102 string16 action; | |
103 string16 description; | |
104 string16 help; | |
105 string16 shortcut; | |
106 Role role; | 178 Role role; |
107 uint32 state; | 179 uint32 state; |
108 WebKit::WebRect location; | 180 WebKit::WebRect location; |
| 181 std::map<int32, string16> attributes; |
109 std::vector<WebAccessibility> children; | 182 std::vector<WebAccessibility> children; |
110 }; | 183 }; |
111 | 184 |
112 } // namespace webkit_glue | 185 } // namespace webkit_glue |
113 | 186 |
114 #endif // WEBKIT_GLUE_WEBACCESSIBILITY_H_ | 187 #endif // WEBKIT_GLUE_WEBACCESSIBILITY_H_ |
OLD | NEW |