[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
[aria-hidden="true"] is not present on the document <body>
The page body is not hidden from screen readers.
Active
[aria-hidden="true"] elements do not contain focusable descendents
Interactive elements are not hidden from screen reader users.
Active
Elements use only permitted ARIA attributes
Accessibility attributes are not used where they are prohibited.
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
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
Skip links are focusable
Skip links are visible and reachable by keyboard so users can bypass navigation.
Active
Touch targets have sufficient size and spacing
Buttons and interactive elements are large enough to tap easily on touch screens.
Active
Cells in a <table> element that use the [headers] attribute refer to table cells within the same table
Table data cells correctly reference their header cells.
Missing
Document has a main landmark
The page has exactly one main content area so screen readers can navigate to it.
Active
presentation-role-conflict
Missing
Elements with visible text labels have matching accessible names
A button or link's visible label matches what screen readers announce.
Active
Tables use <caption> instead of cells with the [colspan] attribute to indicate a caption
Tables use the caption element to label their content.
Active
<td> elements in a large <table> have one or more table headers
Each cell in a large table is linked to a header so screen readers can navigate it.
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.