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

Unified Diff: docs/accessibility/chromevox.md

Issue 2701603002: Update accessibility documentation. (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/brltty.md ('k') | docs/accessibility/chromevox_on_desktop_linux.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: docs/accessibility/chromevox.md
diff --git a/docs/accessibility/chromevox.md b/docs/accessibility/chromevox.md
new file mode 100644
index 0000000000000000000000000000000000000000..ebc6f6f5ac07191fb8401ef15a177e50333cd813
--- /dev/null
+++ b/docs/accessibility/chromevox.md
@@ -0,0 +1,131 @@
+# ChromeVox (for developers)
+
+ChromeVox is the built-in screen reader on Chrome OS. It was originally
+developed as a separate extension but now the code lives inside of the Chromium
+tree and it's built as part of Chrome OS.
+
+To start or stop ChromeVox on Chrome OS, press Ctrl+Alt+Z at any time.
+
+## Developer Info
+
+Code location: ```chrome/browser/resources/chromeos/chromevox```
+
+Ninja target: it's built as part of "chrome", but you can build and run
+chromevox_tests to test it (Chrome OS target only - you must have target_os =
+"chromeos" in your GN args first).
+
+## Developing On Linux
+
+ChromeVox for Chrome OS development is done on Linux.
+
+See [ChromeVox on Desktop Linux](chromevox_on_desktop_linux.md)
+for more information.
+
+## ChromeVox Next
+
+ChromeVox Next is the code name we use for a major new rewrite to ChromeVox that
+uses the automation API instead of content scripts. The code is part of
+ChromeVox (unique ChromeVox Next code is found in
+chrome/browser/resources/chromeos/chromevox/cvox2).
+
+ChromeVox contains all of the classic and next code in the same codebase, it
+switches its behavior dynamically based on the mode:
+
+* Next: as of version 56 of Chrome/Chrome OS, this is default. ChromeVox uses new key/braille bindings, earcons, speech/braille output style, the Next engine (Automation API), and other major/minor improvements
+* Next Compat: in order to maintain compatibility with some clients of the ChromeVox Classic js APIs, some sites have been whitelisted for this mode. ChromeVox will inject classic content scripts, but expose a Next-like user experience (like above)
+* Classic: as of version 56 of Chrome/Chrome OS, this mode gets enabled via a keyboard toggle Search+Q. Once enabled, ChromeVox will behave like it did in the past including keyboard bindings, earcons, speech/braille output style, and the underlying engine (content scripts).
+* Classic compat for some sites that require Next, while running in Classic, ChromeVox will use the Next engine but expose a Classic user experience (like above)
+
+Once it's ready, the plan is to retire everything other than Next mode.
+
+## ChromeVox Next
+
+To test ChromeVox Next, click on the Gear icon in the upper-right of the screen
+to open the ChromeVox options (or press the keyboard shortcut Search+Shift+O, O)
+and then click the box to opt into ChromeVox Next.
+
+If you are running m56 or later, you already have ChromeVox Next on by
+default. To switch back to Classic, press Search+Q.
+
+## Debugging ChromeVox
+
+There are options available that may assist in debugging ChromeVox. Here are a
+few use cases.
+
+### Feature development
+
+When developing a new feature, it may be helpful to save time by not having to
+go through a compile cycle. This can be achieved by setting
+```chromevox_compress_js``` to 0 in
+chrome/browser/resources/chromeos/chromevox/BUILD.gn, or by using a debug build.
+
+In a debug build or with chromevox_compress_js off, the unflattened files in the
+Chrome out directory (e.g. out/Release/resources/chromeos/chromevox/). Now you
+can hack directly on the copy of ChromeVox in out/ and toggle ChromeVox to pick
+up your changes (via Ctrl+Alt+Z).
+
+### Fixing bugs
+
+The easiest way to debug ChromeVox is from an external browser. Start Chrome
+with this command-line flag:
+
+```out/Release/chrome --remote-debugging-port=9222```
+
+Now open http://localhost:9222 in a separate instance of the browser, and debug the ChromeVox extension background page from there.
+
+Another option is to use emacs jade (available through -mx
+package-list-packages).
+
+It also talks to localhost:9222 but integrates more tightly into emacs instead.
+
+Another option is to use the built-in developer console. Go to the
+ChromeVox options page with Search+Shift+o, o; then, substitute the
+“options.html” path with “background.html”, and then open up the
+inspector.
+
+### Running tests
+
+Build the chromevox_tests target. To run
+lots of tests in parallel, run it like this:
+
+```out/Release/chromevox_tests --test-launcher-jobs=20```
+
+Use a test filter if you only want to run some of the tests from a
+particular test suite - for example, most of the ChromeVox Next tests
+have "E2E" in them (for "end-to-end"), so to only run those:
+
+```out/Release/chromevox_tests --test-launcher-jobs=20 --gtest_filter="*E2E*"```
+
+## ChromeVox for other platforms
+
+ChromeVox can be run as an installable extension, separate from a
+linux Chrome OS build.
+
+### From source
+
+chrome/browser/resources/chromeos/chromevox/tools has the required scripts that pack ChromeVox as an extension and make any necessary manifest changes.
+
+### From Webstore
+
+Alternatively, the webstore has the stable version of ChromeVox.
+
+To install without interacting with the webstore UI, place the
+following json block in
+/opt/google/chrome-unstable/extensions/kgejglhpjiefppelpmljglcjbhoiplfn.json
+
+```
+{
+"external_update_url": "https://clients2.google.com/service/update2/crx"
+}
+```
+
+If you're using the desktop Linux version of Chrome, we recommend you
+use Voxin for speech. Run chrome with: “google-chrome
+--enable-speech-dispatcher” and select a voice provided by the speechd
+package from the ChromeVox options page (ChromeVox+o, o). As of the
+latest revision of Chrome 44, speechd support has become stable enough
+to use with ChromeVox, but still requires the flag.
+
+In the ChromeVox options page, select the flat keymap and use sticky
+mode (double press quickly of insert) to emulate a modal screen
+reader.
« no previous file with comments | « docs/accessibility/brltty.md ('k') | docs/accessibility/chromevox_on_desktop_linux.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698