axe accessibility check
User guide
- Getting Started
Api
Concepts
Configurations
Configuring webhint
Connectors
Development flow integration
Extensions
Formatters
Hints
- Avoid CSS limits
- Avoid HTTP redirects
- axe accessibility check
- Babel configuration hint set
- Compatibility of CSS, HTML and JavaScript features
- Correct `Content-Type` header
- Correct manifest extension
- Correct viewport
- Detect CSS Reflows
- Disallowed HTTP headers
- External links disown opener
- Has web app manifest
- Highest document mode
- HTTP cache
- Leading '.' in `classList.add` or `classList.remove`
- Manifest has name
- Minify JavaScript
- Modern DOCTYPE
- No `createElement` with SVG
- No `P3P` headers
- No broken links
- No byte-order mark
- No Inline CSS Styles
- No protocol-relative URLs
- No small error pages
- No vulnerable libraries
- Nu HTML test
- Optimal compression
- Optimize images
- Performance budget
- Prefixed CSS first
- scoped-svg-styles
- Specify button type
- SSL server test
- TypeScript configuration hints set
- Unneeded HTTP headers
- Use `Strict-Transport-Security` header
- Use `X-Content-Type-Options` header
- Use Apple touch icon
- Use charset `utf-8`
- Use HTTPS
- Use subresource integrity
- Valid `Set-Cookie` header
- Valid `theme-color`
- Valid manifest
- webpack configuration hints set
Parsers
Server configurations
Troubleshoot
- Api
- Concepts
- Configurations
- Configuring webhint
- Connectors
- Development flow integration
- Extensions
- Formatters
- Hints
- Parsers
- Server configurations
- Troubleshoot
axe accessibility check (axe
)
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.
Why is this important?
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.
What does the hint check?
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.
Hints
- 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)
Can the hint be configured?
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"
}],
...
},
...
} |
How to use this hint?
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.