Focus Not Obscured (Enhanced)
WCAG 2.2 Success Criterion 2.4.12, Level AAA. The stricter sibling of 2.4.11: when a component receives keyboard focus, no part of it may be hidden by content you added.
What it requires
The load-bearing phrase is no part. Where 2.4.11 tolerates a focused control being partly covered, 2.4.12 does not: the entire component must be visible the moment it takes focus (Source: W3C, Understanding SC 2.4.12 ) . The same two normative notes from 2.4.11 carry over: only the initial position of movable content is tested, and content the user can reveal without advancing focus (for example by pressing Escape) is not considered hidden.
Minimum (2.4.11) vs Enhanced (2.4.12)
| 2.4.11 Minimum | 2.4.12 Enhanced | |
|---|---|---|
| Level | AA | AAA |
| Allowed obscuring | Partial is fine; only fails if entirely hidden | None; any obscuring fails |
| In an AA target? | Yes — required | No — beyond AA |
| Typical fix | scroll-padding, modal overlays, dismiss-on-focus | The same, sized so the control lands fully clear |
Who it helps
The same users as 2.4.11, with a stronger, fully-visible guarantee (Source: W3C, Understanding SC 2.4.12 ) :
- Sighted keyboard users and people using switch devices, voice input, sip-and-puff, or scanning software, who must see the full focused control to operate it confidently.
- People with low vision under screen magnification, where even a partly covered control can be hard to read or act on.
- People with attention or short-term-memory limitations, who lose their place when any part of focus slips under fixed content.
How to meet it
The sufficient technique is the same as 2.4.11 — CSS scroll-padding, technique C43 (Source: W3C Technique C43 ) — but you must reserve space equal to the full height of every sticky element, so the focused control is scrolled entirely into the clear:
:root {
/* Size to the FULL height of sticky elements so no part of the
focused control is covered — this satisfies 2.4.12 (AAA), not just 2.4.11. */
scroll-padding-top: 5rem;
scroll-padding-bottom: 4rem;
} The same alternatives also satisfy the Enhanced bar, provided nothing covers the control at all:
- Make overlays modal so they take focus and must be dismissed first.
- Have non-essential notifications close when focus moves past them.
- Displace or reflow the page for user-opened persistent content rather than overlaying it.
Should you target it?
2.4.12 is Level AAA, and W3C advises that AAA conformance is not a recommended general policy for whole sites because it cannot be met for all content (Source: W3C, Understanding Conformance ) . That said, this one is cheap: if your 2.4.11 fix already sizes scroll-padding generously, you likely meet 2.4.12 for free. It is a sensible target on flows where keyboard users matter most, such as checkout, account, and form-heavy pages.
How to test it
- Tab through every focusable element at the relevant breakpoint and zoom level.
- With sticky headers and footers, cookie banners, and any non-modal overlays present, watch each element as it receives focus.
- If any part of an element is covered by author content when focused, it fails 2.4.12 — unless the user can reveal it without moving focus (for example, Escape).
- Re-test at 200% zoom and on narrow viewports, where sticky elements take up more of the screen.
Common questions
What is the difference between 2.4.11 and 2.4.12?
At AA (2.4.11) a focused element may be partially covered as long as it is not entirely hidden. At AAA (2.4.12) no part of it may be covered. Same fix, stricter bar.
Is Focus Not Obscured (Enhanced) required for ADA or AA compliance?
No. 2.4.12 is Level AAA, so it is not part of a WCAG 2.2 AA target and is not the benchmark US courts use. Only 2.4.11 (AA) is required for AA conformance. 2.4.12 is best practice for a fully visible focus guarantee.
Will the same scroll-padding fix satisfy the Enhanced version?
Usually yes. If you size scroll-padding to the full height of every sticky element so the focused control lands entirely in the clear area, you meet both 2.4.11 and 2.4.12 at once.