Powered by
Names, roles & states
A Frame on the Page Has No Name
Screen reader users reach an embedded frame — a video, map or form — but hear only "frame", so they can't tell what's inside or whether to enter.
frame-titleWCAG 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
- DevContentTest
- Audit
- Automated+ManualA scanner finds it; a person confirms the fix.
Why it matters
A frame (an iframe) puts another web page inside yours, like a YouTube video, a map or a payment form. Screen readers list frames and announce them as people move through the page.
Without a name, the person hears "frame" or a meaningless web address. They must go inside and explore to learn what it is, then find their way back out.
Who it affects
| Who | What they experience | Impact |
|---|---|---|
| Screen reader users | They hear "frame" or a long web address, with no clue whether it's a video, an ad or the checkout form. | High impact |
| Low-vision users (magnification) | Affected only if they also use a screen reader, as many do. | Partial impact |
| Cognitive and neurodivergent users | Screen reader users with memory or attention difficulties lose track when frames sound the same. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | It fails WCAG 4.1.2 at Level A, the minimum. Complaints under Australia's Disability Discrimination Act point to WCAG 2.2 AA, and EN 301 549 applies in Europe. | High impact |
| Conversion | Payment, booking and chat tools often sit in frames. If people can't find them, they can't finish. | Moderate impact |
| SEO | Search engines ignore frame titles for ranking. No real search benefit. | Low impact |
| Brand trust | Unlabelled third-party embeds make a site feel careless to screen reader users. | Low impact |
| Cost to fix | A one-attribute fix. Put it in the shared embed component and every frame gets it. | High impact |
Fixing it in code
An embedded video
Don't
<iframe src="https://www.youtube.com/embed/abc123"></iframe>A screen reader says: “frame”
Do
<iframe src="https://www.youtube.com/embed/abc123" title="Video: How to set up your account"></iframe>A screen reader says: “Video: How to set up your account, frame”
The title attribute gives the frame a name screen readers announce.
A hidden tracking frame
Don't
<iframe src="/tracker.html" width="0" height="0"></iframe>A screen reader says: “frame”
Do
<iframe src="/tracker.html" width="0" height="0" title="Analytics, no content" aria-hidden="true" tabindex="-1"></iframe>A screen reader says: “(nothing — the frame is skipped)”
Frames with nothing to read should be named and hidden from screen readers.
Designer's handoff note
When you place an embed in a design, write its frame title in the notes — short, unique and saying what it is, like "Map: our Sydney office".
Quick test
Tool
NVDA (opens in a new tab) (free, Windows)
Checklist
- Pass
- Each frame has a clear, unique name that says what it holds.
- Fail
- You hear just "frame", a web address, or the same name twice.
Check these at the same time
- The page has no title
document-title
What a green scan still misses
A scanner checks that a name exists. It can't tell if "iframe1" or "Untitled" actually describes the content — a person must judge that.
Reference
- Rule ID
frame-title- Raised by
- axe-core: “Frames must have an accessible name”
- WCAG
- 4.1.2 Name, Role, Value (opens in a new tab) · Level A · since WCAG 2.0
- Other standards
- EN 301 549 9.4.1.2 · RGAA 2.1.1
- Last reviewed
- 14 October 2026