Lab 08: Accessibility Advanced

Time: 30 minutes | Level: Advanced | Docker: docker run -it --rm node:20-alpine sh

Overview

Master advanced accessibility: WCAG 2.2 AAA criteria, ARIA live regions, advanced focus management (inert, :focus-visible), skip navigation, and automated axe-core testing.


Step 1: WCAG 2.2 Overview

WCAG 2.2 Conformance Levels:
  A   — Minimum accessibility (24 criteria)
  AA  — Standard/recommended (38 criteria total)
  AAA — Highest level (62 criteria total)

New in WCAG 2.2 (over 2.1):
  2.4.11 Focus Not Obscured (AA)
  2.4.12 Focus Not Obscured (AAA, enhanced)
  2.4.13 Focus Appearance (AAA)
  2.5.7  Dragging Movements (AA)      — alternatives to drag
  2.5.8  Target Size (AA)             — 24×24px minimum
  3.2.6  Consistent Help (A)          — help in same location
  3.3.7  Redundant Entry (A)          — don't re-ask info
  3.3.8  Accessible Authentication (AA) — no cognitive tests
  3.3.9  Accessible Authentication (AAA, no exceptions)

Step 2: ARIA Live Regions


Step 3: Advanced Focus Management


Step 4: The inert Attribute


Step 5: Skip Navigation


Step 6: ARIA Patterns for Complex Widgets


Step 7: Color Contrast Requirements


Step 8: Capstone — Accessibility Audit

📸 Verified Output:


Summary

Feature
Implementation
WCAG Level

Live region

aria-live="polite"

4.1.3 AA

Assertive alert

role="alert"

4.1.3 AA

Skip link

.skip-link:focus { top: 0 }

2.4.1 A

Inert

element.setAttribute('inert', '')

Focus visible

:focus-visible { outline }

2.4.7 AA

Focus not obscured

scroll-padding-top

2.4.11 AA (2.2)

Target size

min-width/height: 44px

2.5.5 AAA

Color contrast

4.5:1 normal / 3:1 large

1.4.3 AA

Tab widgets

role="tab/tablist/tabpanel"

4.1.2 A

Last updated