[aria-*] attributes match their roles
Accessibility attributes are only used where they are supported.
Active
ARIA attributes are used as specified for the element's role
Accessibility attributes are only used when the element's role allows them.
Active
Deprecated ARIA roles were not used
Accessibility roles use current, supported values.
Active
[aria-hidden="true"] is not present on the document <body>
The page body is not hidden from screen readers.
Active
Elements use only permitted ARIA attributes
Accessibility attributes are not used where they are prohibited.
Active
[role]s have all required [aria-*] attributes
Accessibility roles include all required attributes so screen readers can describe the element.
Active
[role] values are valid
Accessibility roles use valid, recognized values.
Active
[aria-*] attributes have valid values
Accessibility attributes use valid values so screen readers can interpret them.
Active
[aria-*] attributes are valid and not misspelled
Accessibility attributes use valid, recognized names.
Active
Buttons have an accessible name
Buttons have labels so screen readers can describe their action.
Missing
Background and foreground colors have a sufficient contrast ratio
Text and background colors meet minimum contrast ratios.
Active
Document has a <title> element
The page has a descriptive title visible in browser tabs and search results.
Active
Heading elements appear in a sequentially-descending order
Page headings follow a logical order without skipping levels.
Active
<html> element has a [lang] attribute
The page declares its language so screen readers use the correct voice.
Active
<html> element has a valid value for its [lang] attribute
The page has a valid language code so screen readers pronounce content correctly.
Active
Image elements have [alt] attributes
Images have descriptive alt text or are marked as decorative.
Active
Links have a discernible name
Links have unique, descriptive text so users know where they go.
Active
Lists contain only <li> elements and script supporting elements (<script> and <template>)
Lists use correct markup so screen readers can announce them properly.
Active
List items (<li>) are contained within <ul>, <ol> or <menu> parent elements
List items are nested inside a valid parent list element.
Active
[user-scalable="no"] is not used in the <meta name="viewport"> element and the [maximum-scale] attribute is not less than 5
The page allows users to zoom in on mobile devices.
Active
Select elements have associated label elements
Dropdown menus have labels so screen readers can identify them.
Active
Touch targets have sufficient size and spacing
Buttons and interactive elements are large enough to tap easily on touch screens.
Active
Document has a main landmark
The page has exactly one main content area so screen readers can navigate to it.
Active
presentation-role-conflict
Active
Image aspect ratio
Images display at their intended proportions.
Active
Valid doctype
The page has a doctype declaration so browsers render it correctly.
Active
Character encoding
The page declares its character encoding so text displays correctly.