An open API service indexing awesome lists of open source software.

https://github.com/18F/continua11y

continuous integration for website accessibility
https://github.com/18F/continua11y

Last synced: over 1 year ago
JSON representation

continuous integration for website accessibility

Awesome Lists containing this project

README

          

# continua11y

[![Accessibility](https://continua11y.18f.gov/18F/continua11y.svg?branch=release)](https://continua11y.18f.gov/18F/continua11y)
[![Build Status](https://travis-ci.org/18F/continua11y.svg?branch=release)](https://travis-ci.org/18F/continua11y)
[![Code Climate](https://codeclimate.com/github/18F/continua11y/badges/gpa.svg)](https://codeclimate.com/github/18F/continua11y)
[![Test Coverage](https://codeclimate.com/github/18F/continua11y/badges/coverage.svg)](https://codeclimate.com/github/18F/continua11y/coverage)

A continuous integration service using [pa11y](https://github.com/nature/pa11y), a web accessibility tool. It provides a script for generating accessibility statistics for all pages on a site, which is designed to run within a testing environment like Travis CI (though it can run anywhere). It then stores the results of scans in a Postgres database and produces a badge with the result that can be used as an image on any website.

## Contributing

See [CONTRIBUTING](CONTRIBUTING.md) for additional information.

### Branch flow

- Main branch: `release`
- Development branch: `develop`

## Usage

Run `continua11y.sh` as part of your [Travis CI](https://travis-ci.org/) suite of tests.

1. Copy [the script](https://continua11y.18f.gov/continua11y.sh) to your repo and add `after_script: ./path/to/continua11y.sh` to your `.travis.yml` file.

2. Set a few [environmental variables](http://docs.travis-ci.com/user/environment-variables/#Global-Variables):

- RUN_SCRIPT: The command for serving your site. Necessary if the server shuts down after the tests run in `script`. Make sure that the server detaches so that the script continues to run.
- KILL_SCRIPT: The command to stop serving. This is optional, and more useful for local development.
- USE_SITEMAP: If your site has a `sitemap.xml` file, set to `true` to use that instead of the spider.
- PORT: The port on `localhost` where your served site is found.
- STANDARD: The accessibility standard used for testing. Defaults to `WCAG2AAA`, but can also be `Section508`, `WCAG2A`, or `WCAG2AA`.
- CONTINUA11Y: The location where `continua11y` is running. The main site is `continua11y.18f.gov`, but you can change this for testing purposes or whatever.

## Installation

cp .env.sample .env
npm install
node app.js # or foreman start

You may run into trouble installing the `gh-badges` package. Check [that project](https://github.com/badges/shields/blob/master/INSTALL.md#requirements) for more in-depth information.

### Docker setup

Optionally, you can use Docker (and docker-compose) to run the server locally. Once you have Docker and docker-compose installed, run:

```
docker-compose up
```

If you're on a Mac, you can get the IP address of the local server by running `docker-machine ip`.

Then `open http://$(docker-machine ip):3000` (or visit `localhost:3000` if you're on Linux.).

## Public domain

This project is in the worldwide [public domain](LICENSE.md). As stated in [CONTRIBUTING](CONTRIBUTING.md):

> This project is in the public domain within the United States, and copyright and related rights in the work worldwide are waived through the [CC0 1.0 Universal public domain dedication](https://creativecommons.org/publicdomain/zero/1.0/).
>
> All contributions to this project will be released under the CC0 dedication. By submitting a pull request, you are agreeing to comply with this waiver of copyright interest.