All WCAG 2 Test Rules
Test Rules
These Test Rules have been approved by the Accessibility Guidelines Working Group. They are fully implemented in at least one evaluation tool or methodology.
- HTML page has non-empty title
- Image has non-empty accessible name
- Image button has accessible name
- Link has non-empty accessible name
- Button has non-empty accessible name
- Form field has non-empty accessible name
- meta viewport allows for zoom
- SVG element with explicit role has non-empty accessible name
- HTML page has
langattribute - HTML page language is valid
- HTML page lang and xml:lang attributes have matching values
Proposed Test Rules
Proposed test rules will be published when they have at least one implementation and are approved by the AGWG.
aria-*attribute is defined in WAI-ARIA- Element with
aria-hiddenhas no focusable content - ARIA required context role
- ARIA required owned elements
- ARIA state or property is permitted
- ARIA state or property has valid value
- Attribute is not duplicated
audioorvideoavoids automatically playing audioaudioelement content has text alternativeaudioelement content has transcriptAudioorvideothat plays automatically has no audio that lasts more than 3 secondsaudioorvideothat plays automatically has a control mechanism- Text content that changes automatically can be paused, stopped or hidden
autocompleteattribute has valid value- Block of repeated content is collapsible
- Orientation of the page is not restricted using CSS transform property
- Device motion based changes to the content can be disabled
- Device motion based changes to the content can also be created from the user interface
- Document has an instrument to move focus to non-repeated content
- Document has a landmark with non-repeated content
- Element with
langattribute has valid language tag - Element marked as decorative is not exposed
svgelement with explicit role has non-empty accessible name- Focusable element has no keyboard trap
- Focusable element has no keyboard trap via non-standard navigation
- Focusable element has no keyboard trap via standard navigation
- Form field label is descriptive
- Form field has non-empty accessible name
- Heading is descriptive
- HTML page language subtag matches default language
- HTML page title is descriptive
idattribute value is uniqueiframeelements with identical accessible names have equivalent purposeiframeelement has non-empty accessible name- iframe with negative tabindex has no interactive elements
- Image accessible name is descriptive
- HTML graphics contain no text
- Image not in the accessibility tree is decorative
- Error message describes invalid form field value
- Letter spacing in
styleattributes is not!important - Line height in
styleattributes is not!important - Link is descriptive
- Link in context is descriptive
- Link has non-empty accessible name
- Links with identical accessible names have equivalent purpose
- Links with identical accessible names and context serve equivalent purpose
- Menuitem has non-empty accessible name
metaelement has no refresh delaymetaelement has no refresh delay (no exception)metaviewportallows for zoom- Content has alternative for visual reference
- Object element rendering non-text content has non-empty accessible name
- Element with presentational children has no focusable content
roleattribute has valid value- Element with
roleattribute has required states and properties - Scrollable element is keyboard accessible
- Table header cell has assigned cells
headersattribute specified on a cell refers to cells in the sametableelement- Text has minimum contrast
- Text has enhanced contrast
videoelement auditory content has accessible alternativevideoelement content is media alternative for textvideoelement visual content has description trackvideoelement visual-only content is media alternative for textvideoelement visual-only content has audio track alternativevideoelement visual-only content has transcript- Visible label is part of accessible name
- Word spacing in
styleattributes is not!important