/tota11y

an accessibility (a11y) visualization toolkit

Primary LanguageJavaScriptMIT LicenseMIT

tota11y Build Status

An accessibility visualization toolkit

tota11y logo

Try tota11y in your browser, or read why we built tota11y.

Installation

First, grab the latest release of tota11y.

Then, include it right before </body> like so:

<script src="tota11y.min.js"></script>

Development

Want to contribute to tota11y? Awesome! Run the following in your terminal:

git clone https://github.com/Khan/tota11y.git
cd tota11y/
npm install

Architecture Overview

Most of the functionality in tota11y comes from its plugins. Each plugin gets its own directory in plugins/ and maintains its own JavaScript, CSS, and even handlebars. Here's what the simple LandmarksPlugin looks like.

plugins/shared/ contains a variety of shared utilities for the plugins, namely the info-panel and annotate modules, which are used to report accessibility violations on the screen.

index.js brings it all together.

tota11y uses a variety of technologies, including jQuery, webpack, babel, and JSX. There's no need to know all (or any!) of these to contribute to tota11y, but we hope tota11y is a good place to learn something new and interesting.

Testing

You can run unit tests on tota11y with the following:

npm test

Or lint with:

npm run lint

To perform manual testing as you work, you can run a live dev-server with the following:

npm run live-test

Then navigate to http://localhost:8080/webpack-dev-server/test/. This page will automatically reload with changes.

Building

You can build a bundled copy of tota11y with:

npm run build

Special thanks

Many of tota11y's features come straight from Google Chrome's Accessibility Developer Tools. We use this library heavily at Khan Academy.

The awesome glasses in our logo were created by Kyle Scott and are licensed under CC BY 3.0.

License

MIT