.ux-rule-catalog-table td { vertical-align: top; } .ux-rule-catalog-summary { max-width: 42rem; font-size: 0.9rem; color: var(--forge-text-2); line-height: 1.45; } .ux-rule-catalog-rule code { font-size: 0.85em; } .ux-rule-catalog-table-wrap { overflow-x: visible; }

Accessibility auditor ecosystem

Every rule has a handbook page at a11y-audit-rules/<rule-id-kebab>.html (example: DET.A11Y.GENERIC.LANG). See Accessibility auditor ecosystem for lanes (axe, DET, AI), standards presets, and KS auto-detection. Before/After gallery shows all rule fixtures on one page.

Compliance profiles

Named bundles map procurement frameworks (ADA, Section 508, EN 301 549) to axe tag sets and which DET.A11Y.* rules run. The axe lane carries most WCAG automation (~80+ rules); the 17 deterministic rules are Forge supplements — not one rule per WCAG success criterion.

Automated axe and deterministic checks do not constitute legal conformance, ADA certification, VPAT completion, or WCAG sign-off. Pair with manual testing and, when needed, forge-accessibility Studio evidence.

Profile WCAG Axe tags DET standards tags
wcag20a
WCAG 2.0 Level A
2.0 Awcag2awcag2a, wcag2aa
wcag20aa
WCAG 2.0 Level AA
2.0 AAwcag2a, wcag2aawcag2a, wcag2aa
wcag20aaa
WCAG 2.0 Level AAA
2.0 AAAwcag2a, wcag2aa, wcag2aaawcag2a, wcag2aa, wcag2aaa
wcag21a
WCAG 2.1 Level A
2.1 Awcag2a, wcag21awcag2a, wcag21a, wcag2aa
wcag21aa
WCAG 2.1 Level AA
2.1 AAwcag2a, wcag2aa, wcag21a, wcag21aawcag2a, wcag2aa, wcag21a, wcag21aa
wcag21aaa
WCAG 2.1 Level AAA
2.1 AAAwcag2a, wcag2aa, wcag2aaa, wcag21a, wcag21aawcag2a, wcag2aa, wcag2aaa, wcag21a, wcag21aa, wcag21aaa, wcag22aa
wcag22a
WCAG 2.2 Level A
2.2 Awcag2a, wcag21awcag2a, wcag21a, wcag22aa
wcag22aa
WCAG 2.2 Level AA
2.2 AAwcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aawcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa
wcag22aaa
WCAG 2.2 Level AAA
2.2 AAAwcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa, wcag22aaawcag2a, wcag2aa, wcag2aaa, wcag21a, wcag21aa, wcag21aaa, wcag22aa, wcag22aaa
wcag30bronze
WCAG 3.0 Bronze (draft)
3.0 Bronzewcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aawcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa, wcag30bronze
wcag30silver
WCAG 3.0 Silver (draft)
3.0 Silverwcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aawcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa, wcag30bronze, wcag30silver
wcag30gold
WCAG 3.0 Gold (draft)
3.0 Goldwcag2a, wcag2aa, wcag21a, wcag21aa, wcag22aa, wcag22aaawcag2a, wcag2aa, wcag2aaa, wcag21a, wcag21aa, wcag22aa, wcag22aaa, wcag30bronze, wcag30silver, wcag30gold
ada-title-ii-wcag21aa
ADA Title II — WCAG 2.1 AA (axe mapping)
2.1 AAwcag2a, wcag2aa, wcag21a, wcag21aawcag2a, wcag2aa, wcag21a, wcag21aa
ada-title-iii-wcag21aa
ADA Title III — WCAG 2.1 AA (axe mapping)
2.1 AAwcag2a, wcag2aa, wcag21a, wcag21aawcag2a, wcag2aa, wcag21a, wcag21aa
section508
US Section 508 (axe tag mapping)
2.0+ AAsection508, wcag2aasection508, wcag2aa, wcag21aa
en301549
EN 301 549 (EU ICT, axe tag mapping)
2.1 AAwcag2aa, wcag21aawcag2aa, wcag21aa
best-practice
Deque best-practice
— —best-practicewcag2aa, wcag21aa, wcag22aa

CLI: --standard <profile-id> or --compliance-profile <profile-id>. See docs/design/a11y-audit/compliance-profiles.md.

Standards traceability matrix (RTM)

Maps WCAG 2.1 AA and 2.2 AA success criteria to axe-core rules and Forge DET.A11Y.* / AI.A11Y.* rules. Regenerated by npm run blend-rules.

Automated axe and deterministic checks do not constitute legal conformance, ADA certification, VPAT completion, or WCAG sign-off. Pair with manual testing and, when needed, forge-accessibility Studio evidence.

See docs/design/a11y-audit/standards-traceability.md, standards-traceability-gaps.md, and standards-packs.md (per-profile *.pack.json for compliance scoring).

wcag20aa

Success criteria
38
Covered
26
Manual expected
12
Uncovered gaps
0
Untied rules
0

Coverage by WCAG principle:

Principle Covered Manual expected Uncovered Total
Perceivable77014
Operable102012
Understandable82010
Robust1102

wcag20aaa

Success criteria
61
Covered
31
Manual expected
30
Uncovered gaps
0
Untied rules
0

Coverage by WCAG principle:

Principle Covered Manual expected Uncovered Total
Perceivable913022
Operable137020
Understandable89017
Robust1102

wcag21aa

Success criteria
50
Covered
37
Manual expected
13
Uncovered gaps
0
Untied rules
0

Coverage by WCAG principle:

Principle Covered Manual expected Uncovered Total
Perceivable137020
Operable143017
Understandable82010
Robust2103

wcag22aa

Success criteria
56
Covered
39
Manual expected
17
Uncovered gaps
0
Untied rules
0

Coverage by WCAG principle:

Principle Covered Manual expected Uncovered Total
Perceivable137020
Operable164020
Understandable85013
Robust2103

Lifecycle

Canonical definitions live under docs/design/a11y-audit/. The blender emits registry.generated.json. Handbook pages live in docs/design/a11y-audit/rule-pages/ and compile to showcase/a11y-audit-rules/.

  1. Blendnpm run blend-rules in tools/website-a11y-auditor.
  2. Bootstrap pagespython3 generator/bootstrap_a11y_rule_pages.py (initial/stub refresh).
  3. build-showcase — compiles ecosystem, gallery, and per-rule HTML.

Refresh handbook

cd tools/website-a11y-auditor
npm run blend-rules
cd ../..
python3 generator/bootstrap_a11y_rule_pages.py
python3 generator/build-showcase.py

Coverage summary

Registry fingerprint
b3797010c3ca988bb0d21d5e85d4efece0b9e83f311c2d4981ebbf402df7a7c2
Total rules
89
Deterministic
68
AI
21
Handbook current
89

Deterministic rules (DET.A11Y.*)

Each rule has its own page under a11y-audit-rules/ — click the rule id or Open page for purpose, scope, Before/After, and remediation.

Rule Scope What it checks Examples Open page
DET.A11Y.GENERIC.ACCESSIBLE_AUTHENTICATION currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.APP_FOCUS_TRAP currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.AUTOPLAY_AUDIO currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.CHANGE_ON_REQUEST currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.CHARACTER_SHORTCUTS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.CONCURRENT_INPUT currentgenericgeneric scope · Do not block keyboard or pointer when not essential (2.5.6).Before/AfterOpen page
DET.A11Y.GENERIC.CONSISTENT_HELP currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.CONSISTENT_LABELS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.CONSISTENT_NAV currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.CONTEXT_HELP currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.CONTRAST currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.CONTRAST_ENHANCED currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.DATA_TABLE_HEADERS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.DIAGRAM_ALT currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.DRAGGING_MOVEMENTS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.ERROR_PREVENTION currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.FLASH_THRESHOLD currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.FOCUS_APPEARANCE currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.FOCUS_CONTEXT_CHANGE currentgenericgeneric scope · Avoid navigation or submit on focus (3.2.1).Before/AfterOpen page
DET.A11Y.GENERIC.FOCUS_NOT_OBSCURED currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.FOCUS_OBSCURED_ENHANCED currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.FOCUS_ORDER currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.GLOSSARY_ABBR currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.HOVER_FOCUS_CONTENT currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.IMAGES_ALT currentgenericgeneric scope · Informative images need meaningful alt.Before/AfterOpen page
DET.A11Y.GENERIC.IMAGES_OF_TEXT currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.INPUT_CONTEXT_CHANGE currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.INPUT_PURPOSE currentgenericgeneric scope · Personal data fields need autocomplete tokens (1.3.5).Before/AfterOpen page
DET.A11Y.GENERIC.INTERRUPTIONS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.KEYBOARD_ACCESS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.LABELS_INSTRUCTIONS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.LABEL_IN_NAME currentgenericgeneric scope · Accessible name should include visible label (2.5.3).Before/AfterOpen page
DET.A11Y.GENERIC.LANDMARKS currentgenericgeneric scope · One main landmark and nav when chrome links exist.Before/AfterOpen page
DET.A11Y.GENERIC.LANG currentgenericgeneric scope · Root html must declare lang.Before/AfterOpen page
DET.A11Y.GENERIC.LANG_OF_PARTS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.LINK_PURPOSE currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.LOW_BACKGROUND_AUDIO currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.MEDIA_TRACKS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.MOTION_ACTUATION currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.MOTION_FLASH currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.MOTION_REDUCED currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.MULTIPLE_WAYS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.NON_TEXT_CONTRAST currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.ORIENTATION currentgenericgeneric scope · Do not lock viewport or CSS to one orientation (1.3.4).Before/AfterOpen page
DET.A11Y.GENERIC.PAGE_LOCATION currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.PAUSE_STOP_HIDE currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.POINTER_CANCELLATION currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.POINTER_GESTURES currentgenericgeneric scope · Provide single-pointer alternative to path gestures (2.5.1).Before/AfterOpen page
DET.A11Y.GENERIC.READING_LEVEL_HEURISTIC currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.READING_ORDER currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.REDUNDANT_ENTRY currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.RESIZE_TEXT currentgenericgeneric scope · Viewport must allow zoom; avoid clipping enlarged text (1.4.4).Before/AfterOpen page
DET.A11Y.GENERIC.RE_AUTHENTICATION currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.SECTION_HEADINGS currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.SENSORY_CUES currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.STATUS_MESSAGES currentgenericgeneric scope · Dynamic status needs role or aria-live (4.1.3).Before/AfterOpen page
DET.A11Y.GENERIC.TARGET_SIZE_MIN currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.TEXT_SPACING currentgenericgeneric scope · Avoid clipping when spacing increases (1.4.12).Before/AfterOpen page
DET.A11Y.GENERIC.TIMING currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.TITLE currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.USE_OF_COLOR currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.VIEWPORT currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.GENERIC.VISUAL_PRESENTATION_AAA currentgenericgeneric scope · Deterministic accessibility check (generic scope).Before/AfterOpen page
DET.A11Y.KS.BREADCRUMB currentksks scope · Deterministic accessibility check (ks scope).Before/AfterOpen page
DET.A11Y.KS.HANDBOOK_SINGLE_H1 currentksks scope · One primary h1 inside handbook chapter layout.Before/AfterOpen page
DET.A11Y.KS.HASH_MARKERS currentksks scope · hash and data-ks-hash must agree on visual roots.Before/AfterOpen page
DET.A11Y.KS.PY_HASH_ATTRS currentksks scope · Deterministic accessibility check (ks scope).Before/AfterOpen page
DET.A11Y.KS.REACT_A11Y_ROLE currentksks scope · Deterministic accessibility check (ks scope).Before/AfterOpen page

AI rules (AI.A11Y.*)

Each rule has its own page under a11y-audit-rules/ — click the rule id or Open page for purpose, scope, Before/After, and remediation.

Rule Scope What it checks Examples Open page
AI.A11Y.GENERIC.AUDIO_CONTROL currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.CHANGE_ON_REQUEST currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.CONSISTENT_NAV_JUDGMENT currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.CONTEXT_HELP currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.ERROR_PREVENTION currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.FORM_ERROR_ASSOCIATION currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.INTERRUPTIONS currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.KEYBOARD_NO_EXCEPTION currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.KEYBOARD_TASK_FLOW currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.MEDIA_ALTERNATIVES currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.MULTIPLE_WAYS currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.POINTER_GESTURES_JUDGMENT currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.PRONUNCIATION currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.READING_LEVEL currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.RE_AUTHENTICATION currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.SENSORY_INSTRUCTIONS currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.TIMING_ADJUSTABLE currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.UNUSUAL_WORDS currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.GENERIC.VISUAL_PRESENTATION currentgenericgeneric scope · AI judgment overlay (generic scope).Before/AfterOpen page
AI.A11Y.KS.HANDBOOK_SIDEBAR_LABELS currentksks scope · AI judgment overlay (ks scope).Before/AfterOpen page
AI.A11Y.KS.REGION_LABELING currentksks scope · AI judgment overlay (ks scope).Before/AfterOpen page