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

Unified Diff: docs/accessibility/tests.md

Issue 2728663004: Added docs on accessibility tests (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « docs/accessibility.md ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
+```
+
« no previous file with comments | « docs/accessibility.md ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698