Skip to content

Accessibility

Automated accessibility checks with axe-core and Damdit’s own checks.

a11y.axe.area-alt · Issue · Severity: From the axe impact of each finding

Why it matters. People who cannot see an image map rely on text alternatives to understand each clickable region and where it leads.

How to fix. Add accurate alternative text for informative graphics, or mark decorative graphics so assistive technologies ignore them.

a11y.axe.aria-allowed-attr · Issue · Severity: From the axe impact of each finding

Why it matters. Unsupported ARIA can communicate states or properties that assistive technologies cannot interpret reliably.

How to fix. Prefer native HTML semantics, remove invalid or deprecated ARIA and ensure every remaining role and attribute is valid for the element and state.

A braille-specific label has no valid equivalent

Section titled “A braille-specific label has no valid equivalent”

a11y.axe.aria-braille-equivalent · Review signal (Needs review) · Severity: From the axe impact of each finding

Why it matters. Braille users may receive information that other assistive-technology users cannot access, creating inconsistent control meaning.

How to fix. Keep the custom braille or role description supplemental and provide a valid equivalent semantic name or role.

a11y.axe.aria-command-name · Issue · Severity: From the axe impact of each finding

Why it matters. Screen-reader users need each command to announce what it does before they activate it.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

a11y.axe.aria-conditional-attr · Issue · Severity: From the axe impact of each finding

Why it matters. Conditional ARIA used incorrectly can cause assistive technologies to announce misleading control behavior.

How to fix. Prefer native HTML semantics, remove invalid or deprecated ARIA and ensure every remaining role and attribute is valid for the element and state.

a11y.axe.aria-deprecated-role · Issue · Severity: From the axe impact of each finding

Why it matters. Deprecated roles can make the interface less reliable across browsers and assistive technologies.

How to fix. Prefer native HTML semantics, remove invalid or deprecated ARIA and ensure every remaining role and attribute is valid for the element and state.

The document body is hidden from assistive technologies

Section titled “The document body is hidden from assistive technologies”

a11y.axe.aria-hidden-body · Issue · Severity: From the axe impact of each finding

Why it matters. Hiding the document body from the accessibility tree can make the entire page unavailable to screen-reader users.

How to fix. Remove aria-hidden from the document body and ensure any intended modal isolation hides only the inactive content.

A focusable element is inside aria-hidden content

Section titled “A focusable element is inside aria-hidden content”

a11y.axe.aria-hidden-focus · Issue · Severity: From the axe impact of each finding

Why it matters. Keyboard users can move focus to controls that assistive technologies do not announce, leaving them without context or a usable label.

How to fix. Do not leave focusable controls inside aria-hidden content; manage visibility and focus state together.

An ARIA input field has no accessible name

Section titled “An ARIA input field has no accessible name”

a11y.axe.aria-input-field-name · Issue · Severity: From the axe impact of each finding

Why it matters. Without a name, assistive-technology users may hear a value without knowing what quantity or input it represents.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

a11y.axe.aria-meter-name · Issue · Severity: From the axe impact of each finding

Why it matters. Without a name, assistive-technology users may hear a value without knowing what quantity or condition it represents.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

a11y.axe.aria-progressbar-name · Issue · Severity: From the axe impact of each finding

Why it matters. Screen-reader users need to know what a progress value represents and which task is advancing.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

An element has a prohibited ARIA attribute

Section titled “An element has a prohibited ARIA attribute”

a11y.axe.aria-prohibited-attr · Issue · Severity: From the axe impact of each finding

Why it matters. Unsupported ARIA attributes can give assistive technologies a misleading accessibility representation.

How to fix. Prefer native HTML semantics, remove invalid or deprecated ARIA and ensure every remaining role and attribute is valid for the element and state.

An ARIA role is missing a required attribute

Section titled “An ARIA role is missing a required attribute”

a11y.axe.aria-required-attr · Issue · Severity: From the axe impact of each finding

Why it matters. Missing required ARIA attributes can prevent assistive technologies from understanding a control’s state, value or purpose.

How to fix. Complete the required ARIA states and preserve the required parent-child structure, or replace the widget with native HTML.

An ARIA container has an invalid direct child

Section titled “An ARIA container has an invalid direct child”

a11y.axe.aria-required-children · Issue · Severity: From the axe impact of each finding

Why it matters. Assistive technologies rely on the parent-child roles of ARIA widgets to expose their structure and navigation correctly.

How to fix. Complete the required ARIA states and preserve the required parent-child structure, or replace the widget with native HTML.

An ARIA element is missing its required parent

Section titled “An ARIA element is missing its required parent”

a11y.axe.aria-required-parent · Issue · Severity: From the axe impact of each finding

Why it matters. Broken ARIA hierarchy can make controls, lists or composite widgets incomprehensible to assistive technologies.

How to fix. Complete the required ARIA states and preserve the required parent-child structure, or replace the widget with native HTML.

a11y.axe.aria-roles · Issue · Severity: From the axe impact of each finding

Why it matters. Invalid roles can make assistive technologies interpret the element as the wrong kind of control or ignore its semantics.

How to fix. Prefer native HTML semantics, remove invalid or deprecated ARIA and ensure every remaining role and attribute is valid for the element and state.

a11y.axe.aria-tab-name · Issue · Severity: From the axe impact of each finding

Why it matters. Without a name, screen-reader users hear only that there is a tab and cannot choose the right one.

How to fix. Give every tab a concise accessible name using its visible text, aria-label or aria-labelledby.

a11y.axe.aria-toggle-field-name · Issue · Severity: From the axe impact of each finding

Why it matters. Without a name, assistive-technology users cannot understand the setting controlled by the toggle.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

a11y.axe.aria-tooltip-name · Issue · Severity: From the axe impact of each finding

Why it matters. People using assistive technologies may not receive the explanatory content a tooltip is intended to provide.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

a11y.axe.aria-valid-attr · Issue · Severity: From the axe impact of each finding

Why it matters. Unknown ARIA attributes are ignored or inconsistently interpreted, so users may miss important state or purpose information.

How to fix. Prefer native HTML semantics, remove invalid or deprecated ARIA and ensure every remaining role and attribute is valid for the element and state.

a11y.axe.aria-valid-attr-value · Issue · Severity: From the axe impact of each finding

Why it matters. Invalid ARIA values can make assistive technologies announce the wrong state or ignore the control semantics.

How to fix. Prefer native HTML semantics, remove invalid or deprecated ARIA and ensure every remaining role and attribute is valid for the element and state.

a11y.axe.autocomplete-valid · Issue · Severity: From the axe impact of each finding

Why it matters. Invalid autocomplete tokens can prevent browsers from offering the right assistance and make forms slower to complete.

How to fix. Use a valid autocomplete token and one clear label associated with the form control.

Inline text spacing may block readable zoom

Section titled “Inline text spacing may block readable zoom”

a11y.axe.avoid-inline-spacing · Issue · Severity: From the axe impact of each finding

Why it matters. People who need increased spacing may lose readability when the page overrides those settings.

How to fix. Move restrictive text-spacing styles out of inline declarations so users can adjust spacing with their own stylesheet or browser settings.

a11y.axe.blink · Issue · Severity: From the axe impact of each finding

Why it matters. Blinking content can distract users and may create discomfort or risk for people sensitive to visual motion.

How to fix. Remove blinking or marquee content and replace it with static, user-controlled content.

a11y.axe.button-name · Issue · Severity: From the axe impact of each finding

Why it matters. A button without a discernible name does not tell screen-reader users what action it performs.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

a11y.axe.bypass · Review signal (Needs review) · Severity: From the axe impact of each finding

Why it matters. Keyboard and screen-reader users may have to move through the same navigation repeatedly before reaching the main content.

How to fix. Add a visible-on-focus skip link or another mechanism that lets keyboard users bypass repeated navigation.

Text contrast is below the required minimum

Section titled “Text contrast is below the required minimum”

a11y.axe.color-contrast · Issue · Severity: From the axe impact of each finding

Why it matters. Insufficient contrast can make text or controls unreadable for people with low vision, color-vision differences or a low-quality display.

How to fix. Adjust foreground and background colors to meet the required contrast ratio for the text or control.

a11y.axe.css-orientation-lock · Issue · Severity: From the axe impact of each finding

Why it matters. Orientation locking can make content unavailable to people who need a particular device orientation or use assistive setups.

How to fix. Allow the content to work in both supported orientations unless the function genuinely requires one orientation.

a11y.axe.definition-list · Issue · Severity: From the axe impact of each finding

Why it matters. Invalid list structure makes relationships between terms and descriptions harder to understand for assistive technologies.

How to fix. Use valid list or definition-list elements and keep terms, descriptions and list items inside their required containers.

A definition-list item is outside a definition list

Section titled “A definition-list item is outside a definition list”

a11y.axe.dlitem · Issue · Severity: From the axe impact of each finding

Why it matters. A term or description outside its list loses the semantic relationship assistive technologies rely on.

How to fix. Use valid list or definition-list elements and keep terms, descriptions and list items inside their required containers.

The rendered document title is missing or empty

Section titled “The rendered document title is missing or empty”

a11y.axe.document-title · Issue · Severity: From the axe impact of each finding

Why it matters. A meaningful document title helps users identify the current page and distinguish it from other browser tabs or windows.

How to fix. Add a unique, descriptive HTML title for the document.

An ARIA reference points to a duplicate ID

Section titled “An ARIA reference points to a duplicate ID”

a11y.axe.duplicate-id-aria · Review signal (Needs review) · Severity: From the axe impact of each finding

Why it matters. Duplicate IDs can make aria-labelledby, aria-describedby and other relationships resolve to the wrong element or become ambiguous.

How to fix. Make referenced IDs unique and update every label, description and ARIA relationship that points to them.

a11y.axe.execution_failed · Coverage (what could not be measured) · Severity: Info

Why it matters. The attempted measurement could not provide usable evidence. No website defect or score penalty is asserted.

How to fix. Review the captured evidence and the documented measurement limitations; verify any change using the same source.

a11y.axe.form-field-multiple-labels · Review signal (Needs review) · Severity: From the axe impact of each finding

Why it matters. Multiple competing labels can cause assistive technologies to announce confusing or duplicated instructions.

How to fix. Use a valid autocomplete token and one clear label associated with the form control.

Tab skips an iframe with focusable content

Section titled “Tab skips an iframe with focusable content”

a11y.axe.frame-focusable-content · Issue · Severity: From the axe impact of each finding

Why it matters. Keyboard and screen-reader users can lose context when focus enters embedded content without a clear frame boundary and title.

How to fix. Keep focusable iframe content reachable in the keyboard order and remove an inappropriate tabindex=-1.

a11y.axe.frame-title · Issue · Severity: From the axe impact of each finding

Why it matters. Screen-reader users need a frame title to understand the purpose of embedded content before entering it.

How to fix. Give each embedded frame a unique, descriptive title that explains its content.

a11y.axe.frame-title-unique · Review signal (Needs review) · Severity: From the axe impact of each finding

Why it matters. Duplicate frame titles make it difficult for assistive-technology users to distinguish embedded content.

How to fix. Give each embedded frame a unique, descriptive title that explains its content.

a11y.axe.html-has-lang · Issue · Severity: From the axe impact of each finding

Why it matters. Without a language declaration, assistive technologies may use the wrong pronunciation rules and search engines have less reliable locale context.

How to fix. Set valid, consistent language codes on the document and on any content that changes language.

a11y.axe.html-lang-valid · Issue · Severity: From the axe impact of each finding

Why it matters. An invalid language code prevents browsers and assistive technologies from reliably selecting the correct pronunciation and language behavior.

How to fix. Set valid, consistent language codes on the document and on any content that changes language.

The document language declarations conflict

Section titled “The document language declarations conflict”

a11y.axe.html-xml-lang-mismatch · Issue · Severity: From the axe impact of each finding

Why it matters. Conflicting language declarations can cause different tools to interpret and pronounce the same content differently.

How to fix. Set valid, consistent language codes on the document and on any content that changes language.

An image does not have an accessible alternative

Section titled “An image does not have an accessible alternative”

a11y.axe.image-alt · Issue · Severity: From the axe impact of each finding

Why it matters. People who cannot see an image rely on alternative text to receive its meaning, while decorative images need to be hidden from the accessibility tree.

How to fix. Add accurate alternative text for informative graphics, or mark decorative graphics so assistive technologies ignore them.

a11y.axe.input-button-name · Issue · Severity: From the axe impact of each finding

Why it matters. People using screen readers cannot understand the action of an unnamed input button.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

An image button has no accessible alternative

Section titled “An image button has no accessible alternative”

a11y.axe.input-image-alt · Issue · Severity: From the axe impact of each finding

Why it matters. An image used as a button needs text that communicates the action to users who cannot see the graphic.

How to fix. Add accurate alternative text for informative graphics, or mark decorative graphics so assistive technologies ignore them.

a11y.axe.label · Issue · Severity: From the axe impact of each finding

Why it matters. Labels tell users what information a field expects and allow assistive technologies to announce that purpose with the control.

How to fix. Use a valid autocomplete token and one clear label associated with the form control.

Visible label differs from the accessible name

Section titled “Visible label differs from the accessible name”

a11y.axe.label-content-name-mismatch · Issue · Severity: From the axe impact of each finding

Why it matters. Speech-input users rely on the visible label matching the programmatic name so they can activate a control by saying the words they see.

How to fix. Include the visible label text in the programmatic accessible name so speech-input users can activate the control using the words they see.

Section titled “An inline link is distinguished only by color”

a11y.axe.link-in-text-block · Issue · Severity: From the axe impact of each finding

Why it matters. People who cannot perceive the color difference need another visual cue to identify which words are links.

How to fix. Distinguish inline links from surrounding text with more than color, such as underline or another persistent visual cue.

a11y.axe.link-name · Issue · Severity: From the axe impact of each finding

Why it matters. A link without a discernible name does not tell screen-reader users where it goes or what it does.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

a11y.axe.list · Issue · Severity: From the axe impact of each finding

Why it matters. Correct list structure lets assistive technologies announce that content is a list and communicate its number of items.

How to fix. Use valid list or definition-list elements and keep terms, descriptions and list items inside their required containers.

a11y.axe.listitem · Issue · Severity: From the axe impact of each finding

Why it matters. A list item outside a list loses the context and position information assistive technologies normally provide.

How to fix. Use valid list or definition-list elements and keep terms, descriptions and list items inside their required containers.

a11y.axe.marquee · Issue · Severity: From the axe impact of each finding

Why it matters. Automatically moving text can be difficult to read, impossible to pause and distracting for users with cognitive or visual disabilities.

How to fix. Remove blinking or marquee content and replace it with static, user-controlled content.

The page uses an automatic refresh or redirect

Section titled “The page uses an automatic refresh or redirect”

a11y.axe.meta-refresh · Issue · Severity: From the axe impact of each finding

Why it matters. An automatic refresh or redirect can interrupt reading, reset focus or move users before they are ready.

How to fix. Remove delayed refresh or redirect behavior and use a user-controlled, server-side navigation where a redirect is required.

a11y.axe.meta-viewport · Issue · Severity: From the axe impact of each finding

Why it matters. People with low vision rely on browser zoom; disabling it can make text and controls impossible to perceive or operate.

How to fix. Do not disable browser zoom or text scaling in the viewport configuration.

a11y.axe.nested-interactive · Issue · Severity: From the axe impact of each finding

Why it matters. Nested controls can create an ambiguous focus target and prevent users from understanding or activating the intended action.

How to fix. Remove nested interactive controls and give each action its own unambiguous focus target.

a11y.axe.no-autoplay-audio · Review signal (Needs review) · Severity: Info

Why it matters. Sound that starts on its own can drown out a screen reader, distract visitors and leave them unable to stop it quickly.

How to fix. Don’t autoplay sound, keep it under 3 seconds, or give visitors a visible control to pause or mute it.

An embedded object has no accessible alternative

Section titled “An embedded object has no accessible alternative”

a11y.axe.object-alt · Issue · Severity: From the axe impact of each finding

Why it matters. Users who cannot access embedded object content need a textual description or equivalent alternative to understand its purpose.

How to fix. Add accurate alternative text for informative graphics, or mark decorative graphics so assistive technologies ignore them.

a11y.axe.p-as-heading · Issue · Severity: From the axe impact of each finding

Why it matters. Text that only looks like a heading is missing from the programmatic outline used for screen-reader navigation.

How to fix. Use a semantic heading element instead of styling a paragraph to look like a heading.

a11y.axe.page_render_failed · Coverage (what could not be measured) · Severity: Info

Why it matters. The attempted measurement could not provide usable evidence. No website defect or score penalty is asserted.

How to fix. Review the captured evidence and the documented measurement limitations; verify any change using the same source.

a11y.axe.role-img-alt · Issue · Severity: From the axe impact of each finding

Why it matters. An element exposed as an image needs an accessible name so users who cannot see it can understand its meaning.

How to fix. Add accurate alternative text for informative graphics, or mark decorative graphics so assistive technologies ignore them.

A scrollable region cannot be reached by keyboard

Section titled “A scrollable region cannot be reached by keyboard”

a11y.axe.scrollable-region-focusable · Issue · Severity: From the axe impact of each finding

Why it matters. Keyboard users need to reach a scrollable region before they can move through content that does not fit inside it.

How to fix. Make the scrollable region keyboard reachable and ensure users can move through its content without a pointer.

a11y.axe.select-name · Issue · Severity: From the axe impact of each finding

Why it matters. People using screen readers cannot tell what a select control changes when its name is missing.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

a11y.axe.server-side-image-map · Review signal (Needs review) · Severity: From the axe impact of each finding

Why it matters. Server-side image maps do not expose individual destinations in a form that keyboard and assistive-technology users can navigate reliably.

How to fix. Replace the server-side image map with standard links or a client-side accessible control structure.

A disclosure control has no accessible name

Section titled “A disclosure control has no accessible name”

a11y.axe.summary-name · Issue · Severity: From the axe impact of each finding

Why it matters. A disclosure summary needs a name so users understand what content it will expand or collapse.

How to fix. Give the control a concise accessible name using visible text, a label or the appropriate ARIA naming relationship.

An SVG image has no accessible alternative

Section titled “An SVG image has no accessible alternative”

a11y.axe.svg-img-alt · Issue · Severity: From the axe impact of each finding

Why it matters. An SVG exposed as an image needs accessible text to communicate its meaning to people who cannot see it.

How to fix. Add accurate alternative text for informative graphics, or mark decorative graphics so assistive technologies ignore them.

a11y.axe.table-fake-caption · Issue · Severity: From the axe impact of each finding

Why it matters. A visual caption placed in a data cell may not be announced as the table’s name, making the table harder to identify and navigate.

How to fix. Use a real table caption and keep the caption associated with the table rather than placing it in a data cell.

a11y.axe.target-size · Issue · Severity: From the axe impact of each finding

Why it matters. Small or tightly packed targets are difficult to activate accurately for users with limited dexterity, tremor or a small touch screen.

How to fix. Increase the touch target or add sufficient spacing so adjacent targets can be activated accurately.

a11y.axe.td-has-header · Issue · Severity: From the axe impact of each finding

Why it matters. Screen-reader users need header associations to understand what each data cell represents in a larger table.

How to fix. Correct table header relationships and ensure every data cell can be understood from its associated headers.

A data cell references an invalid table header

Section titled “A data cell references an invalid table header”

a11y.axe.td-headers-attr · Issue · Severity: From the axe impact of each finding

Why it matters. Invalid header references can cause assistive technologies to announce the wrong context for a data cell.

How to fix. Correct table header relationships and ensure every data cell can be understood from its associated headers.

A table header has no associated data cells

Section titled “A table header has no associated data cells”

a11y.axe.th-has-data-cells · Review signal (Needs review) · Severity: From the axe impact of each finding

Why it matters. A header with no associated data creates a misleading table structure and makes navigation less predictable.

How to fix. Correct table header relationships and ensure every data cell can be understood from its associated headers.

a11y.axe.valid-lang · Issue · Severity: From the axe impact of each finding

Why it matters. Invalid language codes prevent assistive technologies from applying the correct pronunciation to content whose language changes within the page.

How to fix. Set valid, consistent language codes on the document and on any content that changes language.

a11y.axe.video-caption · Review signal (Needs review) · Severity: From the axe impact of each finding

Why it matters. People who are deaf or hard of hearing need captions to access dialogue and meaningful sounds in video content.

How to fix. Add captions or an equivalent text track for dialogue and meaningful sounds.

a11y.dom.duplicate_id · Issue · Severity: Medium

Why it matters. Duplicate IDs can associate labels, descriptions and ARIA relationships with the wrong element.

How to fix. Make every ID unique and update labels, ARIA references, anchors and scripts that use it.

a11y.heading.h1_missing · Review signal (Needs review) · Severity: Medium

Why it matters. The primary heading helps visitors and assistive technologies understand the page topic and content structure.

How to fix. Add one primary heading that describes the page topic and verify the heading structure.

a11y.heading.level_skipped · Review signal (Needs review) · Severity: Medium

Why it matters. Skipped heading levels can make the content outline harder to follow for people navigating by headings.

How to fix. Use heading levels in logical order and use CSS for visual sizing rather than skipping levels.

a11y.heading.multiple_h1 · Review signal (Needs review) · Severity: Low

Why it matters. Multiple primary headings can make the page hierarchy ambiguous for visitors and assistive technologies.

How to fix. Keep one primary H1 where possible and use lower-level headings for separate sections.

a11y.keyboard.navigation_failed · Review signal (Needs review) · Severity: Medium

Why it matters. An unchanged focus after a trusted Tab probe warrants review of the sampled keyboard state; it is not proof of a complete keyboard accessibility failure.

How to fix. Manually inspect the recorded focus state, intended modal behavior and macOS keyboard preferences.

a11y.page.html_fetch_failed · Coverage (what could not be measured) · Severity: Info

Why it matters. The attempted measurement could not provide usable evidence. No website defect or score penalty is asserted.

How to fix. Review the captured evidence and the documented measurement limitations; verify any change using the same source.