iframe Without an Accessible Name
Screen readers treat frames as landmarks you can jump between, and many offer a list of every frame on the page. That list is built from each frame's accessible name. An iframe with no title, no aria-label and no aria-labelledby has none, so it appears as "frame", or as the raw embed URL, and the user has to enter it to find out what is inside.
How common is this error?
We ran this validator over the home page of the Tranco top 5,000 websites in August 2026. 722 of the 2,656 sites we could reach hit it. That makes it the 5th most common accessibility problem we found, across 915 occurrences. See the full study.
Most frequent wording: The <iframe> has no "title" attribute. It is valid HTML, but a screen reader announces the frame with no name, which fails WCAG 4.1.2.
Why It Matters
This is the most common accessibility defect we find on real sites, and it comes almost entirely from copy-pasted embed snippets: YouTube, Google Maps, payment widgets and consent banners all ship without a title. It fails WCAG 4.1.2 (Name, Role, Value) at Level A. It is not, however, invalid HTML: the standard does not require the attribute, which is why we report it as a warning and not an error.
Common Causes
- Pasting an embed snippet from YouTube, Vimeo, Google Maps or a payment provider, none of which include a title attribute in the code they hand you.
- Ad, analytics and consent-management scripts that write frames into the page.
- A component wrapper where the title prop was made optional and then never passed at any call site.
- Assuming that aria-hidden on the frame removes the obligation, when it does not and creates a worse problem.
Code Examples
<!-- Nothing names this frame --> <iframe src="https://www.youtube.com/embed/abc123"></iframe> <!-- An empty title names nothing either --> <iframe src="https://maps.example.com/embed" title=""></iframe> <!-- Two frames, one name: the frame list is useless again --> <iframe src="/ad/top" title="Advertisement"></iframe> <iframe src="/ad/side" title="Advertisement"></iframe>
<!-- Describe what is inside --> <iframe src="https://www.youtube.com/embed/abc123" title="Video: installing the widget in three minutes"></iframe> <!-- aria-label names it just as well --> <iframe src="https://maps.example.com/embed" aria-label="Map of our Amsterdam office"></iframe> <!-- Point at a visible heading so the two stay in sync --> <h2 id="pricing-table">Pricing comparison</h2> <iframe src="/embed/pricing" aria-labelledby="pricing-table"></iframe> <!-- Distinct names when frames repeat --> <iframe src="/ad/top" title="Advertisement, top of page"></iframe> <iframe src="/ad/side" title="Advertisement, sidebar"></iframe>
How to Fix
- 1Add a title that describes the content of the frame, not the frame itself. "Map of our Amsterdam office" beats "Google Maps iframe": the screen reader already announces that it is a frame.
- 2aria-label and aria-labelledby give an accessible name just as well as title does. Use aria-labelledby when a visible heading already describes the embed, so the two cannot drift apart.
- 3Make the name unique on the page. Several frames sharing one title rebuilds exactly the problem the name was meant to solve.
- 4Check every third-party embed snippet you paste. None of the major providers include a title, so this is almost always inherited rather than written.
- 5For a frame with nothing in it for the user, such as a tracking beacon, the real fix is to keep it out of the initial HTML and inject it from script. If it has to stay in the markup, name it anyway.
Frequently Asked Questions
Is a missing iframe title invalid HTML?
Does aria-label count instead of title?
What about ad and tracking frames nobody interacts with?
Can I use aria-hidden to skip the frame instead?
Is title="" enough to satisfy the check?
Check Your Accessibility Now
Our accessibility checker detects this issue automatically.
Open Accessibility CheckerRelated Accessibility Errors
Missing ARIA Labels on Interactive Elements
Without an aria-label, icon buttons and image links are invisible to screen readers. Learn when and how to use aria-label and aria-labelledby correctly.
Button With No Accessible Text
A button holding only an icon announces as "button" with no purpose. Learn how to label close, menu and search buttons without changing how they look.
Missing Alt Text on Images
Missing alt text hides images from screen readers and Google Images. Learn why alt attributes matter for accessibility and SEO, and how to write them well.