Accessibility issues affect users who rely on assistive technologies — screen readers, keyboard navigation, voice control, and screen magnifiers. In many jurisdictions, web accessibility compliance is legally required.Documentation Index
Fetch the complete documentation index at: https://docs.qaos.machdel.com/llms.txt
Use this file to discover all available pages before exploring further.
missing-form-labels
Medium WCAG 1.3.1, 2.4.6 What it is Form input elements have no associated label, making their purpose unclear to screen readers and assistive technologies. Why it matters Screen reader users navigate forms by cycling through labeled inputs. An unlabeled field is announced as “edit text” or “text field” with no indication of what it’s for. This makes the form effectively unusable without sight. How QAOS detects it The agent scans the DOM for<input>, <textarea>, and <select> elements that lack an associated <label> (via for/id pairing), aria-label, or aria-labelledby attribute.
Examples
<label for="...">, or provide an accessible name via aria-label or aria-labelledby. Placeholder text is not a substitute for a label.
button-no-text
Medium WCAG 4.1.2 What it is Buttons have no visible text, making their purpose ambiguous to all users — especially those who cannot see icons or who use screen readers. How QAOS detects it The agent captures a screenshot and identifies buttons that contain no visible text content — including icon-only buttons where the icon has no accessible label. Examplesaria-label with a descriptive action. For buttons with hidden text, use sr-only CSS or aria-label instead of display:none:
missing-alt-text
Medium WCAG 1.1.1 What it is<img> elements have no alt attribute at all. This is distinct from an empty alt="" — a missing alt attribute causes screen readers to announce the image filename instead.
How QAOS detects it
The agent scans the DOM for <img> elements where the alt attribute is absent entirely.
Examples
alt attribute to every <img> element. For images that convey information, write a concise description. For purely decorative images, use alt="" (empty string) to tell screen readers to skip it.
empty-alt-informative-image
Low WCAG 1.1.1 What it is Images with an emptyalt="" attribute that actually convey meaningful information — such as charts, infographics, or product photos that a user needs to understand the content.
How QAOS detects it
The agent identifies <img alt=""> elements and uses LLM-based analysis to determine whether the image appears to convey information (based on filename, surrounding context, and image content).
Examples
alt="" for genuinely decorative images:
insufficient-color-contrast
Medium WCAG 1.4.3 What it is Text elements have a foreground-to-background color contrast ratio below the WCAG minimum of 4.5:1 for normal text (3:1 for large text). This makes text hard or impossible to read for users with low vision or color blindness. How QAOS detects it The agent computes the actual contrast ratio between text and background colors from computed CSS styles and flags any text below the threshold. Examplestext-too-small
Medium WCAG 1.4.4 What it is Text has a font size below 14 pixels, making it difficult to read — especially for older users, users with low vision, or users on high-density displays. How QAOS detects it The agent computes the rendered font size of all text nodes from computed CSS and flags any below 14px. How to fix Set a minimum font size of 14px for all body text. Use relative units (em, rem) rather than pixels so users can scale text with browser settings:
not-keyboard-reachable
High WCAG 2.1.1 What it is Interactive elements — elements that respond to click events — cannot be reached by tabbing with the keyboard. This affects<div> or <span> elements used as buttons, custom dropdowns, and any non-native interactive component that lacks a tabindex attribute.
Why it matters
Users who cannot use a mouse (motor disabilities, power users, keyboard navigators) rely entirely on the Tab key to reach interactive elements. An unreachable element is completely inaccessible to them.
How QAOS detects it
The agent identifies elements with click handlers or interactive roles that are not natively focusable (not a <button>, <a>, <input>, etc.) and checks whether they have tabindex or appropriate ARIA role.
Examples
<button>, <a>, <input>) wherever possible — they are focusable by default. For custom interactive elements, add tabindex="0" and the appropriate ARIA role.
not-keyboard-activatable
High WCAG 2.1.1 What it is Elements that can be focused via keyboard (either natively or viatabindex) but cannot be activated using keyboard input. Typically custom button-like elements that only respond to mouse clicks, not Enter or Space.
How QAOS detects it
The agent tabs to focusable elements and presses Enter and Space, checking whether the element responds in the same way as a mouse click.
Examples
<button> which handles this automatically.
missing-focus-indicator
Medium WCAG 2.4.7 What it is Interactive elements have their default focus ring removed via CSS (outline: none or outline: 0) with no alternative focus indicator provided.
Why it matters
Keyboard users need to know which element is currently focused. Without a visible focus indicator, keyboard navigation becomes blind navigation.
How QAOS detects it
The agent tabs to interactive elements and captures a screenshot, using LLM-based analysis to determine whether a visible focus indicator is present.
How to fix
Never use outline: none without providing an alternative focus style:
color-only-distinction
High WCAG 1.4.1 What it is Critical information is conveyed using color as the only visual differentiator — no text label, symbol, icon, pattern, or shape difference accompanies the color cue. Why it matters Approximately 8% of men and 0.5% of women have some form of color vision deficiency. When color is the sole indicator of meaning (e.g., a red border meaning “required”), those users receive no information at all. This affects all colorblind users, as well as users on monochrome displays. How QAOS detects it The agent captures a screenshot and analyzes elements where color appears to be the sole distinguishing factor — for example, required fields marked only with a red border and no asterisk, text, or icon. Examples- Required fields: add an asterisk or “required” label text
- Status indicators: add text labels (“Error”, “Success”, “Warning”)
- Charts: use patterns or direct labels in addition to color coding
image-as-text
Medium WCAG 1.4.5 What it is Meaningful text is rendered as a rasterized image (PNG, JPG, GIF) rather than actual HTML text. This makes the text unzoomable, unsearchable, unable to be restyled, and often missing from screen reader output. Why it matters Users who need to zoom text, adjust font size, change contrast, or copy text cannot do so when the “text” is actually a pixel image. Search engines also cannot index image text, reducing discoverability. How QAOS detects it The agent captures a screenshot and uses visual analysis to identify images that appear to contain meaningful text — such as headings, promotional messages, or navigation labels — without an equivalent readable text alternative. Examplesalt attribute.
iframe-missing-title
Medium WCAG 4.1.2 What it is An<iframe> element has no title attribute, making it impossible for screen reader users to understand the purpose of the embedded content before deciding to enter it.
Why it matters
Screen readers announce iframes by their title before allowing the user to enter them. Without a title, the iframe is announced as “frame” with no indication of what it contains — forcing users to enter and explore just to understand the context.
How QAOS detects it
The agent scans the DOM for <iframe> elements with no title attribute.
Examples
title attribute to every <iframe>: