SEO Tools

HTML landmark checker.

Paste HTML to list the header, nav, main, aside, footer, section, form and search landmarks screen-reader users can jump between, with each one's ARIA role and label.

Advertisement

Inputs

Paste raw HTML. URL fetch is blocked by CORS in most cases: paste markup directly.

Result

Paste HTML and press Analyze.

What the landmark checker reports

Landmarks are page regions that assistive technology can list and jump between. The checker parses your pasted HTML, finds elements that map to a landmark role, and prints them as an outline with the element, role and accessible label. Hidden elements (the hidden attribute, aria-hidden="true", inline display:none or visibility:hidden) are skipped. It lists findings only; there is no score.

How elements map to roles

What it flags

This is a structural check of the markup you paste. Accessible names computed from content or the title attribute, CSS-based hiding from external stylesheets, and browser-specific behaviour are not evaluated, and it does not replace testing with a screen reader.

Sources

Specifications reviewed September 30, 2026.

HTML landmark checker FAQ

Is every header and footer a landmark?

No. A header or footer is a banner or contentinfo landmark only when it is not a descendant of article, aside, main, nav or section. Inside those it is generic and does not appear in a landmark list.

Why is my section or form missing from the outline?

A section becomes a region landmark, and a form becomes a form landmark, only with an accessible name. Add an aria-label or an aria-labelledby that points at a heading.

Can a page have two nav elements?

Yes. When a page has more than one navigation landmark, give each a unique label such as Primary and Footer so screen-reader users can tell them apart. The checker flags unlabeled or identically labeled duplicates for review.

Does the checker fetch a URL?

No. Paste the HTML source. Parsing runs in your browser using an inert document, so images and scripts in the pasted markup are not loaded. The page itself still uses the site's analytics and advertising services.

"> Paste raw HTML. URL fetch is blocked by CORS in most cases: paste markup directly.

Result

Paste HTML and press Analyze.

What the heading checker audits

The checker reads native H1 through H6 elements and elements with role="heading" plus aria-level. Results stay in the same order as the source document. It reports the count at each level, empty heading text, a missing or repeated H1, and upward jumps such as H2 directly to H4.

A document-order bug this version fixes

Grouping every H1 first, then every H2, then every H3 does not represent the page outline and can create false hierarchy results. This checker queries all heading levels together, so an H1, H2, H3, H2 sequence remains exactly that sequence.

How to use the result

Sources

MDN heading-element and ARIA guidance reviewed September 30, 2026.

H1 and heading checker FAQ

Should a page have exactly one H1?

A single descriptive H1 is the clearest and most widely recommended pattern. The checker flags zero or multiple H1 elements for review rather than claiming they automatically cause a ranking penalty.

Is it wrong to move from H3 back to H2?

No. Moving back to a higher section level can close a subsection. The checker only flags jumps deeper by more than one level, such as H2 to H4.

Does the checker include ARIA headings?

Yes. It includes elements with role heading and an aria-level from 1 through 6, alongside native H1-H6 elements.

Can this checker fetch a URL?

No. Cross-origin browser rules block reliable client-side fetching of most pages. Paste the HTML source instead; no proxy receives the page.

Is pasted HTML uploaded?

No. Parsing and analysis run locally in your browser, and pasted markup remains inert so embedded resource URLs are not loaded. The page itself still uses the site's analytics and advertising services.

Advertisement
Advertisement
Listening…