Easy accessibility audits powered by the Chrome Accessibility Tools.
$ npm install -g a11y
PhantomJS, which is used for generating the screenshots, is installed automagically, but in some rare cases it might fail to and you'll get an Error: spawn EACCES
error. Download PhantomJS manually and reinstall a11y
if that happens.
Run an audit against a URL:
$ a11y <url>
or multiple URLs:
$ a11y http://todomvc.com http://chrome.com
Also works fine against localhost:
$ a11y http://localhost:9000
and local files:
$ a11y index.html
Query help:
$ a11y --help
Verbose mode:
$ a11y <url> --verbose
Write audit to file:
$ a11y <url> > audit.txt
Audit a remote URL and generate an accessibility report:
var a11y = require('a11y');
a11y('http://twitter.com', function (err, reports) {
var output = JSON.parse(reports);
var audit = output.audit; // a11y Formatted report
var report = output.report; // DevTools Accessibility Audit formatted report
});
Work with the output of reports.audit
:
var a11y = require('a11y');
a11y('http://twitter.com', function (err, reports) {
reports.audit.forEach(function (el) {
// result will be PASS, FAIL or NA
if (el.result === 'FAIL') {
// el.heading
// el.severity
// el.elements
}
});
});
Per the Accessibility Developer Tools, the results in an audit may be one of three constants:
- PASS - implies that there were elements on the page that may potentially have failed this audit rule, but they passed. Congratulations!
- FAIL - This implies that there were elements on the page that did not pass this audit rule. This is the only result you will probably be interested in.
- NA - This implies that there were no elements on the page that may potentially have failed this audit rule. For example, an audit rule that checks video elements for subtitles would return this result if there were no video elements on the page.
Apache-2.