← All checks
Accessibilitylowempty-heading

Static heading has no recognised accessible name

ShipReady found one or more h2 through h6 elements in complete static HTML without text or one of its recognised naming signals.

Why it matters

A heading should communicate the topic of its section. Reviewing unnamed headings helps keep the static document structure understandable.

How ShipReady detects it

What it inspects

On a successful, untruncated HTTP 200 page, ShipReady inspects static h2 through h6 elements after excluding comments and script, style, template, and noscript regions.

What triggers a finding

The rule triggers when a heading has no text after markup is stripped, no non-empty image alt text, no aria-label or aria-labelledby attribute, and is not aria-hidden=true. Empty h1 elements are handled by a separate SEO rule.

What the evidence shows

The scanner observed the reported number of static h2 through h6 elements without one of its recognised naming signals.

Limits of this check

ShipReady does not execute client-side code, inspect the computed accessibility tree, determine author intent, or perform a complete WCAG or assistive-technology audit.

How to fix it

Give the section a name or use a non-heading element

Add meaningful section text or an appropriate accessible name when the element is a real heading. Replace purely visual spacing markup with a non-heading element.

How to verify the change

Review the served heading markup

Inspect the deployed page and test representative heading navigation with the accessibility tools appropriate to the product.

Expected: Each real h2 through h6 communicates its section purpose, while visual-only elements are not headings.