Axe 4.11 Rules Coverage Summary
This document outlines the accessibility issues that axe-core 4.11 can detect and which test pages cover them.
Overview
Axe-core 4.11 includes 100+ automated accessibility checks organized into categories:
Rule Categories
- WCAG 2.0 Level A & AA (68 rules) - Core web accessibility standards
- WCAG 2.1 Level A & AA (26 rules) - Additional modern web accessibility
- WCAG 2.2 Level A & AA (1 rule - disabled by default) - Latest standards
- Best Practices (30+ rules) - Industry accepted practices
- WCAG 2.x Level AAA (3 rules - disabled by default) - Enhanced accessibility
- Experimental (9 rules - disabled by default) - In development
- Deprecated (7 rules - disabled by default) - To be removed
Severity Levels
- Critical - Issues that prevent users with disabilities from accessing content
- Serious - Major issues that substantially impact user experience
- Moderate - Minor issues that affect some users
- Minor - Very minor issues
WCAG 2.0 Level A & AA Rules (Primary Focus)
Text Alternatives (7 rules)
area-alt- Image map areas need alt textimage-alt- Images need alternative textinput-image-alt- Image input buttons need alt textobject-alt- Embedded objects need alt textrole-img-alt- Elements with role=”img” need alt textsvg-img-alt- SVG graphics need accessible textvideo-caption- Videos need captions
Test Page: page1.html (Images & Contrast)
ARIA Attributes (20 rules)
aria-allowed-attr- Element role supports ARIA attributesaria-braille-equivalent- Braille labels have non-braille equivalentsaria-command-name- Buttons, links, menu items have namesaria-conditional-attr- ARIA attributes used per specaria-deprecated-role- No deprecated roles usedaria-hidden-body- aria-hidden not on body elementaria-hidden-focus- Hidden elements not focusablearia-input-field-name- Input fields have accessible namesaria-meter-name- Meter elements have namesaria-progressbar-name- Progressbar elements have namesaria-prohibited-attr- Prohibited ARIA attributes not usedaria-required-attr- Required ARIA attributes presentaria-required-children- Parent ARIA roles have required childrenaria-required-parent- Child ARIA roles have required parentsaria-roles- Valid ARIA role values usedaria-toggle-field-name- Toggle fields have accessible namesaria-tooltip-name- Tooltips have accessible namesaria-valid-attr- Only valid ARIA attributes usedaria-valid-attr-value- ARIA attribute values are valid
Test Page: page4.html (ARIA & Language)
Forms & Labels (4 rules)
label- Form elements have labelsselect-name- Select elements have accessible namesform-field-multiple-labels- Form fields don’t have multiple labels
Test Page: page2.html (Forms & Labels)
Headings & Lists (5 rules)
heading-order- Heading hierarchy is correctempty-heading- Headings have discernible textlist- Lists are structured correctlylistitem- List items are used semanticallydefinition-list- Definition lists are correct
Test Page: page3.html (Buttons & Headings)
Tables (3 rules)
table-duplicate-name- Table caption not same as summarytd-headers-attr- Table cells reference table headers correctlyth-has-data-cells- Table headers describe data cells
Test Page: blog/post1.html (Tables & Data)
Buttons & Links (4 rules)
button-name- Buttons have discernible textinput-button-name- Input buttons have textlink-name- Links have discernible textlink-in-text-block- Links distinguished from surrounding text
Test Page: page3.html (Buttons & Headings)
Frames & Embeds (4 rules)
frame-title- Frames have accessible namesframe-title-unique- Frame titles are uniqueframe-focusable-content- Frames with focusable content not tabindex=-1
Test Page: demo-bad.html (Multiple Violations)
Language & Document (4 rules)
html-has-lang- HTML document has lang attributehtml-lang-valid- Lang attribute has valid valuehtml-xml-lang-mismatch- Lang and xml:lang agreevalid-lang- Lang attributes have valid valuesdocument-title- Document has non-empty title
Test Page: page4.html (ARIA & Language)
Color & Contrast (1 rule)
color-contrast- Contrast meets WCAG 2 AA standards
Test Page: page1.html (Images & Contrast)
Parsing & Structure (4 rules)
duplicate-id-aria- No duplicate ID valuesdlitem- dt/dd elements contained in dlmarquee- Marquee elements not usedblink- Blink elements not used
Test Page: demo-bad.html (Multiple Violations)
Meta & Viewport (3 rules)
meta-refresh- Meta refresh not usedmeta-viewport- Viewport doesn’t disable zoomingautocomplete-valid- Autocomplete attribute is correct
Test Page: auth/login.html (Form Authentication)
Keyboard Interaction (3 rules)
bypass- Skip navigation mechanismscrollable-region-focusable- Scrollable regions keyboard accessibleserver-side-image-map- No server-side image maps
Test Page: demo-bad.html (Multiple Violations)
WCAG 2.1 Level A & AA Rules
Content Sizing (2 rules)
avoid-inline-spacing- Text spacing can be adjustedautocomplete-valid- Autocomplete suitable for field
Test Page: auth/login.html (Form Authentication)
Best Practices Rules (Selected)
Landmark Rules (8 rules)
landmark-banner-is-top-level- Banner at top levellandmark-contentinfo-is-top-level- Contentinfo at top levellandmark-main-is-top-level- Main at top levellandmark-no-duplicate-banner- At most one bannerlandmark-no-duplicate-contentinfo- At most one contentinfolandmark-no-duplicate-main- At most one mainlandmark-one-main- At least one main landmarkregion- All content contained by landmarks
Test Page: blog/post1.html (Tables & Data)
ARIA Best Practices (3 rules)
aria-dialog-name- Dialogs have accessible namesaria-text- role=”text” on elements with no focusable descendantsaria-treeitem-name- Tree items have accessible names
Test Page: page4.html (ARIA & Language)
Accessibility Keys (2 rules)
accesskeys- Accesskey values are uniquetabindex- Tabindex not > 0
Test Page: page2.html (Forms & Labels)
Page Structure (2 rules)
page-has-heading-one- Page has h1 headingregion- Content in landmarks
Test Page: blog/post1.html (Tables & Data)
Test Page Organization
page1.html - Images & Contrast
- Missing alt text on images
- Poor color contrast
- Redundant alt text
Error Types: 3 Axe Rules Tested:
image-alt- Missing image alternative textcolor-contrast- Poor color contrast ratio
page2.html - Forms & Labels
- Missing form labels
- Unlabeled inputs
- Missing field descriptions
- Incorrect label associations
Error Types: 3-4 Axe Rules Tested:
label- Form elements without labelsselect-name- Select elements without accessible namesform-field-multiple-labels- Multiple labels on one field
page3.html - Buttons & Headings
- Icon buttons without accessible text
- Heading hierarchy issues (h1 to h3 skip)
- Duplicate IDs
Error Types: 3 Axe Rules Tested:
button-name- Buttons without discernible textinput-button-name- Input buttons without textheading-order- Incorrect heading hierarchyempty-heading- Headings without text
page4.html - ARIA & Language
- Missing lang attribute on html element
- Invalid ARIA roles
- Missing required ARIA attributes
- Incorrect ARIA attribute usage
Error Types: 4-5 Axe Rules Tested:
html-has-lang- Document missing lang attributehtml-lang-valid- Invalid lang attribute valuearia-roles- Invalid ARIA role valuesaria-required-attr- Missing required ARIA attributesaria-allowed-attr- Unsupported ARIA attributes for rolearia-command-name- ARIA buttons/links without names
page5.html - Media & Captions
- Videos without captions
- Audio without transcripts
- Iframes without titles
- Object elements without alt text
- SVG images without accessible names
Error Types: 5 Axe Rules Tested:
video-caption- Videos without captionsaudio-caption- Audio without captions (deprecated)no-autoplay-audio- Audio autoplaying without controlframe-title- Iframes without accessible namesframe-title-unique- Frame titles not uniqueobject-alt- Object elements without alt textsvg-img-alt- SVG graphics without accessible textrole-img-alt- role=”img” elements without names
page6.html - Tables & Data Structure
- Table headers not associated with data
- Incorrect header attribute references
- Duplicate table captions/summaries
- List items outside containers
- Definition list structure errors
Error Types: 5 Axe Rules Tested:
th-has-data-cells- Table headers describe no data cellstd-headers-attr- Table cells reference invalid headerstable-duplicate-name- Caption duplicates summarytd-has-header- Large table cells lack headers (experimental)listitem- li elements outside ul/ollist- Incorrect list structuredefinition-list- Definition list structure incorrectdlitem- dt/dd outside dl container
auth/login.html - Form Authentication
- Missing field labels
- No autocomplete hints
- Checkbox without label
- Radio buttons without fieldset
- Select without label
- Vague button text
- Meta viewport disables zoom
Error Types: 5 Axe Rules Tested:
label- Form inputs without labelsselect-name- Select elements without namesautocomplete-valid- Missing or invalid autocompletemeta-viewport- Viewport disables zoomingtabindex- Incorrect tabindex values (>0)button-name- Buttons with insufficient text
blog/post1.html - Tables, Landmarks & Heading Order
- Missing lang attribute
- Missing image alt text
- Low contrast text
- Skipped heading levels (h2 to h4)
- Table without proper structure
- Icon buttons without text
- List items outside containers
- Missing main landmark
Error Types: 5 Axe Rules Tested:
html-has-lang- Document missing lang attributeimage-alt- Images without alt textcolor-contrast- Poor contrast ratioheading-order- Skipped heading levelth-has-data-cells- Table headers without descriptionsbutton-name- Icon buttons without nameslistitem- li outside ul/ollandmark-one-main- No main landmarkregion- Content not in landmarks
demo-bad.html - Multiple Violation Types
- Comprehensive test page with 5+ error types
- Duplicate IDs
- Missing captions
- Nested interactive elements
- Keyboard trap issues
- Mixed violations
Error Types: 5+
Coverage Summary
| Category | Rules | Pages Covered | Status |
|---|---|---|---|
| Text Alternatives | 7 | page1.html, page5.html, blog/post1.html | ✅ |
| ARIA Attributes | 20 | page4.html, demo-bad.html | ✅ |
| Forms & Labels | 8 | page2.html, page6.html, auth/login.html | ✅ |
| Headings & Lists | 6 | page3.html, page6.html, blog/post1.html | ✅ |
| Tables | 4 | page6.html, blog/post1.html | ✅ |
| Buttons & Links | 4 | page3.html, page5.html | ✅ |
| Language & Document | 5 | page4.html, blog/post1.html | ✅ |
| Color & Contrast | 1 | page1.html, blog/post1.html | ✅ |
| Parsing & Structure | 5 | demo-bad.html, page6.html | ✅ |
| Meta & Viewport | 3 | auth/login.html | ✅ |
| Media & Embeds | 8 | page5.html | ✅ |
| Keyboard & Navigation | 5 | demo-bad.html, auth/login.html | ✅ |
| Best Practices | 30+ | Multiple pages | ✅ |
Total Pages: 9
- page1.html — Images & Contrast
- page2.html — Forms & Labels
- page3.html — Buttons & Headings
- page4.html — ARIA & Language
- page5.html — Media & Captions (new)
- page6.html — Tables & Data (new)
- auth/login.html — Form Authentication
- blog/post1.html — Blog & Structure
- demo-bad.html — Comprehensive Test
How to Use These Test Pages
- Open the Accessibility Scanner (
a11y-scan.html) - Select “Local Directory” and drag your site folder
- Run a scan to identify violations
- Compare results to expected errors for each page
- Use violations to validate scanner accuracy
Notes
- Each page is designed to test 3-5 specific error types
- Pages use intentional violations to validate scanner detection
- Some rules are combined on pages to maximize coverage
- Best practices rules are tested across multiple pages
- Rules disabled by default (AAA, Experimental) are noted but not extensively tested
Last Updated: January 2026 Axe Version: 4.11 WCAG Versions: 2.0, 2.1, 2.2