Landmark and Page Structure Checker
Check the landmarks, skip link and language declaration a screen reader relies on.
About this tool
Checks the structural elements someone using a screen reader navigates by: `<main>`, `<nav>`, `<header>`, `<footer>`, a skip link, and a language declaration on the page.
Landmarks are how a person skips straight to the content instead of listening to your navigation on every single page. A page built entirely from `<div>` has none, so there is nothing to skip to and the whole thing is one undifferentiated run of text, every time.
The fix is almost always renaming a few divs. HTML elements carry these roles on their own — no ARIA attributes required.
Common questions
Do I need role="main" as well as <main>?
No. The element carries the role already, and adding it is redundant. Explicit roles are only worth it when you cannot change the element — a legacy div you do not control.
Why does the lang attribute matter?
It tells a screen reader which pronunciation rules to use. English read with French rules is not lightly accented, it is incomprehensible. It is one attribute on the html element.
Is a skip link still necessary?
Yes, for keyboard users. Without one, reaching the content means tabbing through every navigation link on every page. It can be visually hidden until focused, so it costs nothing in the design.
Can I have more than one nav?
Yes, and large sites should. Give each an aria-label — "Main", "Footer", "Breadcrumb" — otherwise a screen reader announces several identical "navigation" landmarks with no way to tell them apart.