- Success Criterion 2.1.2
- Conformance level A
Third-Party Embed That Captures and Never Releases Tab Focus
2.1.2 — No Keyboard Trap
Scenario
Setting
A hospital's patient portal appointment scheduler
What’s wrong
Third-party chat/ad/survey iframes that capture Tab and never release.
Example
// modal traps Tab inside with no Escape handler Why it matters
All keyboard and screen-reader users who can become stuck inside a component.
How to test
Tab into a third-party chat/ad/survey iframe: confirm Tab eventually releases focus back to the host page — if it captures Tab indefinitely, it fails.
How to fix
Focus must always be able to leave the component using Tab/Shift+Tab or Esc (or a standard method the user is told about). document.addEventListener('keydown', e => { if (e.key === 'Escape') closeModal(); }); Any component that captures focus needs a standard way out — Escape, or focus cycling back to a close control.
Outcome
On a hospital's patient portal appointment scheduler, this barrier is gone for all keyboard and screen-reader users who can become stuck inside a component — they can finish what they came here to do.
Who is affected
All keyboard and screen-reader users who can become stuck inside a component.
Learn more
- Understanding Understanding document (opens in a new tab)
Related scenarios
- Keyboard Focus Stuck Inside an Embedded Plugin or Widget
- Modal Focus Trap With No Escape Key or Close Button
- Widget Where Tab Cycles Internally With No Way Out
- Script That Yanks Focus Back Every Time the User Tabs Away
- Rich Text Editor That Captures Tab With No Documented Escape
- Autocomplete List That Keeps Recapturing Focus on Every Blur