Allyable Accessibility Test Page

This page intentionally contains accessibility issues for each of the 16 WCAG rules

Focus Contrast Headings Landmarks
focus-visibility

Focus Visibility

WCAG 2.4.7 (AA)

Focus outlines are suppressed via CSS outline: none. Keyboard users cannot see which element is active.

Violation — no visible focus
Link with no focus ring
color-contrast

Color Contrast

WCAG 1.4.3 (AA)

Text must have a contrast ratio of at least 4.5:1 (normal) or 3:1 (large text).

Violation — low contrast text

This light gray text on a light background fails the contrast requirement.

Another low contrast paragraph — barely readable.

Small text with very poor contrast ratio.

Pass — good contrast

This dark text on a light background passes easily.

heading-structure

Heading Structure

WCAG 1.3.1 (A)

Heading levels should not skip (e.g., h1 → h3 without h2).

Violation — skipped heading levels

This h4 skips h2 and h3

This h6 skips h5

skip-link

Skip Navigation Link

WCAG 2.4.1 (A)

The page is missing a "Skip to main content" link as the first focusable element. Keyboard users must tab through every navigation item.

Violation — no skip link at page top

There is no <a href="#main">Skip to content</a> before the navigation.

landmark-regions

Landmark Regions

WCAG 1.3.1 (A)

This page is missing <main>, <nav>, and <footer> semantic landmarks.

Violation — no semantic landmarks

Content is wrapped in generic <div> elements instead of semantic HTML5 landmarks.

missing-tabindex

Missing Tabindex

WCAG 2.1.1 (A)

Interactive elements must be reachable via the Tab key.

Violation — not keyboard reachable
Clickable div (no tabindex)
Span with role=button (no tabindex)
clickable-non-semantic

Non-Semantic Clickable Elements

WCAG 4.1.2 (A)

Generic elements used as buttons without proper ARIA roles or keyboard handling.

Violation — div/span as buttons
Click me (div)
Click this span
Pass — proper semantic element
mouse-only-interaction

Mouse-Only Interaction

WCAG 2.1.1 (A)

Hover-only menus and mouseover patterns without keyboard equivalents.

Violation — hover-only dropdown
Hover for menu ▾
Hover to change color (no keyboard)
incorrect-role

Incorrect ARIA Role

WCAG 4.1.2 (A)

ARIA roles that conflict with the element's native HTML semantics.

Violation — conflicting roles
Link with role="button"
missing-aria-attributes

Missing ARIA Attributes

WCAG 4.1.2 (A)

ARIA widget roles require specific state/property attributes.

Violation — incomplete ARIA
Checkbox without aria-checked
Slider without aria-valuemin/max/now
Combobox without aria-expanded
non-descriptive-label

Non-Descriptive Labels

WCAG 2.4.4 (A)

Multiple interactive elements with the same generic text that screen reader users can't distinguish.

Violation — repeated generic labels
Product A — Premium Widget Read more
Product B — Deluxe Gadget Read more
Product C — Super Tool Read more
Product D — Mega Device
Product E — Ultra System
form-validation-accessibility

Form Validation Accessibility

WCAG 3.3.1 (A)

Form inputs should have visible labels, and error messages should be programmatically associated.

Violation — inputs without labels
Pass — properly labeled inputs
live-regions

ARIA Live Regions

WCAG 4.1.3 (A)

Dynamic content updates must be announced to screen readers via aria-live.

Violation — toast without aria-live
Item saved successfully!
Violation — status area without live region
3 items in your cart
Loading results...
reduced-motion

Reduced Motion Support

WCAG 2.3.3 (AAA)

CSS animations must be suppressed when prefers-reduced-motion is active.

Violation — animations without reduced-motion query
This element slides in without respecting prefers-reduced-motion
This pulsing alert never stops — no reduced motion fallback
touch-target-size

Touch Target Size

WCAG 2.5.8 (AA)

Interactive elements must be at least 24x24 pixels.

Violation — tiny touch targets
tiny link
Pass — proper size
Allyable A11y Test Page — All violations are intentional for testing purposes.