Level AAA Operable WCAG 2.4.10

What This Criterion Requires

WCAG 2.4.10 Section Headings is a Level AAA criterion that requires section headings to be used to organize content. While WCAG 2.4.6 (Level AA) requires headings and labels to be descriptive, this criterion goes further by requiring that headings actually be present to divide content into logical sections. Well-structured headings create an outline of the page that allows screen reader users to navigate efficiently by jumping between sections, and they help all users scan content quickly to find the information they need. This criterion applies to all web content where content is organized into sections, including articles, product pages, documentation, forms, and dashboard interfaces. The heading hierarchy should follow a logical nesting order starting with h1 for the page title and using h2 through h6 for subsections, without skipping levels. Each heading should accurately describe the content that follows it, serving as both a navigation aid and a content summary.

Why It Matters

Screen reader users rely heavily on headings to understand page structure and navigate content efficiently. Most screen readers provide keyboard shortcuts to jump between headings (for example, pressing H in NVDA or using the rotor in VoiceOver), making headings the primary navigation mechanism for long pages. Without section headings, a screen reader user visiting a page with 2,000 words of content would need to listen to every word sequentially to find the section they need. With proper headings, they can press H repeatedly to hear each heading announced and stop at the relevant section. Research shows that navigating by headings is the number-one strategy used by screen reader users for finding information on web pages. Beyond assistive technology, headings benefit users with cognitive disabilities by breaking content into manageable chunks, help users with attention disorders by providing clear visual anchors, and improve comprehension for all users by establishing a clear content hierarchy. Search engines also use heading structure to understand page content, making proper headings beneficial for SEO.

Common Failures and How to Fix Them

Long content pages without any section headings

A blog post, terms of service, or product description page presents large blocks of text without breaking the content into headed sections. Users must read through the entire page to find specific information.

Inaccessible
<article>
  <h1>Terms of Service</h1>
  <p>These terms govern your use of our service...</p>
  <p>You may not use the service for...</p>
  <p>Payment is due on the first of each month...</p>
  <p>We may terminate your account if...</p>
</article>
Accessible
<article>
  <h1>Terms of Service</h1>
  <h2>Acceptable Use</h2>
  <p>These terms govern your use of our service...</p>
  <p>You may not use the service for...</p>
  <h2>Payment Terms</h2>
  <p>Payment is due on the first of each month...</p>
  <h2>Account Termination</h2>
  <p>We may terminate your account if...</p>
</article>

Skipped heading levels breaking the hierarchy

Headings jump from h2 to h4 or h5, breaking the logical document outline. Screen reader users navigating by heading level may miss sections because the expected heading level does not exist.

Inaccessible
<h1>Product Overview</h1>
<h2>Features</h2>
<h4>Cloud Storage</h4>
<h4>Real-time Sync</h4>
<h2>Pricing</h2>
<h5>Monthly Plans</h5>
Accessible
<h1>Product Overview</h1>
<h2>Features</h2>
<h3>Cloud Storage</h3>
<h3>Real-time Sync</h3>
<h2>Pricing</h2>
<h3>Monthly Plans</h3>

Using bold text instead of heading elements for sections

Content sections are visually separated by bold paragraph text that looks like a heading but uses <strong> or <b> tags instead of proper heading elements. Screen readers do not treat bold text as navigable headings.

Inaccessible
<p><strong>Shipping Information</strong></p>
<p>We offer free shipping on orders over $50...</p>
<p><strong>Return Policy</strong></p>
<p>Items may be returned within 30 days...</p>
Accessible
<h2>Shipping Information</h2>
<p>We offer free shipping on orders over $50...</p>
<h2>Return Policy</h2>
<p>Items may be returned within 30 days...</p>

How to Test

  1. Use a browser extension like HeadingsMap or the WAVE toolbar to generate a visual outline of all headings on the page. Verify that every content section has a heading and the hierarchy is logical.
  2. Navigate the page using a screen reader's heading navigation shortcuts (H key in NVDA/JAWS, rotor in VoiceOver) and verify you can reach every major content section.
  3. Check that heading levels are sequential and do not skip levels. An h3 should always be nested under an h2, never directly under an h1.
  4. Review long-form content pages (blog posts, FAQs, policies, documentation) to ensure they are divided into headed sections rather than presenting large unstructured blocks of text.

CMS-Specific Guidance

This criterion commonly causes issues on these platforms:

Further Reading

Related WCAG Criteria