WCAG 2.2 Checklist for React Apps: What Changed and How to Comply

Suman SharmaSuman Sharma

Accessibility used to be "nice to have" for many teams. With the European Accessibility Act now in force and procurement requirements tightening, it's part of the job. WCAG 2.2 (published October 2023) is the current target.

What's new in 2.2 (the ones that affect React devs most)

CriterionLevelWhat it means in practice
2.4.11 Focus Not Obscured (Minimum)AASticky headers or cookie banners must not hide the focused element
2.5.7 Dragging MovementsAADrag-and-drop needs a non-drag alternative (buttons)
2.5.8 Target Size (Minimum)AAClick/tap targets at least 24×24 CSS px (or enough spacing)
3.2.6 Consistent HelpAHelp links in the same place across pages
3.3.7 Redundant EntryADon't make users re-type information they already gave
3.3.8 Accessible Authentication (Minimum)AANo cognitive tests to log in. Allow paste and password managers

4.1.1 Parsing was removed.

The classic failures I still see

  • Clickable divs: use <button> and <a>.
  • Inputs without labels: placeholder isn't a label.
  • Modals that don't trap and restore focus.
  • Icon buttons with no accessible name: add aria-label.
  • Colour-only status (red/green) with no text or icon.
  • Disabled paste on password or code fields, which fails 3.3.8.

A React checklist

  • Semantic elements first, ARIA only when needed
  • Every form control has a <label> or aria-labelledby
  • Errors are announced (aria-live) and linked (aria-describedby)
  • Focus moves sensibly on route changes and modal open/close
  • Visible focus styles that aren't hidden by sticky elements
  • Targets ≥ 24×24 px
  • Drag interactions have button alternatives
  • Colour contrast meets AA
  • Maps and charts have text or table alternatives (dashboards)

Testing

  1. Automated: axe (browser extension or @axe-core/playwright in E2E tests), eslint-plugin-jsx-a11y.
  2. Keyboard: unplug the mouse. Can you do everything?
  3. Screen reader: VoiceOver (macOS/iOS) or NVDA (Windows) on key flows.
  4. Zoom: 200% and 400% reflow.

Using an accessible primitive library (e.g. Radix, which shadcn/ui builds on) solves a lot of focus and keyboard behaviour for you.

Frequently asked questions

What's new in WCAG 2.2?

WCAG 2.2 added success criteria including Focus Not Obscured, Dragging Movements, Target Size (Minimum), Consistent Help, Redundant Entry, and Accessible Authentication. It also removed 4.1.1 Parsing.

What level should I aim for?

Level AA is the common legal and procurement target in the EU, UK, and US contexts.

Can automated tools check WCAG compliance?

They catch a portion of issues, such as missing labels and contrast. Many criteria need manual testing with a keyboard and screen reader.

Contact

Get in Touch

Want to call me? book a call and I'll respond in the available time slot. I will ignore all soliciting.