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
- audioor- videoavoids automatically playing audio
- audioelement content has text alternative
- audioelement content has transcript
- Audioor- videothat plays automatically has no audio that lasts more than 3 seconds
- audioor- videothat 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 unique
- iframeelements with identical accessible names have equivalent purpose
- iframeelement 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 delay
- metaelement has no refresh delay (no exception)
- meta- viewportallows 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 same- tableelement
- Text has minimum contrast
- Text has enhanced contrast
- videoelement auditory content has accessible alternative
- videoelement content is media alternative for text
- videoelement visual content has description track
- videoelement visual-only content is media alternative for text
- videoelement visual-only content has audio track alternative
- videoelement visual-only content has transcript
- Visible label is part of accessible name
- Word spacing in styleattributes is not!important