# This document has heading elements but none of them has a computed heading level of 1.

> Canonical HTML version: https://rocketvalidator.com/html-validation/this-document-has-heading-elements-but-none-of-them-has-a-computed-heading-level-of-1
> Attribution: Rocket Validator (https://rocketvalidator.com)
> License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)

A document lacks a heading with a computed level of 1, which means there is no `<h1>` element (or an element whose final heading level resolves to 1) on the page.

The W3C validator raises this as a warning because every document should have at least one `<h1>` to identify its main topic. Screen readers and search engines rely on the heading hierarchy to understand page structure, and `<h1>` is the expected entry point of that hierarchy.

A "computed heading level" differs from the literal tag name only when the now-obsolete `<hgroup>` algorithm or the abandoned outline algorithm would adjust levels. In practice, for nearly all documents, a computed level of 1 simply means an `<h1>` tag.

This warning appears when a page uses `<h2>`, `<h3>`, or other headings but skips `<h1>` entirely. Adding a single `<h1>` that describes the page content fixes the warning.

## Example with the warning

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <title>My page</title>
</head>
<body>
  <h2>About us</h2>
  <p>Welcome to our site.</p>
  <h3>Our team</h3>
  <p>We are a small group.</p>
</body>
</html>
```

## Fixed example

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <title>My page</title>
</head>
<body>
  <h1>My page</h1>
  <h2>About us</h2>
  <p>Welcome to our site.</p>
  <h3>Our team</h3>
  <p>We are a small group.</p>
</body>
</html>
```

Each page should have exactly one `<h1>`. If the design calls for the `<h1>` to be visually hidden (for example, when a logo replaces the text), use a CSS technique to hide it from sighted users while keeping it accessible to screen readers, rather than removing it from the markup.
