summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webaccessibility.h
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/glue/webaccessibility.h')
-rw-r--r--webkit/glue/webaccessibility.h187
1 files changed, 187 insertions, 0 deletions
diff --git a/webkit/glue/webaccessibility.h b/webkit/glue/webaccessibility.h
new file mode 100644
index 0000000..305bc0c
--- /dev/null
+++ b/webkit/glue/webaccessibility.h
@@ -0,0 +1,187 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef WEBKIT_GLUE_WEBACCESSIBILITY_H_
+#define WEBKIT_GLUE_WEBACCESSIBILITY_H_
+
+#include <map>
+#include <vector>
+
+#include "base/string16.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityObject.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebAccessibilityRole.h"
+#include "third_party/WebKit/WebKit/chromium/public/WebRect.h"
+
+namespace WebKit {
+class WebAccessibilityCache;
+}
+
+namespace webkit_glue {
+
+// A compact representation of the accessibility information for a
+// single web object, in a form that can be serialized and sent from
+// the renderer process to the browser process.
+struct WebAccessibility {
+ public:
+ // An alphabetical enumeration of accessibility roles.
+ enum Role {
+ ROLE_NONE = 0,
+
+ ROLE_UNKNOWN,
+
+ ROLE_ALERT,
+ ROLE_ALERT_DIALOG,
+ ROLE_ANNOTATION,
+ ROLE_APPLICATION,
+ ROLE_ARTICLE,
+ ROLE_BROWSER,
+ ROLE_BUSY_INDICATOR,
+ ROLE_BUTTON,
+ ROLE_CELL,
+ ROLE_CHECKBOX,
+ ROLE_COLOR_WELL,
+ ROLE_COLUMN,
+ ROLE_COLUMN_HEADER,
+ ROLE_COMBO_BOX,
+ ROLE_DEFINITION_LIST_DEFINITION,
+ ROLE_DEFINITION_LIST_TERM,
+ ROLE_DIALOG,
+ ROLE_DIRECTORY,
+ ROLE_DISCLOSURE_TRIANGLE,
+ ROLE_DOCUMENT,
+ ROLE_DRAWER,
+ ROLE_EDITABLE_TEXT,
+ ROLE_GRID,
+ ROLE_GROUP,
+ ROLE_GROW_AREA,
+ ROLE_HEADING,
+ ROLE_HELP_TAG,
+ ROLE_IGNORED,
+ ROLE_IMAGE,
+ ROLE_IMAGE_MAP,
+ ROLE_IMAGE_MAP_LINK,
+ ROLE_INCREMENTOR,
+ ROLE_LANDMARK_APPLICATION,
+ ROLE_LANDMARK_BANNER,
+ ROLE_LANDMARK_COMPLEMENTARY,
+ ROLE_LANDMARK_CONTENTINFO,
+ ROLE_LANDMARK_MAIN,
+ ROLE_LANDMARK_NAVIGATION,
+ ROLE_LANDMARK_SEARCH,
+ ROLE_LINK,
+ ROLE_LIST,
+ ROLE_LISTBOX,
+ ROLE_LISTBOX_OPTION,
+ ROLE_LIST_ITEM,
+ ROLE_LIST_MARKER,
+ ROLE_LOG,
+ ROLE_MARQUEE,
+ ROLE_MATH,
+ ROLE_MATTE,
+ ROLE_MENU,
+ ROLE_MENU_BAR,
+ ROLE_MENU_ITEM,
+ ROLE_MENU_BUTTON,
+ ROLE_MENU_LIST_OPTION,
+ ROLE_MENU_LIST_POPUP,
+ ROLE_NOTE,
+ ROLE_OUTLINE,
+ ROLE_POPUP_BUTTON,
+ ROLE_PROGRESS_INDICATOR,
+ ROLE_RADIO_BUTTON,
+ ROLE_RADIO_GROUP,
+ ROLE_REGION,
+ ROLE_ROW,
+ ROLE_ROW_HEADER,
+ ROLE_RULER,
+ ROLE_RULER_MARKER,
+ ROLE_SCROLLAREA,
+ ROLE_SCROLLBAR,
+ ROLE_SHEET,
+ ROLE_SLIDER,
+ ROLE_SLIDER_THUMB,
+ ROLE_SPLITTER,
+ ROLE_SPLIT_GROUP,
+ ROLE_STATIC_TEXT,
+ ROLE_STATUS,
+ ROLE_SYSTEM_WIDE,
+ ROLE_TAB,
+ ROLE_TABLE,
+ ROLE_TABLE_HEADER_CONTAINER,
+ ROLE_TAB_GROUP,
+ ROLE_TAB_LIST,
+ ROLE_TAB_PANEL,
+ ROLE_TEXTAREA,
+ ROLE_TEXT_FIELD,
+ ROLE_TIMER,
+ ROLE_TOOLBAR,
+ ROLE_TOOLTIP,
+ ROLE_TREE,
+ ROLE_TREE_GRID,
+ ROLE_TREE_ITEM,
+ ROLE_VALUE_INDICATOR,
+ ROLE_WEBCORE_LINK,
+ ROLE_WEB_AREA,
+ ROLE_WINDOW,
+ NUM_ROLES
+ };
+
+ // An alphabetical enumeration of accessibility states.
+ // A state bitmask is formed by shifting 1 to the left by each state,
+ // for example:
+ // int mask = (1 << STATE_CHECKED) | (1 << STATE_FOCUSED);
+ enum State {
+ STATE_CHECKED,
+ STATE_FOCUSABLE,
+ STATE_FOCUSED,
+ STATE_HOTTRACKED,
+ STATE_INDETERMINATE,
+ STATE_LINKED,
+ STATE_MULTISELECTABLE,
+ STATE_OFFSCREEN,
+ STATE_PRESSED,
+ STATE_PROTECTED,
+ STATE_READONLY,
+ STATE_TRAVERSED,
+ STATE_UNAVAILABLE
+ };
+
+ enum Attribute {
+ ATTR_ACTION,
+ ATTR_DESCRIPTION,
+ ATTR_HELP,
+ ATTR_HTML_TAG,
+ ATTR_LINK_TARGET,
+ ATTR_SHORTCUT,
+ NUM_ATTRIBUTES
+ };
+
+ // Empty constructor, for serialization.
+ WebAccessibility();
+
+ // Construct from a WebAccessibilityObject. Recursively creates child
+ // nodes as needed to complete the tree. Adds |src| to |cache| and
+ // stores its cache ID.
+ WebAccessibility(const WebKit::WebAccessibilityObject& src,
+ WebKit::WebAccessibilityCache* cache);
+
+ // Initialize an already-created struct, same as the constructor a
+ void Init(const WebKit::WebAccessibilityObject& src,
+ WebKit::WebAccessibilityCache* cache);
+
+ // This is a simple serializable struct. All member variables should be
+ // copyable.
+ int32 id;
+ string16 name;
+ string16 value;
+ Role role;
+ uint32 state;
+ WebKit::WebRect location;
+ std::map<int32, string16> attributes;
+ std::vector<WebAccessibility> children;
+};
+
+} // namespace webkit_glue
+
+#endif // WEBKIT_GLUE_WEBACCESSIBILITY_H_