Webpage Accessibility Checker

Audit any public webpage for WCAG 2.1 AA issues. Detects missing ARIA labels, heading hierarchy problems, semantic HTML violations, HTML nesting errors, and keyboard tab order — instantly, from static HTML.

Enter URL to Audit
Works best on server-rendered or static pages. JavaScript-only SPAs may return incomplete results — the tool will tell you if it detects one.

What This Tool Checks

This tool fetches the HTML of any public webpage and runs a series of static accessibility checks — no headless browser required. Results reflect the server-rendered HTML, so it works best on traditional websites, CMS-driven pages, and server-rendered frameworks like Next.js (with SSR/SSG) or Astro.

Heading Hierarchy

Extracts all H1–H6 elements and renders a visual tree. Flags missing H1, multiple H1s, and skipped heading levels (e.g. H2 → H4). Heading structure is how screen readers build a page outline.

ARIA & Accessible Names

Checks every interactive element — buttons, inputs, links, textareas, selects, iframes, images — for a programmatic label. Screen readers announce these labels; without them, elements are announced as "button" or "link" with no context.

Landmark Regions

Detects HTML5 landmark elements: <main>, <nav>, <header>, <footer>, <aside>. Screen reader users can jump between landmarks to skip navigation. Missing <main> is always an error.

HTML Nesting Issues

Flags invalid nesting patterns — buttons inside links, links inside links, block elements inside <p> — that cause browsers to silently restructure the DOM, breaking screen reader traversal.

Semantic HTML

Identifies presentational elements used where semantic ones should be (<b> vs <strong>), missing lang attributes, missing page titles, tables without header cells, and deprecated HTML elements.

Keyboard Tab Order

Lists all focusable elements in the order a keyboard user encounters them. Highlights any elements with tabindex > 0 which override the natural document order and commonly cause confusing navigation for keyboard and screen reader users.

Limitations

  • No colour contrast checking — contrast ratios require computed CSS (a real browser). Use browser DevTools accessibility panel or a dedicated contrast checker for this.
  • Static HTML only — content rendered by JavaScript after page load is not analysed. SPAs (React, Vue, Angular CSR apps) may show incomplete results.
  • No focus indicator check — detecting missing focus styles requires computed CSS, not present in server-sent HTML.