Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yargalot/AccessSniff
Automated accessibility testing using HTML_Codesniffer (WCAG and Section508)
https://github.com/yargalot/AccessSniff
a11y accessibility html-codesniffer wcag
Last synced: about 2 months ago
JSON representation
Automated accessibility testing using HTML_Codesniffer (WCAG and Section508)
- Host: GitHub
- URL: https://github.com/yargalot/AccessSniff
- Owner: yargalot
- Created: 2015-03-04T05:40:32.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-09-26T12:47:51.000Z (over 6 years ago)
- Last Synced: 2024-09-19T23:18:37.993Z (4 months ago)
- Topics: a11y, accessibility, html-codesniffer, wcag
- Language: JavaScript
- Homepage:
- Size: 1.83 MB
- Stars: 88
- Watchers: 4
- Forks: 21
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AccessSniff
[![Build Status](https://travis-ci.org/yargalot/AccessSniff.svg?branch=master)](https://travis-ci.org/yargalot/AccessSniff)
[![Build status](https://ci.appveyor.com/api/projects/status/r805fyyn6bpfr57y?svg=true)](https://ci.appveyor.com/project/yargalot/accesssniff)
[![codecov](https://codecov.io/gh/yargalot/AccessSniff/branch/master/graph/badge.svg)](https://codecov.io/gh/yargalot/AccessSniff)A CLI, JsDom and PhantomJs library for HTML_CodeSniffer
- [Gulp plugin](https://github.com/yargalot/gulp-accessibility)
- [Grunt plugin](https://github.com/yargalot/grunt-accessibility)![Example Image](img/example.png)
## Getting Started
Install this plugin with `npm install access-sniff --save`### ES5
```js
var AccessSniff = require('access-sniff');AccessSniff
.default(['**/*.html'], options)
.then(function(report) {
AccessSniff.report(report, reportOptions);
});
```### ES6
```js
import AccessSniff, { reports as AccessReports } from 'access-sniff';AccessSniff(['**/*.html'], options)
.then(report => AccessReports(report, reportOptions));
```### CLI
```
npm install access-sniff -g
sniff test/**/*.html -r json -l reports
```AccessSniff can test both locally hosted files and websites.
```
sniff http://statamic.com/ -r json -l reports
```## Options
You can pass the following options### Accessibility Level
`accessibilityLevel` is a string
```js
options: {
accessibilityLevel: 'WCAG2A'
}
```Levels are `WCAG2A`, `WCAG2AA`, `WCAG2AAA`, and `Section508`
### Accessibilityrc
You can create an .accessibilityrc file in your project to set options:
```json
{
"ignore": [
"WCAG2A.Principle2.Guideline2_4.2_4_2.H25.1.NoTitleEl",
"WCAG2A.Principle3.Guideline3_1.3_1_1.H57.2"
]
}
```### Ignore
`ignore` is an array
You can ignore rules by placing them in an array outlined below.
```js
options: {
ignore: [
'WCAG2A.Principle2.Guideline2_4.2_4_2.H25.1.NoTitleEl'
'WCAG2A.Principle3.Guideline3_1.3_1_1.H57.2'
]
}
```Rules will also match to remove and entire set.
`WCAG2A.Principle2.Guideline2_4.2_4_2.H25.1` will ignore `WCAG2A.Principle2.Guideline2_4.2_4_2.H25.1.NoTitleEl`
### Verbose output
`verbose` is a boolean
```js
options: {
verbose: false
}
```Output messages to console, set to true by default
### Force
`force` is a boolean, defaults to `false`
```js
options: {
force: true
}
```Continue running in the event of failures.
You can catch failures from the promise as below:
```js
AccessSniff(['**/*.html'], options)
.then(report => AccessReports(report, reportOptions));
.catch(error => console.error(error))
```### Browser
`browser` is a boolean, defaults to `false`
```js
options: {
browser: false
}
```AccessSniff uses jsDom as the default, setting this to true will use PhantomJs instead
### maxBuffer
`maxBuffer` is a number, defaults to `500*1024`
In certain situations you might have to increase the memory allocated to render a page.
```js
options: {
maxBuffer: 500*1024
}
```## Reports
You can pass the following options to the report generator#### Notes
- Reports are now generated from the returned json to the report module
- Report location is required to write a report
- Reports return the content from the report### Modular Reporting
You can use the inbuilt system or create your own
```js
AccessSniff.report(report, reportOptions)
```### Report Type
`reportType` is a string
```js
options: {
reportType: 'json'
}
```Text, CSV or JSON format output
- `txt` will output text files
- `json` will output .json files
- `csv` will output csv### Report Location
`reportLocation` is a string
```js
options: {
reportLocation: 'reports'
}
```Set the value to where you want reports created
### Report Levels
`reportLevels` is an object
```js
options: {
reportLevels: {
notice: true,
warning: true,
error: true
}
}
```Set a value to `false` to limit output
## CLI
You can use the CLI component by installing it globally with `npm install -g access-sniff````cmd
sniff test/**/*.html -r json -l reports
sniff test/**/*.html -r csv -l reports
sniff test/**/*.html -r txt -l reports
```### Options
#### Report Type
`-r` or `-reportType`txt, csv, json.
#### Report Location
`-r` or `-reportLocation`#### Force
`-f` or `-force`#### Quiet
`-q` or `-quiet`