# ChromeVox Classic
## Overview
ChromeVox Classic is a screen reader built utilizing only web api's available
through the use of a content script (e.g. DOM).
Over time, this project diverged from the approach taken by ChromeVox
in Chrome OS, which acts upon Chrome's intermediate accessibility api
layer. ChromeVox on Chrome OS talks to each renderering surface
through this middle accessibility layer whereas ChromeVox Classic
talks directly to a webpage DOM.
## Building
ChromeVox Classic uses the same compression script as ChromeVox for
Chrome OS. You can build it by executing
ninja -C out/Release ui/accessibility/extensions
The final extension, including all json, image, html, css, and other
assets, gets placed in
out/Release/chromevoxclassic.
The two exceptions are the ./_locales directory and third party files.
The ./_locales directory and third party files must be copied manually to
out/Release/chromevoxclassic.
These translations are no longer part of mainline ChromeVox.
#Loading and Testing
Go to chrome://extensions, and click "Load
Unpacked". Select out/Release/chromevoxclassic.
#Automated Testing
Build
ninja -C out/Release ui/accessibility/extensions:extension_tests
and run
out/Release/chromevox_tests
## Maintenance/Contributions
Tooling is minimal for this fork of ChromeVox. Much of what's available for
ChromeVox in Chrome OS
(chrome/browser/resources/chromeos/accessibility/chromevox/tools) is applicable.
## Release/Testing
Load ChromeVox Classic on at least Mac and Linux Chrome. Verify web content and
the chrome of Chrome both speak (e.g. google.com, the address bar). These two
paths are verbalized using entirely different code paths.
Once confirmed, the entire directory can be uploaded once zipped to the Chrome
webstore.
### Third party files
The extension currently depends on a shim to polyfill shadow DOM. This file is
located at ./webcomponents-bundle.js.
It is not checked into the repository, but can be obtained by building:
https://github.com/webcomponents/polyfills/
(packages/webcomponentsjs)
You can test things work by visiting any polymer app e.g.
chrome://settings
## A final note on branding
In order to further differentiate ChromeVox from ChromeVox Classic, the Classic
extension is now simply known as "Screen Reader" and scrubbed of the ChromeVox
brand.