Features

Ensure that the page, or at least one of its frames contains a level-one heading

Rule ID: page-has-heading-one User Impact: moderate Guidelines: Best Practices

The page-has-heading-one rule ensures that a page or at least one of its frames contains a level-one heading (<h1>) or an element with role="heading" and aria-level="1".

What is being tested?

This rule checks that:

  • The main document or at least one embedded frame contains a level-one heading.
  • The level-one heading appears before the start of the main content.

Why it matters

Screen reader users rely on keyboard shortcuts to navigate by heading levels. A properly placed <h1> at the start of the main content lets users jump directly to the main section, saving time and improving orientation.

Without an h1, blind or low-vision users must listen linearly to the entire page to understand its structure, unlike sighted users who can visually scan a page.

Good markup example

<h1>Welcome to Our Website</h1>
<main>
  <h2>About Us</h2>
  <p>Our company was founded in...</p>
</main>

Best practice for iframes

When embedding content with <iframe>, try to fit its heading hierarchy within the parent page. For example, if the parent page uses an h1, the iframe should ideally start with an h2 if its content is a direct subsection.

Best practices

  • Include one and only one h1 per page.
  • Place the h1 at the start of the main content area.
  • Use h2, h3, etc., to organize subsections hierarchically.
  • For iframes, align the heading level with the parent page when possible.

Other Rules

Interested in other web accessibility rules? Please see these other rules: