Skip to content

Accessibility Module

Module ID: accessibility | Type: Core (always enabled) | Weight: 30%

The Accessibility module analyses HTML for key WCAG compliance signals including alt text, form labels, landmarks, ARIA roles, skip links, heading hierarchy, and focus management.


What It Checks

Check What It Looks For
Image alt text All <img> tags have alt attributes; decorative images use alt=""
Form labels Every form input has an associated <label> or aria-label
Language attribute lang attribute on the <html> element
Landmark regions <main>, <nav>, <header>, <footer> present
Skip link A skip-to-content link as the first focusable element
Heading hierarchy No skipped heading levels (H1 -> H3 without H2)
Empty headings Headings with no text content
ARIA roles Valid ARIA roles and proper usage patterns
Tabindex abuse No positive tabindex values (disrupts natural tab order)
Focus visibility Checks for outline: none without alternative focus styles
Motion preferences prefers-reduced-motion media query support
Zoom blocking No user-scalable=no or maximum-scale=1 in viewport meta

Scoring Breakdown

Criterion Deduction Condition
Images missing alt -3 per image Up to -15 total
Form inputs missing labels -5 per input Up to -15 total
Missing lang attribute -5 No lang on html element
No landmark regions -10 No main, nav, header, or footer
Missing skip link -5 No skip-to-content link
Broken heading hierarchy -5 Skipped heading levels
Empty headings -3 per heading Up to -9 total
Positive tabindex -5 Any element with tabindex > 0
Focus styles removed -5 outline: none without replacement
Zoom blocked -10 user-scalable=no in viewport

Auto-Detection

This module is always enabled. Accessibility is a core concern for every website.


Example Findings

P0 CRITICAL: Zoom disabled via viewport meta
  The viewport meta tag sets user-scalable=no, preventing users from
  zooming. This is a WCAG 2.1 Level AA failure (1.4.4 Resize Text).
  Fix: Remove user-scalable=no and maximum-scale=1 from the viewport meta.
  Effort: Low

P1 HIGH: 5 images missing alt text
  Screen readers cannot describe these images to visually impaired users.
  Fix: Add descriptive alt text to each image, or alt="" for decorative images.
  Effort: Low

P2 MEDIUM: No skip navigation link
  Keyboard users must tab through the entire navigation on every page.
  Fix: Add <a href="#main-content" class="skip-link">Skip to content</a>
       as the first element in <body>.
  Effort: Low