Semantic HTML Accessibility Audit
Guide to auditing semantic HTML usage for WCAG 2.1 compliance. Covers heading hierarchy, landmark regions, lists, tables, and form markup for assistive technology support.
Detailed Explanation
Semantic HTML Accessibility Audit
Semantic HTML is the foundation of web accessibility. Using the correct HTML elements communicates structure, meaning, and relationships to assistive technologies without requiring ARIA attributes.
Why Semantics Matter for Accessibility
Screen readers use HTML semantics to:
- Build a document outline from headings
- Provide landmark-based navigation (header, nav, main, footer)
- Announce list items and table cells correctly
- Associate form labels with inputs
- Identify interactive elements (buttons, links)
Heading Hierarchy Audit
Check that headings form a logical outline:
- Only one
<h1>per page (the page title) - Headings do not skip levels (h1 → h3 without h2)
- Headings are used for structure, not for styling
- Every section of content has an appropriate heading
Use the screen reader rotor (VoiceOver) or heading navigation (NVDA) to browse the heading structure.
Landmark Regions Audit
Verify the page uses HTML5 landmark elements:
<header>orrole="banner"for the site header<nav>orrole="navigation"for navigation menus<main>orrole="main"for primary content<footer>orrole="contentinfo"for the site footer<aside>orrole="complementary"for sidebar content<form>orrole="form"for significant forms
Lists
- Navigation menus use
<ul>or<ol>with<li>items - Definition lists use
<dl>,<dt>,<dd> - Nested lists are properly nested inside parent
<li>
Tables
- Data tables use
<table>,<thead>,<tbody>,<th>,<td> <th>hasscope="col"orscope="row"- Complex tables use
id/headersattributes - Layout tables are avoided (use CSS instead)
Common Semantic HTML Mistakes
<div>or<span>used for interactive elements (use<button>or<a>)- Headings used for visual styling only (use CSS classes instead)
- Lists not marked up as
<ul>/<ol>(bulleted paragraphs) - Missing
<main>element (every page should have one) - Multiple
<nav>elements withoutaria-labelto distinguish them
Use Case
Semantic HTML auditing is a foundational step in any accessibility review. It should be performed during code review and before more detailed ARIA or screen reader testing. Front-end developers should use semantic HTML by default and only add ARIA when native semantics are insufficient.
Try It — Accessibility Audit Checklist
Perceivable
Operable
Understandable
Robust
50 criteria shown · Click the status badge to cycle through Pass / Fail / N/A / Untested