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
- axe-core does not perform behavioral testing: it does not resize the viewport, send keyboard input, or compare rendered states. Reflow risk (SC 1.4.10) and Focus Visible behavioral evidence (SC 2.4.7) require the checks documented in Behavioral Accessibility Automation, not axe-core rule scans.
Last Updated: January 2026 Axe Version: 4.11 WCAG Versions: 2.0, 2.1, 2.2