| 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 |