Skip to content
This repository was archived by the owner on Oct 21, 2021. It is now read-only.

github/accessibilityjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

1b0731d · May 11, 2018
Mar 9, 2018
Oct 6, 2017
Nov 8, 2017
Oct 6, 2017
Nov 6, 2017
Jun 26, 2017
Nov 14, 2017
Oct 27, 2017
May 8, 2018
Mar 9, 2018
Mar 9, 2018
Nov 6, 2017

Repository files navigation

accessibilityjs build status

Client side accessibility error scanner.

Install

npm install accessibilityjs --save

Usage

import {scanForProblems} from 'accessibilityjs'

function logError(error) {
  error.element.classList.add('accessibility-error')
  error.element.addEventListener('click', function () {
    alert(`${error.name}\n\n${error.message}`)
  }, {once: true})
}

document.addEventListener('DOMContentLoaded', function() {
  scanForProblems(document, logError)
})

List of errors:

  • ImageWithoutAltAttributeError
  • ElementWithoutLabelError
  • LinkWithoutLabelOrRoleError
  • LabelMissingControlError
  • InputMissingLabelError
  • ButtonWithoutLabelError
  • ARIAAttributeMissingError

Scenario

In GitHub we use this script to scan for inaccessible elements in development and production staff mode. We style the elements with red borders in the logError function passed in, and add a click handler explaining the reasons.

Red borders are added to offending elements example

An alert pops up on clicking the elements

Browser support

  • Chrome
  • Firefox
  • Safari 6+
  • Internet Explorer 9+
  • Microsoft Edge

Internet Explorer and Edge require a polyfill for closest.

Development

> npm install
> npm test
> npm run example