WAI-ARIA Authoring Practices, maintained by ARIA WG https://www.w3.org/WAI/ARIA/
mcking65 Regression Tests: Add test infra and tests for 27 example pages (pull #…

Add Aava.js regression test infra and tests for 27 example pages:

Latest commit 844a7f2 Sep 19, 2018
Failed to load latest commit information.
common TRAVIS-CI update from aria-common Jul 19, 2018
examples Regression Tests: Add test infra and tests for 27 example pages (pull #… Sep 19, 2018
img Merge branch 'master' into Jason's issue-540 changes. Feb 19, 2016
scripts chore: Pull gh-pages building to deploy script (pull #445) Aug 15, 2018
test Regression Tests: Add test infra and tests for 27 example pages (pull #… Sep 19, 2018
.editorconfig Set tab size to 2 spaces Sep 25, 2016
.eslintignore chore: Update ESLint task globbing Apr 23, 2018
.eslintrc.json Change JSCS to ESLint (#422) Jul 20, 2017
.gitignore Introduce JSCS to the Travis CI run (#113) Sep 24, 2016
.pr-preview.json Update .pr-preview.json May 1, 2018
.travis.yml Regression Tests: Add test infra and tests for 27 example pages (pull #… Sep 19, 2018
.vnurc Expand VNU validator file pattern (pull #779) Aug 15, 2018
CONTRIBUTING.md Relicense (pull #394) Nov 19, 2017
LICENSE.md Relicense (pull #394) Nov 19, 2017
README.md Read Me: Add link to code guide Apr 16, 2018
aria-practices-DeletedSectionsArchive.html Editorial: Fix multiple instances of repeated words (pull #867) Aug 31, 2018
aria-practices.html Editorial: Fix multiple instances of repeated words (pull #867) Aug 31, 2018
package-lock.json Regression Tests: Add test infra and tests for 27 example pages (pull #… Sep 19, 2018
package.json Regression Tests: Add test infra and tests for 27 example pages (pull #… Sep 19, 2018
respec-config.js Merge pull request #655 from nschonni/eslint-glob May 23, 2018
w3c.json ARIA WG Jul 31, 2018


Build Status

WAI-ARIA: Authoring Practices Guide

This repository maintains the WAI-ARIA Authoring Practices Guide.

Please do not provide commit access to this repository without coordination.

How the work is organized

  • Work is planned and prioritized in our milestones. Each milestone corresponds to a working draft or release published to w3.org.
  • Work is organized by topic in our projects. Each project corresponds to a type of design pattern or section of guidance.
  • The scope of work and roadmap are described in the project wiki.


  1. Comment in an existing issue or raise a new issue, expressing your willingness to help and briefly summarizing the nature of your proposed resolution.
  2. An editor will confirm there are no conflicting plans and, if needed, provide guidance.
  3. Be sure you have ESLint configured as described below.
  4. Read our wiki page about submitting pull requests.
  5. Do some fabulous work and submit a pull request.

Note: Please feel free to ask questions either through an issue or on the Authoring Practices Task Force mailing list.

Code conformance

  • All HTML should validate in the NU HTML Validator. Exceptions to this rule are warnings and errors related to future ARIA features that are not yet implemented.
  • To keep code in this repository consistent:
    • Read the code guide
    • Use a text editor that supports EditorConfig.
    • Make sure All code tests clean with ESLint.

Running ESLint, the pluggable linting utility for JavaScript and JSX

ESLint is an automated code style checker. We use it to ensure common code styling practices in this repository. Pull requests with ESLint errors will not be merged.

Setup ESLint so you can run it locally

  1. If you do not already have node.js installed, go to the node installer
  2. When you install Node, NPM is included.
  3. In a terminal window from the directory that contains the aria-practices repository, run npm install. A successful install will display a tree of installed packages.

Test and fix your code

  1. Open a terminal window to the directory that contains the aria-practices repository
  2. The repository has a script defined that will test all JavaScript in the examples directory. To run it, execute the command npm test.
  3. Many errors can be fixed automatically with the command npm run fix.
  4. After running fix, test again to see what you need to fix manually.

When the linter encounters errors, it will report them in the console. The error report will contain the file name and line number, and it will indicate the character or place in the line that raised the style violation. To fix an error, satisfy the change that the violation indicates.

For example, here is an error for an invalid variable name style. Variables must follow a camelCase convention.

  19:8  error  Identifier 'value_nodes' is not in camel case  camelcase

The error occurred in examples/slider/js/text-slider.js, on line 19 and the offending character is indicated by the number 8 after the colon. Change the variable value_nodes to valueNodes in your source file to eliminate this error.

To see the complete list of style rules that are applied by ESLint, review the .eslint.json file in the root of the project.

Editorial documentation

General documentation for editing ARIA deliverables is available in the ARIA repository. Some of that documentation covers technical procedures not needed for this specification.

How to update document snapshot

Note: These instructions are for editors of the APG who have repository commit access.

  1. Go to the editors draft on rawgit
  2. Press the ReSpec button (top right hand corner)
  3. Select 'Save snapshot'
  4. Select 'Save as HTML'
  5. Open the gh-pages branch of the aria-practices repository
  6. Open index.html in your preferred editor
  7. Overwrite contents of index.html with the snapshot copy you saved
  8. Commit and push changes
  9. Review changes at GitHub pages APG snapshot