100

Accessibility

Accessibility Audit Coverage

Semantics

[aria-*] attributes are valid and not misspelled

Rule ID: aria-valid-attr | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

[aria-*] attributes match their roles

Rule ID: aria-allowed-attr | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

[aria-*] attributes have valid values

Rule ID: aria-valid-attr-value | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

ARIA IDs are unique

Rule ID: duplicate-id-aria | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

[role] values are valid

Rule ID: aria-roles | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

Buttons have an accessible name

Rule ID: button-name | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

Form elements have associated labels

Rule ID: label | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

[role]s are contained by their required parent element

Rule ID: aria-required-parent | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

[role]s have all required [aria-*] attributes

Rule ID: aria-required-attr | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

Elements with an ARIA [role] that require children to contain a specific [role] have all required children

Rule ID: aria-required-children | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

Select elements have associated label elements

Rule ID: select-name | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Semantics

[aria-hidden="true"] is not present on the document <body>

Rule ID: aria-hidden-body | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Critical
Pass
Structure

<td> elements in a large <table> have one or more table headers

Rule ID: td-has-header | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Structure

The document does not use <meta http-equiv="refresh">

Rule ID: meta-refresh | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Media

<input type="image"> elements have [alt] text

Rule ID: input-image-alt | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Media

Image elements have [alt] attributes

Rule ID: image-alt | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Media

<video> elements contain a <track> element with [kind="captions"]

Rule ID: video-caption | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
General

Input buttons have discernible text

Rule ID: input-button-name | Ruleset: axe-core 4.11 | User Impact: Critical

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Critical
Pass
Keyboard

[accesskey] values are unique

Rule ID: accesskeys | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Keyboard

Elements with the role=text attribute don't have focusable descendants

Rule ID: aria-text | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Keyboard

[id] attributes on active, focusable elements are unique

Rule ID: duplicate-id-active | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Keyboard

[aria-hidden="true"] elements do not contain focusable descendants

Rule ID: aria-hidden-focus | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Keyboard

No element has a [tabindex] value greater than 0

Rule ID: tabindex | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Keyboard

The page contains a heading, skip link, or landmark region

Rule ID: bypass | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

ARIA input fields have accessible names

Rule ID: aria-input-field-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

ARIA meter elements have accessible names

Rule ID: aria-meter-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

ARIA progressbar elements have accessible names

Rule ID: aria-progressbar-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

ARIA toggle fields have accessible names

Rule ID: aria-toggle-field-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

ARIA tooltip elements have accessible names

Rule ID: aria-tooltip-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

ARIA treeitem elements have accessible names

Rule ID: aria-treeitem-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

button, link, and menuitem elements have accessible names

Rule ID: aria-command-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

Elements with role="dialog" or role="alertdialog" have accessible names

Rule ID: aria-dialog-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

Links have a discernible name

Rule ID: link-name | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

<th> elements and elements with [role="columnheader"/"rowheader"] have data cells they describe

Rule ID: th-has-data-cells | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Semantics

Elements with visible text labels have matching accessible names

Rule ID: label-content-name-mismatch | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

Definition list items are wrapped in <dl> elements

Rule ID: dlitem | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

<dl>'s contain only properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements

Rule ID: definition-list | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

<frame> or <iframe> elements have a title

Rule ID: frame-title | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

[lang] attributes have a valid value

Rule ID: valid-lang | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

List items (<li>) are contained within <ul>, <ol> or <menu> parent elements

Rule ID: listitem | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

Lists contain only <li> elements and script supporting elements (<script> and <template>)

Rule ID: list | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

Cells in a <table> element that use the [headers] attribute refer to table cells within the same table

Rule ID: td-headers-attr | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

Document has a <title> element

Rule ID: document-title | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

<html> element has a [lang] attribute

Rule ID: html-has-lang | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Structure

<html> element has a valid value for its [lang] attribute

Rule ID: html-lang-valid | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Visual

Links are distinguishable without relying on color

Rule ID: link-in-text-block | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Visual

Background and foreground colors have a sufficient contrast ratio

Rule ID: color-contrast | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Media

<object> elements have alternate text

Rule ID: object-alt | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Media

Tables use <caption> instead of cells with the [colspan] attribute to indicate a caption

Rule ID: table-fake-caption | Ruleset: axe-core 4.11 | User Impact: Serious

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Serious
Pass
Keyboard

Skip links are focusable

Rule ID: skip-link | Ruleset: axe-core 4.11 | User Impact: Moderate

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Moderate
Pass
Semantics

No form fields have multiple labels

Rule ID: form-field-multiple-labels | Ruleset: axe-core 4.11 | User Impact: Moderate

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Moderate
Pass
Structure

Heading elements appear in a sequentially-descending order

Rule ID: heading-order | Ruleset: axe-core 4.11 | User Impact: Moderate

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Moderate
Pass
Structure

Document should have one main landmark

Rule ID: landmark-one-main | Ruleset: axe-core 4.11 | User Impact: Moderate

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Moderate
Pass
Structure

<html> element has an [xml:lang] attribute with the same base languge as the [lang] attribute

Rule ID: html-xml-lang-mismatch | Ruleset: axe-core 4.11 | User Impact: Moderate

Guidelines: WCAG 2.1 (A), WCAG 2.0 (A), WCAG 2.2 (A), EN 301 549, RGAA

Moderate
Pass

Guide to Accessibility Bug Severity States

These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so if you detect something that’s not quiet right, please don’t hesitate to report it to us.

When classifying accessibility (a11y) bugs, severity is usually determined by how heavily the issue blocks a user with disabilities from completing a task.

Here are three standard severity states widely used in digital accessibility testing (adapted from industry standards like Deque's axe-core):

1. Critical (Blocker)

The bug completely prevents a user with a disability from accessing core content or completing a primary workflow. There is absolutely no workaround.

  • User Impact: The user is forced to abandon the task entirely.
  • Example: A checkout form's "Submit Payment" button cannot be focused or activated using a keyboard or screen reader.

2. Serious (High)

The bug causes significant barriers and frustration, making it highly difficult for a user to accomplish their goal. A workaround might exist, but it requires extreme effort, deep technical know-how, or a stroke of luck.

  • User Impact: The experience is highly flawed and exclusionary, often causing users to give up out of frustration.
  • Example: A complex navigation menu skips the keyboard focus order entirely, or an important informational infographic completely lacks alt text, leaving screen reader users in the dark about vital data.

3. Moderate (Medium / Minor)

The bug is an inconvenience or a technical violation of WCAG (Web Content Accessibility Guidelines) success criteria, but it does not completely derail the user experience or stop the user from finishing their task.

  • User Impact: The user can still navigate and understand the page, but the experience is clunky or poorly polished.
  • Example: A decorative icon is missing an empty alt="" attribute (causing the screen reader to awkwardly read out the file name like "image-blue-dot-v2.png"), or the visual focus indicator ring has slightly low color contrast against the background but is still somewhat visible.
Accessibility | PANDAUX • UX/UI Design, Engineering & Accessibility Studio