#What accessibility is and who it's for
AddedAccessibility (a11y) means people with disabilities can perceive, understand, navigate and operate what you build. That covers people who are blind and use a screen reader (VoiceOver, NVDA, JAWS, TalkBack), people with low vision who zoom to 400% or use high-contrast modes, colour-blind users, deaf and hard-of-hearing users who need captions, people with motor impairments who use only a keyboard, a switch or voice control, and people with cognitive disabilities who need clear language and predictable interfaces. The WHO estimates about 1.3 billion people, 16% of the world's population, have a significant disability. Add temporary and situational cases (a broken wrist, bright sunlight on a phone, a noisy train) and accessible design helps almost everyone.
The mental model for developers: the browser builds a second tree from your DOM, the accessibility tree, and assistive technology reads that tree, not your pixels. Every node in it has a role (button, link, heading), a name ("Save"), states (expanded, checked, disabled) and a value. Most accessibility work is making sure that tree tells the truth, and that everything a mouse user can do, a keyboard user can do too. This chapter checks the tree with Chrome's own computation (el.computedRole, el.computedName) in every demo.
The standard is WCAG 2.2 (Web Content Accessibility Guidelines), a W3C Recommendation since 5 October 2023 (updated 12 December 2024) and, since October 2025, also the international standard ISO/IEC 40500:2025. Its success criteria are grouped under four principles, POUR:
| Principle | Means | Examples of success criteria |
|---|---|---|
| Perceivable | Information can be seen, heard or read by assistive tech | 1.1.1 Non-text Content (alt text), 1.4.3 Contrast (Minimum), 1.2.2 Captions |
| Operable | Everything works with keyboard and other inputs, in reasonable time | 2.1.1 Keyboard, 2.4.7 Focus Visible, 2.5.8 Target Size (Minimum) |
| Understandable | Content and behaviour are predictable and clear | 3.3.1 Error Identification, 3.3.2 Labels or Instructions, 3.2.6 Consistent Help |
| Robust | Works with current and future assistive tech | 4.1.2 Name, Role, Value, 4.1.3 Status Messages |
Each criterion has a level. A is the minimum, AA is what laws and contracts almost always require, AAA is enhanced and not expected for whole sites. Counting the W3C document itself: WCAG 2.2 has 86 success criteria, 31 at level A, 24 at AA and 31 at AAA, so AA conformance means meeting 55 of them. 4.1.1 Parsing is marked obsolete and removed. WCAG 2.2 added nine criteria: 2.4.11 Focus Not Obscured (Minimum) (AA), 2.4.12 Focus Not Obscured (Enhanced) (AAA), 2.4.13 Focus Appearance (AAA), 2.5.7 Dragging Movements (AA), 2.5.8 Target Size (Minimum) (AA), 3.2.6 Consistent Help (A), 3.3.7 Redundant Entry (A), 3.3.8 Accessible Authentication (Minimum) (AA) and 3.3.9 Accessible Authentication (Enhanced) (AAA). The demo measures one of the new ones.
.row { display: flex; align-items: center; margin-bottom: 10px; }
.row button { padding: 0; border: 0; border-radius: 4px; background: rgb(219, 234, 254); color: rgb(30, 64, 175); font: 600 12px/1 sans-serif; }
.s16 button { width: 16px; height: 16px; }
.s24 button { width: 24px; height: 24px; }
.s44 button { width: 44px; height: 44px; }
.tight { gap: 2px; }
.spaced { gap: 10px; }<div class="row s16 tight"><button aria-label="Bold">B</button><button aria-label="Italic">I</button><button aria-label="Underline">U</button></div>
<div class="row s16 spaced"><button aria-label="Bold">B</button><button aria-label="Italic">I</button><button aria-label="Underline">U</button></div>
<div class="row s24 tight"><button aria-label="Bold">B</button><button aria-label="Italic">I</button><button aria-label="Underline">U</button></div>
<div class="row s44 tight"><button aria-label="Bold">B</button><button aria-label="Italic">I</button><button aria-label="Underline">U</button></div>- The criterion: a pointer target must be at least 24 × 24 CSS pixels, unless one of five exceptions applies. The most useful is Spacing: draw a 24px-diameter circle centred on each undersized target; if no circle touches another target or another undersized target's circle, it passes. The test implements exactly that rule.
- Row 1: 16px buttons with a 2px gap. Their centres are 18px apart, so the 24px circles overlap: fails. These are the cramped toolbar icons that users with tremors (or anyone on a phone) mis-tap.
- Row 2: the same 16px buttons with a 10px gap. Centres are now
26px apart, more than one circle's diameter, so the spacing exception applies: passes, without making the icons bigger. - Row 3: 24px buttons pass on size alone, even with a 2px gap. Row 4 is 44px, the AAA level (2.5.5 Target Size (Enhanced)) and close to Apple's and Google's touch-target guidance.
- Each button is a single letter, so it gets its accessible name from
aria-label: Chrome computes "Bold", "Italic", "Underline". A screen reader says "Bold, button", not "B, button". - Automated tools can check this criterion (axe-core has a
target-sizerule), but most of WCAG can't be measured like this; see Testing accessibility.
The legal picture (checked October 2026)
- European Union: the European Accessibility Act (Directive (EU) 2019/882) has applied since 28 June 2025. It covers products and services such as e-commerce, banking, e-books, passenger transport services, telephony, computers, smartphones, ATMs and ticketing kiosks. Microenterprises providing services (fewer than 10 staff and no more than €2 million turnover or balance sheet) are exempt from the service requirements. The technical yardstick is the harmonised standard EN 301 549; version 3.2.1 maps web content to WCAG 2.1 AA. Version 4.1.1, published in September 2026, moves to WCAG 2.2, but as of October 2026 it is not yet cited in the EU's Official Journal (expected around the end of 2026), so 3.2.1 remains the reference.
- United States: ADA Title II (state and local governments). The Department of Justice's 2024 rule requires WCAG 2.1 AA for websites and apps. An interim final rule in April 2026 moved the compliance dates by a year, to 26 April 2027 for entities serving 50,000 people or more and 26 April 2028 for smaller ones and special districts; the standard didn't change.
- United States: ADA Title III (businesses open to the public) has no web regulation, but many lawsuits allege inaccessible sites, and settlements and courts usually point to WCAG 2.x AA. Section 508 requires federal agencies' ICT to meet WCAG 2.0 AA.
- Practically: target WCAG 2.2 AA. It's a superset of 2.1 AA (apart from the removed 4.1.1), so it satisfies the 2.1-based laws and is where the EU standard is heading.
A client says "we need to be WCAG compliant". Which level do you aim for, and which version?
Show answer
WCAG 2.2 Level AA. Level AA is what laws and procurement rules reference; AAA is not expected for whole sites.
- Conformance levels are cumulative: AA means every A and every AA criterion (55 in WCAG 2.2) is met. There is no "AA except for the hard ones".
- The EU (via EN 301 549 v3.2.1) and the US ADA Title II rule cite WCAG 2.1 AA; WCAG 2.2 AA includes all of 2.1 AA except the removed 4.1.1 Parsing, so meeting 2.2 AA satisfies both and anticipates EN 301 549 v4.1.1.
- Conformance is per page (and per complete process, like a checkout), so one inaccessible step breaks the whole flow.
- AAA criteria are still worth adopting where they're cheap, such as 2.5.5's 44px targets or 1.4.6's 7:1 contrast for body text.