• 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