OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include <set> | 5 #include <set> |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
48 // | 48 // |
49 // The flow of the test is as outlined below. | 49 // The flow of the test is as outlined below. |
50 // 1. Load an html file from content/test/data/accessibility. | 50 // 1. Load an html file from content/test/data/accessibility. |
51 // 2. Read the expectation. | 51 // 2. Read the expectation. |
52 // 3. Browse to the page and serialize the platform specific tree into a human | 52 // 3. Browse to the page and serialize the platform specific tree into a human |
53 // readable string. | 53 // readable string. |
54 // 4. Perform a comparison between actual and expected and fail if they do not | 54 // 4. Perform a comparison between actual and expected and fail if they do not |
55 // exactly match. | 55 // exactly match. |
56 class DumpAccessibilityTreeTest : public DumpAccessibilityTestBase { | 56 class DumpAccessibilityTreeTest : public DumpAccessibilityTestBase { |
57 public: | 57 public: |
58 void AddDefaultFilters(std::vector<Filter>* filters) override { | 58 void AddDefaultFilters(std::vector<Filter>* filters) override { |
dmazzoni
2017/06/13 20:25:33
Since this function is getting long, declare it he
aleventhal
2017/06/14 13:17:26
Done.
| |
59 filters->push_back(Filter(base::ASCIIToUTF16("FOCUSABLE"), Filter::ALLOW)); | 59 // TODO(aleventhal) Each platform deserves separate default filters. |
60 // Windows | |
61 // Note: SELECTABLE, IA2_STATE_OPAQUE, LINKED off by default -- too noisy. | |
62 filters->push_back(Filter(base::ASCIIToUTF16("ALERT*"), Filter::ALLOW)); | |
63 filters->push_back(Filter(base::ASCIIToUTF16("ANIMATED*"), Filter::ALLOW)); | |
dmazzoni
2017/06/13 20:25:33
Do we actually use this?
I'm tempted to get rid o
aleventhal
2017/06/14 13:17:25
I want to keep them when we don't use them, to mak
| |
64 filters->push_back(Filter(base::ASCIIToUTF16("BUSY"), Filter::ALLOW)); | |
65 filters->push_back(Filter(base::ASCIIToUTF16("CHECKED"), Filter::ALLOW)); | |
66 filters->push_back(Filter(base::ASCIIToUTF16("COLLAPSED"), Filter::ALLOW)); | |
67 filters->push_back(Filter(base::ASCIIToUTF16("DEFAULT"), Filter::ALLOW)); | |
68 filters->push_back(Filter(base::ASCIIToUTF16("EXPANDED"), Filter::ALLOW)); | |
69 filters->push_back(Filter(base::ASCIIToUTF16("FLOATING"), Filter::ALLOW)); | |
70 filters->push_back(Filter(base::ASCIIToUTF16("FOCUS*"), Filter::ALLOW)); | |
71 filters->push_back(Filter(base::ASCIIToUTF16("HASPOPUP"), Filter::ALLOW)); | |
72 // Too noisy: | |
73 // filters->push_back(Filter(base::ASCIIToUTF16("HOTTRACKED"), | |
dmazzoni
2017/06/13 20:25:33
Maybe put all of the cpmmented-out off by default
aleventhal
2017/06/14 13:17:26
Done.
| |
74 // Filter::ALLOW)); | |
75 filters->push_back(Filter(base::ASCIIToUTF16("INVISIBLE"), Filter::ALLOW)); | |
76 filters->push_back(Filter(base::ASCIIToUTF16("MARQUEED"), Filter::ALLOW)); | |
77 filters->push_back(Filter(base::ASCIIToUTF16("MIXED"), Filter::ALLOW)); | |
78 filters->push_back(Filter(base::ASCIIToUTF16("MOVEABLE"), Filter::ALLOW)); | |
79 filters->push_back( | |
80 Filter(base::ASCIIToUTF16("MULTISELECTABLE"), Filter::ALLOW)); | |
81 // Produces false-positive for contentless elements, including <br> | |
82 // filters->push_back(Filter(base::ASCIIToUTF16("OFFSCREEN"), | |
83 // Filter::ALLOW)); | |
60 filters->push_back(Filter(base::ASCIIToUTF16("READONLY"), Filter::ALLOW)); | 84 filters->push_back(Filter(base::ASCIIToUTF16("READONLY"), Filter::ALLOW)); |
85 filters->push_back(Filter(base::ASCIIToUTF16("PRESSED"), Filter::ALLOW)); | |
86 filters->push_back(Filter(base::ASCIIToUTF16("PROTECTED"), Filter::ALLOW)); | |
87 filters->push_back(Filter(base::ASCIIToUTF16("SELECTED"), Filter::ALLOW)); | |
88 filters->push_back(Filter(base::ASCIIToUTF16("SIZEABLE"), Filter::ALLOW)); | |
89 filters->push_back(Filter(base::ASCIIToUTF16("TRAVERSED"), Filter::ALLOW)); | |
90 filters->push_back( | |
91 Filter(base::ASCIIToUTF16("UNAVAILABLE"), Filter::ALLOW)); | |
92 // IA2- No editable, opaque, single_line, selectable_text, vertical (noisy): | |
93 filters->push_back( | |
94 Filter(base::ASCIIToUTF16("IA2_STATE_ACTIVE"), Filter::ALLOW)); | |
95 filters->push_back( | |
96 Filter(base::ASCIIToUTF16("IA2_STATE_ARMED"), Filter::ALLOW)); | |
97 filters->push_back( | |
98 Filter(base::ASCIIToUTF16("IA2_STATE_CHECKABLE"), Filter::ALLOW)); | |
99 filters->push_back( | |
100 Filter(base::ASCIIToUTF16("IA2_STATE_DEFUNCT"), Filter::ALLOW)); | |
101 filters->push_back( | |
102 Filter(base::ASCIIToUTF16("IA2_STATE_HORIZONTAL"), Filter::ALLOW)); | |
103 filters->push_back( | |
104 Filter(base::ASCIIToUTF16("IA2_STATE_ICONIFIED"), Filter::ALLOW)); | |
105 filters->push_back( | |
106 Filter(base::ASCIIToUTF16("IA2_STATE_INVALID_ENTRY"), Filter::ALLOW)); | |
107 filters->push_back( | |
108 Filter(base::ASCIIToUTF16("IA2_STATE_MODAL"), Filter::ALLOW)); | |
109 filters->push_back( | |
110 Filter(base::ASCIIToUTF16("IA2_STATE_MULTI_LINE"), Filter::ALLOW)); | |
111 filters->push_back( | |
112 Filter(base::ASCIIToUTF16("IA2_STATE_PINNED"), Filter::ALLOW)); | |
113 filters->push_back( | |
114 Filter(base::ASCIIToUTF16("IA2_STATE_REQUIRED"), Filter::ALLOW)); | |
115 filters->push_back( | |
116 Filter(base::ASCIIToUTF16("IA2_STATE_STALE"), Filter::ALLOW)); | |
117 filters->push_back( | |
118 Filter(base::ASCIIToUTF16("IA2_STATE_TRANSIENT"), Filter::ALLOW)); | |
119 | |
120 // Blink | |
121 filters->push_back(Filter(base::ASCIIToUTF16("check*"), Filter::ALLOW)); | |
122 filters->push_back(Filter(base::ASCIIToUTF16("descript*"), Filter::ALLOW)); | |
dmazzoni
2017/06/13 20:25:33
I vote for either both nameFrom and descriptionFro
aleventhal
2017/06/14 13:17:25
I wanted to keep descriptionFrom because it's rare
| |
123 // TODO(aleventhal) Add disabled back after control mode refactor | |
124 // filters->push_back(Filter(base::ASCIIToUTF16("disabled"), | |
125 // Filter::ALLOW)); | |
126 filters->push_back(Filter(base::ASCIIToUTF16("invalid"), Filter::ALLOW)); | |
127 filters->push_back(Filter(base::ASCIIToUTF16("busy"), Filter::ALLOW)); | |
128 filters->push_back(Filter(base::ASCIIToUTF16("collapsed"), Filter::ALLOW)); | |
129 filters->push_back(Filter(base::ASCIIToUTF16("default"), Filter::ALLOW)); | |
130 // TODO(aleventhal) Perhaps add editable and richlyEditable in later | |
131 // filters->push_back(Filter(base::ASCIIToUTF16("editable"), | |
132 // Filter::ALLOW)); | |
133 filters->push_back(Filter(base::ASCIIToUTF16("expandable"), Filter::ALLOW)); | |
134 // TODO(aleventhal) focus* causing a lot of changes, maybe add later | |
135 // filters->push_back(Filter(base::ASCIIToUTF16("focus*"), Filter::ALLOW)); | |
136 filters->push_back(Filter(base::ASCIIToUTF16("haspopup"), Filter::ALLOW)); | |
137 filters->push_back(Filter(base::ASCIIToUTF16("horizontal"), Filter::ALLOW)); | |
dmazzoni
2017/06/13 20:25:33
This should probably be an orientation enum {horiz
aleventhal
2017/06/14 13:17:26
Let's make it an enum at some point. For now, hori
| |
138 // Testing hovered would be flaky: | |
139 // filters->push_back(Filter(base::ASCIIToUTF16("hovered"), Filter::ALLOW)); | |
140 filters->push_back(Filter(base::ASCIIToUTF16("invisible"), Filter::ALLOW)); | |
141 // Linked is disallowed by default -- too noisy | |
142 // filters->push_back(Filter(base::ASCIIToUTF16("linked"), Filter::ALLOW)); | |
143 // TODO(aleventhal) Add multiline in separate patch | |
144 // filters->push_back(Filter(base::ASCIIToUTF16("multiline"), | |
145 // Filter::ALLOW)); | |
146 filters->push_back( | |
147 Filter(base::ASCIIToUTF16("multiselectable"), Filter::ALLOW)); | |
148 // Produces false-positive for contentless elements, including <br> | |
149 // filters->push_back(Filter(base::ASCIIToUTF16("offscreen"), | |
150 // Filter::ALLOW)); | |
151 filters->push_back(Filter(base::ASCIIToUTF16("protected"), Filter::ALLOW)); | |
152 // TODO(aleventhal) Add readonly support back after control mode refactor | |
153 // filters->push_back(Filter(base::ASCIIToUTF16("read*"), Filter::ALLOW)); | |
154 filters->push_back(Filter(base::ASCIIToUTF16("required"), Filter::ALLOW)); | |
155 // TODO(aleventhal) Perhaps add editable and richlyEditable in later | |
156 // filters->push_back(Filter(base::ASCIIToUTF16("richly*"), Filter::ALLOW)); | |
157 filters->push_back(Filter(base::ASCIIToUTF16("select*"), Filter::ALLOW)); | |
158 // Vertical is a bit noisy -- we test for horizontal though: | |
159 // filters->push_back(Filter(base::ASCIIToUTF16("vertical"), | |
160 // Filter::ALLOW)); | |
161 filters->push_back(Filter(base::ASCIIToUTF16("visited"), Filter::ALLOW)); | |
162 | |
163 // OS X | |
61 filters->push_back(Filter(base::ASCIIToUTF16("roleDescription=*"), | 164 filters->push_back(Filter(base::ASCIIToUTF16("roleDescription=*"), |
62 Filter::ALLOW)); | 165 Filter::ALLOW)); |
166 | |
167 // General | |
63 filters->push_back(Filter(base::ASCIIToUTF16("*=''"), Filter::DENY)); | 168 filters->push_back(Filter(base::ASCIIToUTF16("*=''"), Filter::DENY)); |
64 // After denying empty values, because we want to allow name='' | 169 // After denying empty values, because we want to allow name='' |
65 filters->push_back( | 170 filters->push_back( |
66 Filter(base::ASCIIToUTF16("name=*"), Filter::ALLOW_EMPTY)); | 171 Filter(base::ASCIIToUTF16("name=*"), Filter::ALLOW_EMPTY)); |
67 } | 172 } |
68 | 173 |
69 void SetUpCommandLine(base::CommandLine* command_line) override { | 174 void SetUpCommandLine(base::CommandLine* command_line) override { |
70 DumpAccessibilityTestBase::SetUpCommandLine(command_line); | 175 DumpAccessibilityTestBase::SetUpCommandLine(command_line); |
71 // Enable <dialog>, which is used in some tests. | 176 // Enable <dialog>, which is used in some tests. |
72 base::CommandLine::ForCurrentProcess()->AppendSwitch( | 177 base::CommandLine::ForCurrentProcess()->AppendSwitch( |
(...skipping 1413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1486 // crbug.com/281952 | 1591 // crbug.com/281952 |
1487 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, DISABLED_AccessibilityVideo) { | 1592 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, DISABLED_AccessibilityVideo) { |
1488 RunHtmlTest(FILE_PATH_LITERAL("video.html")); | 1593 RunHtmlTest(FILE_PATH_LITERAL("video.html")); |
1489 } | 1594 } |
1490 | 1595 |
1491 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityWbr) { | 1596 IN_PROC_BROWSER_TEST_F(DumpAccessibilityTreeTest, AccessibilityWbr) { |
1492 RunHtmlTest(FILE_PATH_LITERAL("wbr.html")); | 1597 RunHtmlTest(FILE_PATH_LITERAL("wbr.html")); |
1493 } | 1598 } |
1494 | 1599 |
1495 } // namespace content | 1600 } // namespace content |
OLD | NEW |