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

Side by Side Diff: webkit/glue/webaccessibility.h

Issue 1989009: Revert 46842 - Reimplement accessibility of web content by caching the entire... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 7 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 | « third_party/iaccessible2/iaccessible2.gyp ('k') | webkit/glue/webaccessibility.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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 <vector>
9
10 #include "base/string16.h" 8 #include "base/string16.h"
11 #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/WebRect.h"
14 9
15 namespace WebKit { 10 namespace WebKit {
16 class WebAccessibilityCache; 11 class WebAccessibilityCache;
17 } 12 }
18 13
19 namespace webkit_glue { 14 namespace webkit_glue {
20 15
21 // A compact representation of the accessibility information for a 16 class WebAccessibility {
22 // single web object, in a form that can be serialized and sent from
23 // the renderer process to the browser process.
24 struct WebAccessibility {
25 public: 17 public:
26 // An alphabetical enumeration of accessibility roles. 18 // This defines an enumeration of IDs that can uniquely identify a call to a
19 // specific accessibility information function. Should match the support
20 // implemented in WebKit and GlueAccessibilityObject (functions marked with
21 // return value E_NOTIMPL in WebKit are also excluded).
22 enum Function {
23 FUNCTION_NONE = 0,
24
25 // Supported accessibility information retrieval functions.
26 FUNCTION_DODEFAULTACTION,
27 FUNCTION_HITTEST,
28 FUNCTION_LOCATION,
29 FUNCTION_NAVIGATE,
30 FUNCTION_GETCHILD,
31 FUNCTION_CHILDCOUNT,
32 FUNCTION_DEFAULTACTION,
33 FUNCTION_DESCRIPTION,
34 FUNCTION_GETFOCUSEDCHILD,
35 FUNCTION_HELPTEXT,
36 FUNCTION_KEYBOARDSHORTCUT,
37 FUNCTION_NAME,
38 FUNCTION_GETPARENT,
39 FUNCTION_ROLE,
40 FUNCTION_STATE,
41 FUNCTION_VALUE
42
43 // The deprecated put_accName and put_accValue (IAccessible) are not
44 // supported here, nor is accSelect, get_accHelpTopic and get_accSelection
45 // (matching WebKit's support for IAccessible).
46 };
47
48 // This defines an enumeration of navigation directions based on (but
49 // independent of) the MSAA Navigation Constants. However, to avoid the use of
50 // COM in our Glue layer, we use this as a substitute with a one-to-one
51 // conversion between Browser side (has COM) and Glue.
52 enum Direction {
53 DIRECTION_NONE = 0,
54
55 // Valid directions.
56 DIRECTION_UP,
57 DIRECTION_DOWN,
58 DIRECTION_LEFT,
59 DIRECTION_RIGHT,
60 DIRECTION_NEXT,
61 DIRECTION_PREVIOUS,
62 DIRECTION_FIRSTCHILD,
63 DIRECTION_LASTCHILD
64 };
65
66 // This defines an enumeration (in alphabetical order) of the supported
67 // accessibility roles in our Glue layer (used in
68 // GlueAccessibilityObject::Role). Any interface using roles must provide a
69 // conversion to its own roles (see e.g. BrowserAccessibility::get_accRole and
70 // BrowserAccessibility::MSAARole).
27 enum Role { 71 enum Role {
28 ROLE_NONE = 0,
29
30 ROLE_APPLICATION, 72 ROLE_APPLICATION,
31 ROLE_CELL, 73 ROLE_CELL,
32 ROLE_CHECKBUTTON, 74 ROLE_CHECKBUTTON,
33 ROLE_CLIENT, 75 ROLE_CLIENT,
34 ROLE_COLUMN, 76 ROLE_COLUMN,
35 ROLE_COLUMNHEADER, 77 ROLE_COLUMNHEADER,
36 ROLE_DOCUMENT, 78 ROLE_DOCUMENT,
37 ROLE_GRAPHIC, 79 ROLE_GRAPHIC,
38 ROLE_GROUPING, 80 ROLE_GROUPING,
39 ROLE_LINK, 81 ROLE_LINK,
(...skipping 10 matching lines...) Expand all
50 ROLE_RADIOBUTTON, 92 ROLE_RADIOBUTTON,
51 ROLE_ROW, 93 ROLE_ROW,
52 ROLE_ROWHEADER, 94 ROLE_ROWHEADER,
53 ROLE_SEPARATOR, 95 ROLE_SEPARATOR,
54 ROLE_SLIDER, 96 ROLE_SLIDER,
55 ROLE_STATICTEXT, 97 ROLE_STATICTEXT,
56 ROLE_STATUSBAR, 98 ROLE_STATUSBAR,
57 ROLE_TABLE, 99 ROLE_TABLE,
58 ROLE_TEXT, 100 ROLE_TEXT,
59 ROLE_TOOLBAR, 101 ROLE_TOOLBAR,
60 ROLE_TOOLTIP, 102 ROLE_TOOLTIP
61 NUM_ROLES
62 }; 103 };
63 104
64 // An alphabetical enumeration of accessibility states. 105 // This defines an enumeration (in alphabetical order) of the supported
65 // A state bitmask is formed by shifting 1 to the left by each state, 106 // accessibility states in our Glue layer (used in
66 // for example: 107 // GlueAccessibilityObject::State). Any interface using states must provide a
67 // int mask = (1 << STATE_CHECKED) | (1 << STATE_FOCUSED); 108 // conversion to its own states (see e.g. BrowserAccessibility::get_accState
109 // and BrowserAccessibility::MSAAState).
68 enum State { 110 enum State {
69 STATE_CHECKED, 111 STATE_CHECKED,
70 STATE_FOCUSABLE, 112 STATE_FOCUSABLE,
71 STATE_FOCUSED, 113 STATE_FOCUSED,
72 STATE_HOTTRACKED, 114 STATE_HOTTRACKED,
73 STATE_INDETERMINATE, 115 STATE_INDETERMINATE,
74 STATE_LINKED, 116 STATE_LINKED,
75 STATE_MULTISELECTABLE, 117 STATE_MULTISELECTABLE,
76 STATE_OFFSCREEN, 118 STATE_OFFSCREEN,
77 STATE_PRESSED, 119 STATE_PRESSED,
78 STATE_PROTECTED, 120 STATE_PROTECTED,
79 STATE_READONLY, 121 STATE_READONLY,
80 STATE_TRAVERSED, 122 STATE_TRAVERSED,
81 STATE_UNAVAILABLE 123 STATE_UNAVAILABLE
82 }; 124 };
83 125
84 // Empty constructor, for serialization. 126 enum ReturnCode {
85 WebAccessibility(); 127 RETURNCODE_TRUE, // MSAA S_OK
128 RETURNCODE_FALSE, // MSAA S_FALSE
129 RETURNCODE_FAIL // E_FAIL
130 };
86 131
87 // Construct from a WebAccessibilityObject. Recursively creates child 132 // Parameters structure to hold a union of the possible accessibility function
88 // nodes as needed to complete the tree. Adds |src| to |cache| and 133 // INPUT variables, with the unused fields always set to default value. Used
89 // stores its cache ID. 134 // in ViewMsg_GetAccessibilityInfo, as only parameter.
90 WebAccessibility(const WebKit::WebAccessibilityObject& src, 135 struct InParams {
91 WebKit::WebAccessibilityCache* cache); 136 // Identifier to uniquely distinguish which instance of accessibility
137 // information is being called upon on the renderer side.
138 int object_id;
92 139
93 // Initialize an already-created struct, same as the constructor a 140 // Identifier to resolve which accessibility information retrieval function
94 void Init(const WebKit::WebAccessibilityObject& src, 141 // is being called.
95 WebKit::WebAccessibilityCache* cache); 142 int function_id;
96 143
97 // This is a simple serializable struct. All member variables should be 144 // Id of accessible child, whose information is being requested.
98 // copyable. 145 int child_id;
99 int32 id; 146
100 string16 name; 147 // LONG input parameters, used differently depending on the function called.
101 string16 value; 148 long input_long1;
102 string16 action; 149 long input_long2;
103 string16 description; 150 };
104 string16 help; 151
105 string16 shortcut; 152 // Parameters structure to hold a union of the possible accessibility function
106 Role role; 153 // OUTPUT variables, with the unused fields always set to default value. Used
107 uint32 state; 154 // in ViewHostMsg_GetAccessibilityInfoResponse, as only parameter.
108 WebKit::WebRect location; 155 struct OutParams {
109 std::vector<WebAccessibility> children; 156 // Identifier to uniquely distinguish which instance of accessibility
157 // information is being called upon on the renderer side.
158 int object_id;
159
160 // LONG output parameters, used differently depending on the function
161 // called. [output_long1] can in some cases be set to -1 to indicate that
162 // the child object found by the called IAccessible function is not a simple
163 // object.
164 long output_long1;
165 long output_long2;
166 long output_long3;
167 long output_long4;
168
169 // String output parameter.
170 string16 output_string;
171
172 // Return code of the accessibility function call.
173 int32 return_code;
174 };
175
176 static int32 GetAccObjInfo(WebKit::WebAccessibilityCache* cache,
177 const InParams& in_params, OutParams* out_params);
110 }; 178 };
111 179
112 } // namespace webkit_glue 180 } // namespace webkit_glue
113 181
114 #endif // WEBKIT_GLUE_WEBACCESSIBILITY_H_ 182 #endif // WEBKIT_GLUE_WEBACCESSIBILITY_H_
OLDNEW
« no previous file with comments | « third_party/iaccessible2/iaccessible2.gyp ('k') | webkit/glue/webaccessibility.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698