Quail: Accessibility Information Library
The project website is quailjs.io.
Quail is a Node module and a jQuery plugin that lets you easily check HTML for adherence to accessibility standards. It comes with over 200 tests which implement Open Accessibility Tests and comes with WCAG 1.0, WCAG 2.0, and Section 508 guidelines.
Developers can build their own guidelines, or easily build a custom guideline that integrates with their project. While the project supports checking entire HTML pages, integration with a CMS to check partial HTML content is probably the most popular use case.
Notice for developers working in the 2.2.x version.
Please base your changes on the
You will need the following installed on your system to run Quail.
Run the following commands to build Quail.
git clone https://github.com/quailjs/quail.gitcd quailnpm installbower installgrunt build
Using Quail from the command line
To see the Quail CLI API, run the following. You can also add the Quail bin directory to your PATH if you are so inclined.
Once the command is set up, you can run the following to test any addressable web page.
./bin/quail eval http://placekitten.com
Write the results as a JSON object out to file in an existing directory.
./bin/quail evaluate http://placekitten.com -o ./analyses
You can also pass configurations to the evaluator.
./bin/quail evaluate http://placekitten.com -c ~/path/to/myconfig.json -o ./analyses
This is the default set of configurations. Your configurations will replace the defaults.
phantomjs configurations affect the PhantomJS runtime.
blacklists block resource resource requests from PhantomJS by the resource's domain, its mime type or a header name in the request. Currently the only header value that can be blocked is the value of Accept (mime type).
To work on an existing assessment in a browser (so that breakpoints can be set in the console), run the following.
./bin/quail dev aMustHaveTitle
The following is experimental, which means it probably won't work. You can generate a new assessment with this command.
./bin/quail gen someNewAssessment
Core unit tests in Karma
./node_modules/karma/bin/karma start ./config/karma-unit.conf.js
Testing assessments in Selenium
All assessments. This takes about 10 minutes to run.
An individual assessment. This takes about 2 seconds to run.
node ./test/assessmentSpecs/testRunner.js -I aMustHaveTitle
In a specific browser.
_BROWSER=chrome node ./test/assessmentSpecs/testRunner.js
Pull requests should be made against the master branch.
We are currently looking for the following types of contritions.
- Help with our current Milestone objectives.
- A dependency injection load pattern: Replace our load-order-depending spinup with an Inversion of Control pattern
- A pub/sub pattern: Refactor the custom event bubbling code in the core Classes (e.g. TestCollection) to use a real event pub/sub library
- Improve an NPM package, better build and test scripts, etc: Improve the Quail NPM package
- Quail is maintained by Jesse Renée Beach
- The Kwaliteitsinstituut Nederlandse Gemeenten (KING), who have funded many developer hours.
- The CKEditor development team for their contributions.
QUAIL is covered under the MIT License, and is copyright (c) 2015 by Jesse Beach. Current license is at http://quailjs.org/license.