| Index: docs/accessibility/tests.md
|
| diff --git a/docs/accessibility/tests.md b/docs/accessibility/tests.md
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f1a742078857cfcebcb71a3cb809748aebe2529e
|
| --- /dev/null
|
| +++ b/docs/accessibility/tests.md
|
| @@ -0,0 +1,123 @@
|
| +# Accessibility
|
| +
|
| +Here's a quick overview of all of the locations in the codebase where
|
| +you'll find accessibility tests, and a brief overview of the purpose of
|
| +all of them.
|
| +
|
| +## Layout Tests
|
| +
|
| +This is the primary place where we test accessibility code in Blink. This
|
| +code should have no platform-specific code. Use this to test anything
|
| +where there's any interesting web platform logic, or where you need to be
|
| +able to query things synchronously from the renderer thread to test them.
|
| +
|
| +Don't add tests for trivial features like ARIA attributes that we just
|
| +expose directly to the next layer up. In those cases the Blink tests are
|
| +trivial and it's more valuable to test these features at a higher level
|
| +where we can ensure they actually work.
|
| +
|
| +Note that many of these tests are inherited from WebKit and the coding style
|
| +has evolved a lot since then. Look for more recent tests as a guide if writing
|
| +a new one.
|
| +
|
| +Test files:
|
| +```
|
| +third_party/WebKit/LayoutTests/accessibility
|
| +```
|
| +
|
| +Source code to AccessibilityController and WebAXObjectProxy:
|
| +```
|
| +content/shell/test_runner
|
| +```
|
| +
|
| +To run all accessibility LayoutTests:
|
| +```
|
| +ninja -C out/release blink_tests
|
| +third_party/WebKit/Tools/Scripts/run-webkit-tests --build-directory=out --target=release accessibility/
|
| +```
|
| +
|
| +To run just one test by itself without the script:
|
| +```
|
| +ninja -C out/release blink_tests
|
| +out/release/content_shell --run-layout-test third_party/WebKit/LayoutTests/accessibility/name-calc-inputs.html
|
| +```
|
| +
|
| +## DumpAccessibilityTree tests
|
| +
|
| +This is the best way to write both cross-platform and platform-specific tests
|
| +using only an input HTML file, some magic strings to describe what attributes
|
| +you're interested in, and one or more expectation files to enable checking
|
| +whether the resulting accessibility tree is correct or not. In particular,
|
| +almost no test code is required.
|
| +
|
| +[More documentation on DumpAccessibilityTree](../../content/test/data/accessibility/readme.md)
|
| +
|
| +Test files:
|
| +```
|
| +content/test/data/accessibility
|
| +```
|
| +
|
| +Test runner:
|
| +```
|
| +content/browser/accessibility/dump_accessibility_tree_browsertest.cc
|
| +```
|
| +
|
| +To run all tests:
|
| +```
|
| +ninja -C out/release content_browsertests
|
| +out/release/content_browsertests --gtest_filter="DumpAccessibilityTree*"
|
| +```
|
| +
|
| +## Other content_browsertests
|
| +
|
| +There are many other tests in content/ that relate to accessibility.
|
| +All of these tests work by launching a full multi-process browser shell,
|
| +loading a web page in a renderer, then accessing the resulting accessibility
|
| +tree from the browser process, and running some test from there.
|
| +
|
| +To run all tests:
|
| +```
|
| +ninja -C out/release content_browsertests
|
| +out/release/content_browsertests --gtest_filter="*ccessib*"
|
| +```
|
| +
|
| +## Accessibility unittests
|
| +
|
| +This tests the core accessibility code that's shared by both web and non-web
|
| +accessibility infrastructure.
|
| +
|
| +Code location:
|
| +```
|
| +ui/accessibility
|
| +```
|
| +
|
| +To run all tests:
|
| +```
|
| +ninja -C out/release accessibility_unittests
|
| +out/release/accessibility_unittests
|
| +```
|
| +
|
| +## ChromeVox tests
|
| +
|
| +You must build with ```target_os = "chromeos"``` in your GN args.
|
| +
|
| +To run all tests:
|
| +```
|
| +ninja -C out/release chromevox_tests
|
| +out/release/chromevox_tests --test-launcher-jobs=10
|
| +```
|
| +
|
| +## Other locations of accessibility tests:
|
| +
|
| +Even this isn't a complete list. The tests described above cover more
|
| +than 90% of the accessibility tests, and the remainder are scattered
|
| +throughout the codebase. Here are a few other locations to check:
|
| +
|
| +```
|
| +chrome/android/javatests/src/org/chromium/chrome/browser/accessibility
|
| +chrome/browser/accessibility
|
| +chrome/browser/chromeos/accessibility/
|
| +ui/chromeos
|
| +ui/views/accessibility
|
| +```
|
| +
|
|
|