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.
- autocomplete attribute has valid value
 - Button has non-empty accessible name
 - Element marked as decorative is not exposed
 - Element with lang attribute has valid language tag
 - Form field has non-empty accessible name
 - HTML page has lang attribute
 - HTML page has non-empty title
 - HTML page lang and xml:lang attributes have matching values
 - HTML page lang attribute has valid language tag
 - Image button has non-empty accessible name
 - Image has non-empty accessible name
 - Letter spacing in style attributes is not !important
 - Link has non-empty accessible name
 - Word spacing in style attributes is not !important
 
Proposed Test Rules
Proposed test rules will be published when they have at least one implementation and are approved by the AGWG.
- ARIA required context role
 - ARIA required owned elements
 - ARIA state or property has valid value
 - ARIA state or property is permitted
 - aria-* attribute is defined in WAI-ARIA
 - Attribute is not duplicated
 - Audio and visuals of video element have transcript
 - audio element content has text alternative
 - audio element content has transcript
 - audio element content is media alternative for text
 - audio or video avoids automatically playing audio
 - audio or video that plays automatically has a control mechanism
 - Audio or video that plays automatically has no audio that lasts more than 3 seconds
 - Block of repeated content is collapsible
 - Bypass Blocks of Repeated Content
 - Content has alternative for visual reference
 - DEPRECATED — Image filename is accessible name for image
 - DEPRECATED — video element visual content has description track
 - DEPRECATED — video element visual-only content has description track
 - Device motion based changes to the content can also be created from the user interface
 - Device motion based changes to the content can be disabled
 - Document has a landmark with non-repeated content
 - Document has an instrument to move focus to non-repeated content
 - Document has heading for non-repeated content
 - Element in sequential focus order has visible focus
 - Element with aria-hidden has no focusable content
 - Element with presentational children has no focusable content
 - Element with role attribute has required states and properties
 - Error message describes invalid form field value
 - 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
 - headers attribute specified on a cell refers to cells in the same table element
 - Heading has non-empty accessible name
 - Heading is descriptive
 - HTML element language subtag matches language
 - HTML graphics contain no text
 - HTML page language subtag matches default language
 - HTML page title is descriptive
 - id attribute value is unique
 - iframe element has non-empty accessible name
 - iframe elements with identical accessible names have equivalent purpose
 - iframe with negative tabindex has no interactive elements
 - Image accessible name is descriptive
 - Image not in the accessibility tree is decorative
 - Line height in style attributes is not !important
 - Link in context is descriptive
 - Link is descriptive
 - Links with identical accessible names and context serve equivalent purpose
 - Links with identical accessible names have equivalent purpose
 - Menuitem has non-empty accessible name
 - meta element has no refresh delay
 - meta element has no refresh delay (no exception)
 - meta viewport allows for zoom
 - No keyboard shortcut uses only printable characters
 - Object element rendering non-text content has non-empty accessible name
 - Orientation of the page is not restricted using CSS transform property
 - role attribute has valid value
 - Scrollable element is keyboard accessible
 - svg element with explicit role has non-empty accessible name
 - Table header cell has assigned cells
 - Text content that changes automatically can be paused, stopped or hidden
 - Text has enhanced contrast
 - Text has minimum contrast
 - video element auditory content has accessible alternative
 - video element auditory content has captions
 - video element content is media alternative for text
 - video element visual content has accessible alternative
 - video element visual content has audio description
 - video element visual content has strict accessible alternative
 - video element visual-only content has accessible alternative
 - video element visual-only content has audio track alternative
 - video element visual-only content has transcript
 - video element visual-only content is media alternative for text
 - Visible label is part of accessible name
 - Zoomed text node is not clipped with CSS overflow