region
Page content should be inside a landmark region
Checks that content under <body> is contained within a landmark region.
Applies to. Applies to a page of its own (not a document shown in a frame, which sits in the top document's landmarks) whose <body> has content: outside any landmark, an element with text of its own or an aria-label, an <img>, <video>, <audio>, <canvas>, <object> or <embed>, or an <input> other than type="hidden"; or a landmark with anything in it. Live regions, dialogs, buttons, <svg>, <iframe>/<frame> and resolvable skip links are not content that needs a landmark. Not while a modal dialog is open: the rest of the page is inert then, so the scan sees the dialog, not the page. Content matched by excludeSelectors (global or for this rule) is left out, and a reported gap never takes it in. A custom element whose ElementInternals give it a landmark role (this.attachInternals().role), with no role attribute naming another, is a landmark as a native element with that role is.
Expectation. Every top-level piece of page content lives inside a landmark region (main, navigation, banner, contentinfo, complementary, region, form, search), so assistive technology users navigating by landmark do not miss content that was never placed inside one.
Examples
<body><main><p>Everything lives inside a landmark.</p></main></body>
All page content is contained within a landmark region.
<body><p>Stray paragraph, not inside any landmark.</p></body>
This paragraph sits directly under <body>, outside every landmark.
How to check
When this rule can’t decide, it reports cantTell and leaves the question to a person. Each question it can ask is listed here under its reason code, with the steps to answer it. A finding carries the same steps as howToCheck, in the scan’s language. See Output schema.
CONTENT_OUTSIDE_LANDMARK
- Find the content the report names (or the iframe) on the page.
- Open the Accessibility pane of the developer tools, or a screen reader's list of landmarks, and see which landmark, if any, contains it.
- Decide whether it belongs in an existing landmark (header, nav, main, footer, aside) or is outside every one.
Pass. The content sits inside a landmark, or is something that needs none (such as a skip link or a dialog).
Fail. Real page content sits outside every landmark, so people moving by landmark can miss it (best practice, ARIA11).