Page landmarks

Landmark Region Checker

Screen reader users navigate by landmarks. Paste your HTML to see the landmark tree and catch a missing main, duplicate or unlabeled regions and content left outside any landmark.

    The landmark tree will appear here.

    Runs entirely in your browser. Nothing is uploaded to any server.

    Why landmarks matter

    Fast navigation

    Screen reader users can list landmarks and jump straight to the navigation, main content or footer.

    Free with semantic HTML

    Using header, nav, main, aside and footer correctly gives you landmarks without extra ARIA.

    Nothing gets lost

    Content outside landmarks can be skipped by users who navigate region by region.

    How to use the landmark region checker

    1. Paste HTMLPaste the full page source or the body of your template.
    2. CheckClick Check landmarks to build the tree and run the rules.
    3. FixWrap stray content, label duplicate landmarks and keep main, header and footer at the top level.

    How landmarks are calculated

    Landmarks come from explicit ARIA roles or from native elements, following the HTML Accessibility API Mappings. main and nav are always landmarks. A header or footer is a banner or contentinfo landmark only when it is not inside article, aside, main, nav or section; inside those it is just a generic container. A section or form becomes a landmark only when it has an accessible name, and an aside nested in sectioning content needs a name too.

    The checker then verifies there is exactly one visible main, at most one banner and contentinfo, that those three are not nested inside other landmarks, and that repeated landmarks such as two navs have unique labels. Finally it walks the page to find text and form controls that sit outside every landmark.

    One main

    Exactly one visible main landmark per page.

    Unique labels

    Two navs need labels like "Main" and "Footer".

    Top level

    banner, main and contentinfo should not be nested.

    Landmark region checker FAQ

    Do I need role="main" on <main>?

    No. Modern browsers map <main> to the main landmark automatically.

    Why is my inner <header> not a banner?

    A header inside article, aside, main, nav or section is scoped to that content and is not a banner landmark. That is correct behavior.

    Is content outside landmarks a WCAG failure?

    Not by itself, but it is a best practice recommended by many audits because landmark navigation users may never find it.

    Are hidden landmarks counted?

    Landmarks with the hidden attribute are listed but excluded from duplicate and count checks. CSS-hidden elements cannot be detected without rendering.

    Is my HTML uploaded?

    No. It is parsed in your browser with DOMParser and no scripts are run.

    Try other accessibility tools

    More free tools from My Panda Toolbox.