axe
is the accessibility engine for automated testing of HTML-based
user interfaces. These hints run the recommended set of WCAG 2.1
Level A and Level AA rules from axe-core.
The Web is an increasingly important resource in many aspects of life: education, employment, government, commerce, health care, recreation, and more. It is essential that the Web be accessible in order to provide equal access and equal opportunity to people with disabilities. An accessible Web can also help people with disabilities more actively participate in society.
The Web offers the possibility of unprecedented access to information and interaction for many people with disabilities. That is, the accessibility barriers to print, audio, and visual media can be much more easily overcome through Web technologies.
The document "Social Factors in Developing a Web Accessibility Business Case for Your Organization" discusses how the Web impacts the lives of people with disabilities, the overlap with digital divide issues, and Web accessibility as an aspect of corporate social responsibility.
Another important consideration for organizations is that web accessibility is required by laws and policies in some cases.
From WAI’s Introduction to Web Accessibility.
By default, hint-axe
contains hints which run all the
WCAG 2.1 Level A and Level AA rules included in
axe-core with document
as the target. These rules are
grouped into hints based on their assigned category within axe-core
.
See each contained hint for the specific list of enabled rules within
that group and more information about each rule.
- ARIA (axe/aria)
- Color (axe/color)
- Forms (axe/forms)
- Keyboard (axe/keyboard)
- Language (axe/language)
- Name Role Value (axe/name-role-value)
- Parsing (axe/parsing)
- Semantics (axe/semantics)
- Sensory and Visual Cues (axe/sensory-and-visual-cues)
- Structure (axe/structure)
- Tables (axe/tables)
- Text Alternatives (axe/text-alternatives)
- Time and Media (axe/time-and-media)
This hint uses axe.run
and the default values (WCAG
2.1 Level A and Level AA rules) over the document
.
You can modify what rules or categories are executed via an options
object that follows axe’s documentation.
Some examples of hint configurations that you can have in the
.hintrc
file:
Disable a rule included in the default configuration:
{
"connector": {...},
"formatters": [...],
"hints": {
"axe/language": ["error", {
"html-has-lang": "off"
}],
...
},
...
}
Enable a rule excluded from the default configuration:
{
"connector": {...},
"formatters": [...],
"hints": {
"axe/keyboard": ["error", [
"tabindex"
]],
...
},
...
}
or if you want to set a custom severity:
{
"connector": {...},
"formatters": [...],
"hints": {
"axe/keyboard": ["error", {
"tabindex": "error"
}],
...
},
...
}
Change the severity of an individual rule:
{
"connector": {...},
"formatters": [...],
"hints": {
"axe/color": ["error", {
"color-contrast": "warning"
}],
...
},
...
}
This package is installed automatically by webhint:
npm install hint --save-dev
To use it, activate it via the .hintrc
configuration file:
{
"connector": {...},
"formatters": [...],
"hints": {
"axe/aria": "error",
"axe/color": "error",
...
},
"parsers": [...],
...
}
Note: The recommended way of running webhint is as a devDependency
of
your project.