How to fix landmark main is top level on Adobe Commerce (Magento)

Move the `<main>` element (or `role="main"`) so it is a direct child of `<body>` and not nested inside any other landmark element such as `<header>`, `<nav>`, `<aside>`, or `<footer>`.

Steps for Adobe Commerce (Magento)

  1. Locate your active theme folder under `app/design/frontend/<Vendor>/<theme>/`.
  2. Open `Magento_Theme/templates/root.phtml` (or the equivalent layout file for your theme) and inspect where `<main>` or `role="main"` is placed in the DOM hierarchy.
  3. Also review `Magento_Theme/layout/default.xml` and any layout XML that injects blocks into the page shell to find if a container wrapping `<main>` inadvertently has a landmark role.
  4. Edit the template/layout to ensure the `<main>` element is a direct child of `<body>`, not enclosed in another landmark. Run `bin/magento cache:clean` after changes.
  5. Test the fix on the frontend using axe DevTools browser extension.
Official Adobe Commerce (Magento) documentation ↗
<!-- ✅ CORRECT: <main> is a top-level sibling of other landmarks -->
<body>
  <header>…site logo and branding…</header>
  <nav>…navigation links…</nav>
  <main>
    …unique page content…
  </main>
  <footer>…footer links…</footer>
</body>

<!-- ❌ INCORRECT: <main> is nested inside <header> -->
<body>
  <header>
    …site logo and branding…
    <main>   <!-- wrong! <main> must not live inside <header> -->
      …page content…
    </main>
  </header>
  <footer>…</footer>
</body>

What is landmark main is top level?

Every webpage should have one clearly defined "main content" region that screen readers and other assistive technologies can jump to directly. In HTML this is the `<main>` element (or any element marked with `role="main"`). The WCAG rule "landmark-main-is-top-level" means that this main region must sit at the top level of the page structure — as a direct child of `<body>` — and must not be wrapped inside another landmark region like `<header>`, `<nav>`, `<aside>`, or `<footer>`. Nesting `<main>` inside another landmark confuses the accessibility tree and breaks the expected page hierarchy that assistive technologies rely on.

Screen reader users — including many people with visual impairments — use keyboard shortcuts to skip straight to the main content of a page, bypassing repetitive navigation menus. When `<main>` is incorrectly nested inside another landmark, that shortcut either fails silently or lands the user in the wrong place, forcing them to tab through every menu item on every page visit. This is a WCAG 2.1 / 2.2 failure (Best Practice, closely tied to Success Criterion 1.3.6 and the bypass-blocks requirement at 2.4.1), which creates legal accessibility risk under ADA Title III in the US, the European Accessibility Act, and similar laws globally. Beyond legal exposure, poor accessibility reduces your potential customer base and signals poor technical quality to search engines that increasingly factor accessibility into crawl quality.

See the complete Landmark main is top level guide for every platform and the full background.

Not sure if your Adobe Commerce (Magento) store has this?

Run a free SEOLZ audit — we’ll find landmark main is top level and every other issue across your whole site.

Scan my site free

Fix landmark main is top level on another platform