bypass-blocks-present
Page must provide a way to bypass repeated blocks
Checks that the page has at least one recognized mechanism to bypass blocks of repeated content: a main landmark, a working skip link, or a heading.
Applies to. Applicable to any HTML document with a <body> element that is a page of its own (a document shown in a frame is not: the page's blocks and the way past them are the top document's): "bypass blocks" is a whole-page concern, matching aria-hidden-body / page-title-present's pattern of evaluating the document directly rather than a scoped root. Not while a modal dialog is open: the rest of the page is inert then, so the scan sees the dialog, not the page. A custom element whose ElementInternals give it the main or heading role (this.attachInternals().role) counts as a <main> or a heading does.
Expectation. At least one of the following recognized WCAG 2.4.1 techniques is present: (a) a main landmark (<main>, or an element whose role attribute resolves to main: the first real role token, in any case), ARIA11: a screen reader user can jump straight to it, bypassing everything before it (nav, header, repeated blocks) in one step; (b) a working skip link, technique G1: an <a href="#id"> (or legacy <a name="id">) whose name reads as a skip link in one of the shipped languages (helpers.hasSkipLinkWording, as skip-link uses) and whose target resolves to a real element in the link's own tree (light DOM or the same shadow root), outside any navigation or complementary landmark (<nav>, <aside>, or the role): a link to the menu or a sidebar skips to no main content. Not required to be positioned before a <nav> or be keyboard-focus-order-first; (c) at least one heading (<h1>-<h6>, or a role resolving to heading) that is both included in the accessibility tree AND visible (not off-screen, clipped, opacity:0, zero-size-overflow-hidden, or drawn wholly above the top of the page or left of its start, where no scrolling reaches), and outside any navigation or complementary landmark, technique H69: heading navigation is itself a standards-recognized bypass mechanism (e.g. a screen reader's "jump by heading" command), but ACT 047fe0's own Expectation requires visibility too, since a screen-reader-only heading leaves sighted keyboard users with no equivalent way to locate the start of non-repeated content. H69 puts headings at the start of each section of content: one inside the navigation heads the repeated block, and jumping to it skips nothing (ACT 047fe0, Failed Example 4).
Examples
<body><nav>Site nav</nav><main>Primary content</main></body>
A main landmark exists, a recognized bypass mechanism.
<body><nav>Site nav</nav><div>Primary content, no landmark, no heading, no skip link.</div></body>
No main landmark, working skip link, or visible heading was detected — a review prompt, not a fail, since the engine can't confirm from one snapshot whether the page truly lacks a bypass mechanism.
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.
BYPASS_MECHANISM_ABSENT
- Close any dialog or overlay, then look at whether the page repeats blocks such as a header or menu that appear on other pages of the site.
- Click the address bar and press Tab: check whether a skip link appears that moves focus past the repeated blocks to the main content.
- Check for headings at the start of the main content, or a main landmark, in the Accessibility pane or by a screen reader's headings and landmarks lists.
Pass. The page has no repeated blocks, or offers a working skip link, a main landmark or headings that let users jump past them.
Fail. Repeated blocks have no way to skip them, so keyboard and screen reader users must go through them on every page, which fails WCAG 2.4.1.