Common Violations

Missing Iframe Titles: Naming Embedded Content

An <iframe> embeds an entire separate document inside the current page — a YouTube video, a map, a payment form, a chat widget. Sighted users get visual context for free: the video thumbnail, the map's location pin. A screen reader user gets none of that unless the iframe itself is named, and without a title attribute, it announces as something like "iframe" with no indication of what's inside.

This falls under WCAG Success Criterion 4.1.2 (Name, Role, Value) and 2.4.1 (Bypass Blocks) — an unlabeled iframe is both unidentified and, since it's often a large embedded block, a navigation obstacle in its own right.

The fix

Add a title attribute describing what the embedded content actually is:

<!-- Before -->
<iframe src="https://www.youtube.com/embed/xyz"></iframe>

<!-- After -->
<iframe
  src="https://www.youtube.com/embed/xyz"
  title="Product demo video: setting up your first scan"
></iframe>

The title should describe the content or purpose of the embed, not just repeat generic boilerplate like "embedded content" or "iframe" — that technically satisfies the letter of the rule while providing none of the actual context the criterion exists to give.

<!-- Technically has a title, but tells the user nothing -->
<iframe src="..." title="iframe"></iframe>

<!-- Actually useful -->
<iframe src="..." title="Store location map"></iframe>

Where this is easy to miss

Third-party embed widgets (maps, payment processors, chat/support tools, video players) frequently ship without a title by default in their example embed code — the vendor's copy-paste snippet is often the actual source of the violation, not anything written in-house. Always add or override the title attribute after pasting in a third-party embed snippet, and check it again if the vendor changes their embed code during an integration update.

Nested/nameless iframes used purely for layout tricks (an old-style ad slot, a legacy cross-domain workaround) are the other common source — if the iframe genuinely carries no meaningful content for any user, consider whether it can be removed entirely rather than just labeled.

Official references

Common questions

Why does an iframe need a title?
An iframe embeds a whole separate document. Sighted users get visual context; a screen reader user gets none unless the `title` names what the frame contains, so an untitled iframe is announced only as an unexplained region.
What makes a good iframe title?
A short, specific description of the frame's purpose — naming the video, the map location, or the widget. Avoid generic values like the word iframe or a raw filename.
Which WCAG rule covers iframe titles?
SC 4.1.2 (Name, Role, Value), Level A, and it also supports 2.4.1 (Bypass Blocks). axe-core reports it as `frame-title`.

Want to see how your own site scores?

Run a free accessibility scan