( Rules library )
Every Flag,Explained.
Every rule maps back to a WCAG success criterion, an impact level and a plain-English fix path. Most run automatically in a scan; the rest are flagged for manual review or included as reference guidance.
- Automatically checked
- 96
- Manual & guidance only
- 26
- WCAG criteria
- 47
- Critical checks
- 17
No matching rules. Clear a filter or try a different search term.
Perceivable
These rules make sure people can receive the content in the first place, whether they use a screen reader, captions, zoomed text, high contrast settings, or custom spacing. They cover text alternatives, media, colour, contrast, and presentation details that decide whether information is visible, audible, or available to assistive technology.
- SeriousLevel AARIA meter has no accessible name
- SeriousLevel AARIA progressbar has no accessible name
- CriticalLevel AImage is missing alt text
- SeriousLevel AAlt text is a filename or placeholder
- SeriousLevel AImage map area element is missing alt text
- MinorLevel ADecorative image is not hidden from assistive technology
- SeriousLevel AAlt text is a raw filename
- SeriousLevel AImage input is missing alt text
- SeriousLevel AObject element has no text alternative
- MinorLevel AAlt text repeats adjacent visible text
- SeriousLevel Arole="img" element has no accessible text
- SeriousLevel ASVG image has no accessible label
- CriticalLevel AManual / guidanceAudio element has no caption track
- CriticalLevel AVideo is missing captions
- SeriousLevel AElement role is missing required child elements
- SeriousLevel AARIA element is missing a required parent role
- ModerateLevel ADefinition list structure is invalid
- SeriousLevel ADefinition list item used outside a dl element
- CriticalLevel AForm input has no label
- SeriousLevel AList contains an element other than li
- ModerateLevel AList items are not contained within a list element
- ModerateLevel AManual / guidanceRelated form inputs are missing fieldset and legend
- ModerateLevel AHeading levels are skipped
- SeriousLevel AHidden component exposed to screen readers
- SeriousLevel AInput only uses placeholder as its label
- MinorLevel APresentational markup used instead of semantic elements
- ModerateLevel AManual / guidanceTable header scope value is invalid
- ModerateLevel AManual / guidanceComplex data table is missing a caption
- SeriousLevel ATable is missing header cells
- SeriousLevel ATable cell headers attribute references a missing id
- SeriousLevel ATable header has no associated data cells
- ModerateLevel AManual / guidanceCSS flex or grid order does not match DOM order
- SeriousLevel AACSS locks content to a single orientation
- ModerateLevel AAForm field autocomplete attribute is missing or invalid
- SeriousLevel ALink is not distinguishable from surrounding text without color
- SeriousLevel APage auto-plays audio or video with sound
- SeriousLevel AAText does not have enough colour contrast
- SeriousLevel AAText contrast fails after a hover, focus, or state change
- CriticalLevel AAViewport zoom is disabled
- ModerateLevel AAAManual / guidanceText does not meet enhanced AAA contrast requirements
- SeriousLevel AAManual / guidanceUI component has insufficient contrast
- SeriousLevel AAText spacing overrides break the layout
- SeriousLevel AAManual / guidanceContent on hover or focus cannot be dismissed
Operable
These rules check that people can move through a page and use controls without getting trapped or losing their place. They affect keyboard users, switch device users, screen reader users, and anyone who depends on clear focus order, safe timing, predictable navigation, and reliable interaction patterns.
- SeriousLevel AFocus skipped an interactive element
- SeriousLevel AFrame with focusable content has no accessible name
- CriticalLevel AManual / guidanceInteractive element is not reachable by keyboard
- ModerateLevel AScrollable region must be keyboard accessible
- SeriousLevel AServer-side image map is used
- SeriousLevel AFocus is trapped inside a component
- SeriousLevel AMeta refresh causes automatic page redirect
- SeriousLevel ASession times out without warning
- SeriousLevel APage contains a blinking or scrolling element
- SeriousLevel Amarquee element is used
- ModerateLevel AAAPage uses meta refresh with a time limit
- CriticalLevel AManual / guidanceContent flashes more than 3 times per second
- ModerateLevel AAAPage animations have no reduced motion alternative
- ModerateLevel APage has no skip navigation link
- ModerateLevel ASkip link target is missing or not focusable
- ModerateLevel APage is missing a descriptive title
- MinorLevel AElement in the focus order has no matching interactive role
- SeriousLevel AModal opens without moving focus into it
- ModerateLevel AModal is missing focus management
- SeriousLevel AManual check flagged an incorrect tab order
- ModerateLevel AElement has a positive tabindex
- ModerateLevel ATab order doesn't match visual order
- SeriousLevel ALink must have discernible text
- MinorLevel ALink opens a file with no format or size warning
- ModerateLevel ALink text is generic and gives no context
- ModerateLevel AAHeading is empty or contains only whitespace
- ModerateLevel AAHeading doesn't describe its section
- ModerateLevel AALabel is ambiguous without surrounding context
- ModerateLevel AALabel doesn't make sense in context
- SeriousLevel AAFocused element has no visible focus indicator
- MinorLevel AAALinks with the same accessible name go to different places
- SeriousLevel AAFocused element is hidden behind a sticky header or footer
- SeriousLevel AAManual / guidanceFocus indicator does not meet minimum size or contrast
- SeriousLevel AADragging interaction has no pointer alternative
- ModerateLevel AAInteractive element is too small to tap accurately
Understandable
These rules make interfaces easier to read, predict, and recover from when something goes wrong. They affect people with cognitive, language, learning, memory, or attention needs, and cover page language, labels, instructions, errors, and behaviour that should not surprise users.
- SeriousLevel APage language is not set
- SeriousLevel Alang attribute has an invalid value
- ModerateLevel Alang and xml:lang do not match
- SeriousLevel APage is missing a language declaration
- ModerateLevel AManual / guidanceHTML lang attribute is not a valid BCP 47 tag
- SeriousLevel AAlang attribute on an element has an invalid value
- SeriousLevel AManual / guidanceContext change happens when element receives focus
- ModerateLevel AManual / guidanceLink opens in a new tab without warning text
- SeriousLevel AManual / guidanceContext change happens on input without warning
- ModerateLevel AAManual / guidanceNavigation order is inconsistent across pages
- ModerateLevel AManual / guidanceHelp mechanism location is inconsistent across pages
- SeriousLevel AManual / guidanceForm error is not clearly identified
- ModerateLevel AForm field has more than one label
- SeriousLevel AAManual / guidanceError message does not explain how to fix input
- ModerateLevel AManual / guidanceUser must re-enter information already provided in the same process
- SeriousLevel AAManual / guidanceAccessible authentication requires cognitive function test
Robust
These rules make sure the underlying HTML and accessibility tree can be interpreted consistently by browsers and assistive technology. They cover valid semantics, accessible names, roles, relationships, and markup patterns that screen readers, browser tools, and automation rely on.
- ModerateLevel AManual / guidanceDuplicate ID attributes found on the page
- SeriousLevel AManual / guidanceDuplicate id on active, focusable elements
- ModerateLevel AARIA attribute is not allowed for this role
- SeriousLevel Aaria-braillelabel or aria-brailleroledescription has no equivalent
- SeriousLevel AARIA command has no accessible name
- SeriousLevel AARIA attribute is not valid for the current role value
- SeriousLevel AElement uses a deprecated ARIA role
- CriticalLevel Aaria-hidden="true" is present on the document body
- CriticalLevel AFocusable element is inside an aria-hidden container
- SeriousLevel AARIA input field has no accessible name
- SeriousLevel AARIA attribute is prohibited for this role
- CriticalLevel ARequired ARIA attribute is missing
- CriticalLevel AARIA role is invalid
- SeriousLevel AARIA toggle field has no accessible name
- SeriousLevel AARIA tooltip has no accessible name
- CriticalLevel AARIA attribute name is not valid
- CriticalLevel AARIA attribute has an invalid value
- CriticalLevel AButton or link has no accessible name
- CriticalLevel ADuplicate id used in an ARIA reference
- SeriousLevel Aiframe has no accessible title
- SeriousLevel AFrame title is not unique
- CriticalLevel AInput button has no accessible name
- SeriousLevel AInteractive controls are nested inside each other
- ModerateLevel AManual / guidanceExpandable control is missing aria-expanded
- SeriousLevel AManual / guidanceDialog or modal has no accessible name
- CriticalLevel AInteractive element has no accessible name at all
- SeriousLevel ASelect element has no accessible name
- SeriousLevel AAManual / guidanceStatus messages are not announced to assistive tech