ARIA
Roles, states and properties — the layer that tells assistive technology what a custom control is and what it is doing.
- Elements must only use supported ARIA attributes
aria-allowed-attrWCAG 2.0 A - ARIA role should be appropriate for the element
aria-allowed-roleBest practice - ARIA commands must have an accessible name
aria-command-nameWCAG 2.0 A - ARIA dialog and alertdialog nodes should have an accessible name
aria-dialog-nameBest practice - aria-hidden="true" must not be present on the document body
aria-hidden-bodyWCAG 2.0 A - ARIA input fields must have an accessible name
aria-input-field-nameWCAG 2.0 A - ARIA progressbar nodes must have an accessible name
aria-progressbar-nameWCAG 2.0 A - Required ARIA attributes must be provided
aria-required-attrWCAG 2.0 A - Certain ARIA roles must contain particular children
aria-required-childrenWCAG 2.0 A - Certain ARIA roles must be contained by particular parents
aria-required-parentWCAG 2.0 A - ARIA toggle fields must have an accessible name
aria-toggle-field-nameWCAG 2.0 A - ARIA attributes must conform to valid values
aria-valid-attr-valueWCAG 2.0 A
Audio and video
Captions and alternatives for time-based media.
Colour
Contrast and the use of colour as the only carrier of meaning.
Document semantics
Headings and landmarks — the map a screen-reader user navigates by.
Forms
Labels, autofill and the parts of a form a screen reader has to announce.
- autocomplete attribute must be used correctly
autocomplete-validWCAG 2.1 AA - Form field must not have multiple label elements
form-field-multiple-labelsWCAG 2.0 A - Form elements must have labels
labelWCAG 2.0 A - Form elements should have a visible label
label-title-onlyBest practice - Select element must have an accessible name
select-nameWCAG 2.0 A
Keyboard and focus
Whether the page can be operated, and left, without a mouse.
- Page must have means to bypass repeated blocks
bypassWCAG 2.0 A - Interactive controls must not be nested
nested-interactiveWCAG 2.0 A - All page content should be contained by landmarks
regionBest practice - Scrollable region must have keyboard access
scrollable-region-focusableWCAG 2.0 A - Elements should not have tabindex greater than zero
tabindexBest practice
Language
Declaring the language so text is pronounced correctly.
- <html> element must have a lang attribute
html-has-langWCAG 2.0 A - <html> element must have a valid value for the lang attribute
html-lang-validWCAG 2.0 A - HTML elements with lang and xml:lang must have the same base language
html-xml-lang-mismatchWCAG 2.0 A - lang attribute must have a valid value
valid-langWCAG 2.0 AA
Lists and structure
Whether grouped content is marked up as the group it is.
- <dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements
definition-listWCAG 2.0 A - <ul> and <ol> must only directly contain <li>, <script> or <template> elements
listWCAG 2.0 A - <li> elements must be contained in a <ul> or <ol>
listitemWCAG 2.0 A
Markup integrity
Duplicate identifiers and other structural defects that confuse assistive technology.
Name, role, value
Whether each control announces what it is and what it does.
Tables
Header association — without it a data table is read as a stream of unrelated cells.
Text alternatives
Whether non-text content has an equivalent someone can hear.
- Active <area> elements must have alternative text
area-altWCAG 2.0 A - Documents must have <title> element to aid in navigation
document-titleWCAG 2.0 A - Frames must have an accessible name
frame-titleWCAG 2.0 A - Images must have alternative text
image-altWCAG 2.0 A - Image buttons must have alternative text
input-image-altWCAG 2.0 A - <object> elements must have alternative text
object-altWCAG 2.0 A - [role="img"] and [role="image"] elements must have alternative text
role-img-altWCAG 2.0 A - <svg> elements with an img or image role must have alternative text
svg-img-altWCAG 2.0 A - <video> elements must have captions
video-captionWCAG 2.0 A
Viewport and targets
Zoom, scaling and how large an interactive target is.
Which of these does your site trip?
The scan runs every rule on this page against four of your own pages and tells you which ones fire, where, and how many times.