Chromium Code Reviews| 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 |