accessibilityjs/README.md

53 строки
1.4 KiB
Markdown
Исходник Обычный вид История

# accessibilityjs
Client side accessibility error scanner.
## Usage
```javascript
import scanForProblems from 'accessibilityjs'
2017-10-12 12:26:27 +03:00
function logError(error) {
error.element.addEventListener('click', function () {
alert(`${error.name}\n\n${error.message}`)
}, {once: true})
if (onPageWarning) error.element.classList.add('accessibility-error')
}
document.addEventListener('ready', function() {
scanForProblems(document, logError)
})
```
2017-10-12 12:27:32 +03:00
List of errors:
- `ImageWithoutAltAttributeError`
- `ElementWithoutLabelError`
- `LinkWithoutLabelOrRoleError`
- `LabelMissingControl`
- `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](https://user-images.githubusercontent.com/1153134/31491689-bb8d8068-af0d-11e7-862b-01b059e13ba1.png)
![An alert pops up on clicking the elements](https://user-images.githubusercontent.com/1153134/31491972-c8547512-af0e-11e7-9d0d-db116eb7cf58.png)
## Browser support
- Chrome
- Firefox
2017-09-28 10:56:08 +03:00
- Safari 6+
- Internet Explorer 9+
- Microsoft Edge
Internet Explorer and Edge require a polyfill for [`closest`](https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill).
## Development
Test script changes with `test.html`.