Focus Not Obscured Audit
Sticky headers, sticky footers, cookie banners, and chat widgets often sit on top of page content. When a keyboard user tabs to a control that lies underneath one of those overlays, the focused element and its focus indicator can disappear completely. WCAG 2.4.11 Focus Not Obscured (Minimum) requires that a focused component is not entirely hidden by author-created content.
Turning it on
This audit is experimental: it is off by default while we validate it against more real-world sites. To enable it, open a site’s Settings, and switch on Include experimental audits under Scan settings. The setting is per-site, and applies to every scheduled and manual scan of that site from the moment you save it.
How the audit works
This check piggybacks on the same Tab loop the focus appearance audit already runs. At each tab stop, after focus settles and before any screenshot work, the audit hit-tests the focused element’s visible rectangle against whatever is painted on top of it.
An element that is entirely covered by opaque author-positioned content is reported as a violation. Covers whose opacity cannot be verified, and elements that remain offscreen after focus, are reported as incomplete. Partially covered elements pass the Minimum criterion and are not flagged.
Reading the results
Violations name the covering element when it can be identified, for example a sticky footer that completely hides a focused link. Incomplete results need human review: the overlay may still be opaque in practice, or the browser may not have scrolled the element into view.
You can ignore individual elements you have reviewed and accepted using the same ignore feature you use for other issues.
Limitations
The audit observes the browser’s natural post-Tab scroll position. Obscuring that only happens at other scroll positions is not seen. Partial overlaps are out of scope for this AA check (they belong to WCAG 2.4.12 Enhanced). Iframes and closed shadow roots are not inspected. Elements beyond the focus loop’s element limit or timeout are unmeasured.
Related documentation
- Context Change on Focus AuditHow A11y Pulse detects unexpected context changes triggered merely by focusing an element.
- Skip Link AuditHow A11y Pulse checks that skip links actually move keyboard focus, and how to read the results.
- Focus Appearance AuditHow A11y Pulse detects interactive elements that do not show a visible focus indicator, and how to read and act on the results.
- Reflow AuditHow A11y Pulse checks that pages reflow at 320 CSS pixels without two-dimensional scrolling, and how to read the results.
- Text Spacing AuditHow A11y Pulse checks that text stays readable when spacing is increased, and how to read the results.