Accessibility is both a legal requirement (ADA, EU Accessibility Act, AODA) and a quality metric. 1.3 billion people worldwide have some form of disability. Accessible sites also have better SEO (semantic HTML, alt text, proper headings), better mobile UX, and lower legal risk.
WCAG 2.2 has three levels: A (minimum), AA (legally required in most jurisdictions), and AAA (aspirational). The EU Web Accessibility Directive and the revised Section 508 both require AA compliance. The 2024 DOJ ADA Web Rule explicitly mandates WCAG 2.1 AA for state and local government websites, and private businesses with 15+ employees that receive federal funding.
The most common failures in automated scans:
Missing alt text on images: every image needs alt="description" or alt="" for decorative images. Screen readers announce the filename if alt is absent, which is a poor experience.
Insufficient color contrast: WCAG AA requires 4.5:1 ratio for normal text, 3:1 for large text. The blue on light grey that looks fine on a calibrated monitor often fails. Use browser devtools' contrast checker or axe.
Missing form labels: every input needs an associated label element (for attribute matching input id). 'Placeholder' is not a label — it disappears when the user types.
Keyboard trap: modal dialogs must trap focus inside the modal, and return focus to the trigger when closed. Native HTML elements (button, a, input) are focusable by default. Custom components need tabindex="0" and keydown handlers.
Focus indicator removed: CSS 'outline: none' on :focus breaks keyboard navigation. Use ':focus-visible' to show a focus ring only for keyboard navigation without affecting mouse clicks.
Testing stack: axe-core (automated, catches 30-40% of issues), Chrome DevTools accessibility panel, NVDA + Firefox (free screen reader for Windows), and VoiceOver on Mac/iOS for real-device testing.