empty-heading
Headings must not be empty
manualconfidence: mediumseverity: minoroperable
Checks that heading elements (<h1>-<h6> or role="heading") have a non-empty accessible name.
Applies to. Applies to elements with a heading role: native <h1>-<h6>, or any element with explicit role="heading" (unless overridden by another explicit role).
Expectation. The heading has a non-empty accessible name: aria-label, aria-labelledby, visible text content not hidden from assistive technology, or (as a last resort) a title attribute. An empty heading is announced as "heading, level N" with nothing else, which is confusing when navigating by heading.
Examples
can't tell
<h2></h2>
The heading has no accessible name at all — nothing for a screen reader to announce.
n/a
<h2>Section title</h2>
The heading has visible text content.