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

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

Issue 2694413006: Scope and clean up uses of AccessibilityMode. (Closed)
Patch Set: build bustage Created 3 years, 10 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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
5 #ifndef CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_ 4 #ifndef CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_
6 #define CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_ 5 #define CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_
7
8 // Note: keep enums in content/browser/resources/accessibility/accessibility.js 6 // Note: keep enums in content/browser/resources/accessibility/accessibility.js
9 // in sync with these two enums. 7 // in sync with these two enums.
10 enum AccessibilityModeFlag { 8 enum AccessibilityMode : int {
danakj 2017/02/17 00:30:39 If this were an enum, then I think what you want i
dougt 2017/02/17 17:46:48 I do see your point about "not being a list of thi
danakj 2017/02/17 17:50:57 That sounds fair, LGTM. I do suggest "enum class"
dougt 2017/02/17 22:30:12 Moving to enum class would mean many/all of our un
11 // Native accessibility APIs, specific to each platform, are enabled. 9 // Native accessibility APIs, specific to each platform, are enabled.
12 // When this flag is set that indicates the presence of a third-party 10 // When this mode is set that indicates the presence of a third-party
13 // client accessing Chrome via accessibility APIs. However, unless one 11 // client accessing Chrome via accessibility APIs. However, unless one
14 // of the flags below is set, the contents of web pages will not be 12 // of the modes below is set, the contents of web pages will not be
15 // accessible. 13 // accessible.
16 ACCESSIBILITY_MODE_FLAG_NATIVE_APIS = 1 << 0, 14 NATIVE_APIS = 1 << 0,
17 15
18 // The renderer process will generate an accessibility tree containing 16 // The renderer process will generate an accessibility tree containing
19 // basic information about all nodes, including role, name, value, 17 // basic information about all nodes, including role, name, value,
20 // state, and location. This is the minimum flag required in order for 18 // state, and location. This is the minimum mode required in order for
21 // web contents to be accessible, and the remaining flags are meaningless 19 // web contents to be accessible, and the remaining modes are meaningless
22 // unless this one is set. 20 // unless this one is set.
23 // 21 //
24 // Note that sometimes this flag will be set when 22 // Note that sometimes this mode will be set when NATIVE_APIS is not, when the
25 // ACCESSIBILITY_MODE_FLAG_NATIVE_APIS is not, when the content layer embedder 23 // content layer embedder is providing accessibility support via some other
26 // is providing accessibility support via some other mechanism other than 24 // mechanism other than what's implemented in content/browser.
27 // what's implemented in content/browser. 25 WEB_CONTENTS = 1 << 1,
28 ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS = 1 << 1,
29 26
30 // The accessibility tree will contain inline text boxes, which are 27 // The accessibility tree will contain inline text boxes, which are
31 // necessary to expose information about line breaks and word boundaries. 28 // necessary to expose information about line breaks and word boundaries.
32 // Without this flag, you can retrieve the plaintext value of a text field 29 // Without this mode, you can retrieve the plaintext value of a text field
33 // but not the information about how it's broken down into lines. 30 // but not the information about how it's broken down into lines.
34 // 31 //
35 // Note that when this flag is off it's still possible to request inline 32 // Note that when this mode is off it's still possible to request inline
36 // text boxes for a specific node on-demand, asynchronously. 33 // text boxes for a specific node on-demand, asynchronously.
37 ACCESSIBILITY_MODE_FLAG_INLINE_TEXT_BOXES = 1 << 2, 34 INLINE_TEXT_BOXES = 1 << 2,
38 35
39 // The accessibility tree will contain extra accessibility 36 // The accessibility tree will contain extra accessibility
40 // attributes typically only needed by screen readers and other 37 // attributes typically only needed by screen readers and other
41 // assistive technology for blind users. Examples include text style 38 // assistive technology for blind users. Examples include text style
42 // attributes, table cell information, live region properties, range 39 // attributes, table cell information, live region properties, range
43 // values, and relationship attributes. 40 // values, and relationship attributes.
44 ACCESSIBILITY_MODE_FLAG_SCREEN_READER = 1 << 3, 41 SCREEN_READER = 1 << 3,
45 42
46 // The accessibility tree will contain the HTML tag name and HTML attributes 43 // The accessibility tree will contain the HTML tag name and HTML attributes
47 // for all accessibility nodes that come from web content. 44 // for all accessibility nodes that come from web content.
48 ACCESSIBILITY_MODE_FLAG_HTML = 1 << 4, 45 HTML = 1 << 4,
46
47 OFF = 0,
48
49 COMPLETE =
50 NATIVE_APIS | WEB_CONTENTS | INLINE_TEXT_BOXES | SCREEN_READER | HTML,
51
52 WEB_CONTENTS_ONLY = WEB_CONTENTS | INLINE_TEXT_BOXES | SCREEN_READER | HTML
49 }; 53 };
50 54
51 typedef int AccessibilityMode; 55 inline AccessibilityMode operator|(AccessibilityMode a, AccessibilityMode b) {
56 return static_cast<AccessibilityMode>(int(a) | int(b));
dmazzoni 2017/02/17 00:21:50 nit: use static_cast<int>(a), etc.
dougt 2017/02/17 22:30:12 Done.
57 }
52 58
53 const AccessibilityMode AccessibilityModeOff = 0; 59 inline AccessibilityMode& operator|=(AccessibilityMode& a,
60 AccessibilityMode b) {
61 return a = a | b;
62 }
54 63
55 const AccessibilityMode ACCESSIBILITY_MODE_COMPLETE = 64 inline AccessibilityMode operator^(AccessibilityMode a, AccessibilityMode b) {
56 ACCESSIBILITY_MODE_FLAG_NATIVE_APIS | 65 return static_cast<AccessibilityMode>(int(a) ^ int(b));
dmazzoni 2017/02/17 00:21:50 same
dougt 2017/02/17 22:30:12 Done.
57 ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS | 66 }
58 ACCESSIBILITY_MODE_FLAG_INLINE_TEXT_BOXES |
59 ACCESSIBILITY_MODE_FLAG_SCREEN_READER |
60 ACCESSIBILITY_MODE_FLAG_HTML;
61 67
62 const AccessibilityMode ACCESSIBILITY_MODE_WEB_CONTENTS_ONLY = 68 inline AccessibilityMode& operator^=(AccessibilityMode& a,
63 ACCESSIBILITY_MODE_FLAG_WEB_CONTENTS | 69 AccessibilityMode b) {
64 ACCESSIBILITY_MODE_FLAG_INLINE_TEXT_BOXES | 70 return a = a ^ b;
65 ACCESSIBILITY_MODE_FLAG_SCREEN_READER | 71 }
66 ACCESSIBILITY_MODE_FLAG_HTML;
67 72
68 #endif // CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_ 73 #endif // CONTENT_COMMON_ACCESSIBILITY_MODE_ENUMS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698