Free
Heading Checker
Screen reader users move through a page by its headings. IncludePress reads that outline from the HTML a logged-out visitor receives. It does not change the headings.
Best practice, not a failure
A page with no H1, or with more than one H1, is a best practice note. Multiple H1s are not a WCAG failure. The screen says “Best practice” in words, next to “Fails WCAG” and “Check manually”, so the difference is not color alone.
A skipped level is also best practice. If a heading jumps from H2 to H4, the outline marks that jump with an icon and the text “Skipped level, h2 → h4”.
What the free checker flags
- No visible H1
- More than one visible H1
- A skipped level, reported as the jump
- A heading with no accessible name
- A short bold paragraph that is followed by more content, with the question “Should this be a heading?”
Hidden headings, including hidden, aria-hidden="true", and an inline display:none, stay in the outline with the note “Hidden, excluded”. They are not findings, and they do not create a skipped level.
The local fixture has no H1, an H2 that jumps to an H4, an empty H3, a hidden H2, and a bold paragraph that only looks like a heading. That page is not published on this site.
Site-wide headings
A heading inside a header or footer, including a block theme template part, is the theme’s heading. IncludePress groups it as “Site-wide (header/footer)” and says how many pages it appears on, so one theme issue is not listed once for every page.
The Heading Checker screen
These screenshots are from a local WordPress admin. The marketing site does not run the checker.
Limitation. The free checker finds problems in the outline. Changing a heading level in the content is a later step.