Powered by
Keyboard & focus
A Frame with Controls Inside Is Skipped by the Keyboard
The frame has `tabindex="-1"`, so pressing Tab jumps right past it. Keyboard users can't reach the buttons, links or fields inside.
frame-focusable-contentWCAG 2.0Introduced in WCAG 2.0.Level AA — the minimum. Missing it blocks people outright.
- Status
- SeriousSerious — Significant friction, or information that is lost.CurrentScanners run this rule today.
- Owner
- DevTestProduct
- Audit
- Automated+ManualA scanner finds it; a person confirms the fix.
Why it matters
An iframe (a frame) shows another page inside your page — a payment form, a video player, a map. Adding tabindex="-1" to the frame tells some browsers to skip it, and everything inside it, when someone presses Tab.
People who use only a keyboard then can't pay, play the video or fill in the form. Mouse users never notice, so the problem often ships unseen.
Who it affects
| Who | What they experience | Impact |
|---|---|---|
| Screen reader users | Moving by Tab skips the frame's controls, so they may never find the form or player. | High impact |
| Keyboard-only users | Tab jumps over the frame, so they can't reach or use anything inside it. | High impact |
| Motor and dexterity | Switch and other keyboard-like devices skip the frame too, so the task is blocked. | High impact |
| Low-vision users (magnification) | Affected if they move around with the keyboard, as many magnifier users do. | Partial impact |
| Voice control users | They can often still click by saying a control's name, but "press Tab" commands skip the frame. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | Everything must work by keyboard under WCAG 2.1.1 Keyboard, at Level A. Australia's Disability Discrimination Act complaints point to WCAG, and EN 301 549 includes the same need. | High impact |
| Conversion | Frames often hold payment, booking or sign-up forms. If keyboard users can't reach them, the sale is lost. | High impact |
| SEO | No real search benefit — don't sell it as one. | Low impact |
| Brand trust | A checkout that can't be used tells customers they weren't thought of. | Moderate impact |
| Cost to fix | Usually you just delete one attribute. Check the shared embed component so it's fixed everywhere. | High impact |
Fixing it in code
An embedded payment form
Don't
<iframe src="/pay" title="Payment details" tabindex="-1"></iframe>A screen reader says: “Tab skips the frame and lands on the next link after it, such as "Terms, link".”
Do
<iframe src="/pay" title="Payment details"></iframe>A screen reader says: “Payment details, frame. Card number, edit text.”
Without tabindex="-1", Tab moves into the frame and through its controls.
A frame that really should be hidden
Don't
<iframe src="/preview" title="Preview" tabindex="-1" style="visibility:visible"></iframe>A screen reader says: “The preview is on screen, but Tab can't reach its links.”
Do
<iframe src="/preview" title="Preview" hidden></iframe>A screen reader says: “Nothing — the frame is hidden from everyone until it's needed.”
If no one should use it yet, hide it for everyone, not just keyboard users.
Designer's handoff note
When you place an embed — map, video, payment form — note in the spec that keyboard users must be able to Tab into it and out again.
Quick test
Tool
The keyboard alone
Checklist
- Pass
- Focus moves into the frame and you can use its controls.
- Fail
- Focus jumps from before the frame to after it, skipping everything inside.
What a green scan still misses
A scanner can't look inside frames from other websites, so it may miss some. It also can't tell whether the frame's own controls work by keyboard — Tab through them yourself.
Reference
- Rule ID
frame-focusable-content- Raised by
- axe-core: “Frames with focusable content must not have tabindex=-1”
- WCAG
- 2.1.1 Keyboard (opens in a new tab) · Level A · since WCAG 2.0
- Other standards
- EN 301 549 9.2.1.1 · RGAA 7.3.2
- Last reviewed
- 14 October 2026