Robust -- WCAG Principle 4
Content must be robust enough that it can be interpreted reliably by a wide variety of user agents, including assistive technologies.
What Does "Robust" Mean?
Robust is the fourth and final top-level principle in WCAG 2.2 [1], closing out the POUR acronym -- Perceivable, Operable, Understandable, Robust. The principle states that content must be robust enough that it can be interpreted by a wide variety of user agents, including assistive technologies. Where Perceivable, Operable, and Understandable govern the user-facing surface of the page, Robust governs the contract between the page and the software that reads it: the browser, the screen reader, the voice-control engine, the switch interface, the braille display, and whatever user agent ships next year that nobody has written yet. A page fails the principle when it renders correctly in a sighted developer's browser but exposes something ambiguous, missing, or malformed to the accessibility tree that every assistive technology consumes.
The failure mode is concrete: a custom toggle built from a <div> with a click handler exposes no role and no state, so a screen reader announces it as a generic group rather than "button, pressed"; a modal dialog that omits role="dialog" and aria-modal="true" leaves virtual-cursor users free to navigate the obscured background content; an inline form-validation message injected into the DOM after submission is never announced because it is not wired to a live region, leaving a screen-reader user staring at a form that silently refused to submit. Each is a robustness failure because the visual rendering is fine but the programmatic surface -- the machine-readable name, role, state, and status stream that assistive technology depends on -- is missing or wrong.
The principle decomposes into a single guideline, 4.1 Compatible, which in WCAG 2.2 contains two success criteria: 4.1.2 Name, Role, Value at Level A and 4.1.3 Status Messages at Level AA. Readers coming from WCAG 2.0 or 2.1 should note that 4.1.1 Parsing was removed in WCAG 2.2 and is no longer a success criterion [1]; the requirement it used to carry -- that start tags, end tags, and attributes be well-formed and nesting correct -- was made redundant by modern HTML parsers, which recover from malformed markup deterministically, and by the HTML specification's own conformance requirements. A build that would have tripped 4.1.1 in 2018 is no longer a WCAG failure in 2.2, though it may still be an HTML conformance bug worth fixing on its own merits. This is a common point of confusion in audit reports carried over from older rulesets.
Guidelines Under Robust
4.1 Compatible
Guideline 4.1 is the compatibility contract between the page and every user agent that consumes it. 4.1.2 Name, Role, Value (Level A) [2] requires that for every user-interface component -- every form element, every link, every custom widget -- the name and role can be programmatically determined, states and values can be programmatically set where applicable, and notification of changes is available to user agents. The failure mode is concrete: a custom dropdown built on <div> and <span> with a click handler exposes no role, no expanded state, no selected value, and no way for a screen reader to tell the user what it is or what it is doing. The remediation is either to use the native HTML control that already carries the correct semantics (<select>, <button>, <input type="checkbox">), or to implement the role, state, property, and keyboard-interaction pattern for the widget from the WAI-ARIA Authoring Practices Guide [3] and validate the ARIA usage against ARIA in HTML [4], which defines which roles and attributes are permitted on which host elements. 4.1.3 Status Messages (Level AA) [5] extends the same contract to dynamic notifications -- form-validation errors, search-result counts, shopping-cart updates, toast messages -- that appear without a focus change. The requirement is that such messages be exposed programmatically through an appropriate role or property (role="status", role="alert", aria-live) so that assistive technology can announce them without the user having to hunt for them. The failure mode is a form that injects "Your password is too short" into the DOM on blur with no live-region wiring; sighted users see the text, screen-reader users never hear it, and the form appears to be silently rejecting their input. Readers migrating from WCAG 2.0 or 2.1 should note again that 4.1.1 Parsing has been removed from WCAG 2.2 [1] and should not appear in a 2.2 conformance report.
References
- [1] W3C (2023). Web Content Accessibility Guidelines (WCAG) 2.2. W3C, Accessed 2026-04-07. https://www.w3.org/TR/WCAG22/ ↩ ↩ ↩
- [2] W3C (2023). Understanding Success Criterion 4.1.2: Name, Role, Value. W3C, Accessed 2026-04-07. https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html ↩
- [3] W3C (2024). WAI-ARIA Authoring Practices Guide. W3C, Accessed 2026-04-07. https://www.w3.org/WAI/ARIA/apg/ ↩
- [4] W3C (2026). ARIA in HTML. W3C, Accessed 2026-04-07. https://www.w3.org/TR/html-aria/ ↩
- [5] W3C (2023). Understanding Success Criterion 4.1.3: Status Messages. W3C, Accessed 2026-04-07. https://www.w3.org/WAI/WCAG22/Understanding/status-messages.html ↩