WCAG 4.1.2 (A)
Iframes have no title attribute
What this failure is
An <iframe> embeds one web page inside another — a YouTube video, a Google Map, a Stripe payment form. Screen readers treat each iframe as a landmark on the page and announce it as the user tabs to it. If the iframe has a title attribute (title="YouTube video: how to tie a bowline"), the user hears a useful description. If the title is missing, they hear either "frame" or the src URL of the iframe, which for a modern embed is usually a long string of query parameters that reveals nothing about the content. The user then has to enter the frame and explore blindly to work out what is inside.
Reference: WCAG 4.1.2 (A) — the authoritative spec.
Who it affects
- Screen reader users: Untitled iframes appear in the landmark list as "frame" or as a raw URL; a page with three untitled iframes offers no way to pick the map from the video from the newsletter widget.
- Keyboard-only users: Tabbing into an untitled iframe with no visible indication that focus has entered another document is disorienting; a title gives an audible cue when a screen reader is present.
- Users of screen magnifiers: Magnifier users often skim landmarks; untitled iframes get skipped, and important content (a booking widget, a checkout iframe) is missed entirely.
How to fix it
Concrete steps for the four platforms most small e-commerce sites run on. If you use a different stack, the underlying HTML change is the same.
Shopify
The usual sources are embedded YouTube videos in blog posts and product descriptions, and third-party review widgets. In the rich-text editor click the video, choose Insert Video, and paste the URL — Shopify wraps it in an iframe but does not add a title attribute, so switch to the source-code view (< > icon in the toolbar) and edit the iframe tag to add title="Product demo video". For app-injected iframes (Judge.me reviews, Klarna widgets, chat), the fix has to happen in the app; contact the developer and mention WCAG 4.1.2.
WooCommerce
YouTube and Vimeo embeds inserted via the block editor come out untitled. Click the embed block, switch to HTML view (three-dot menu > Edit as HTML), and add title="..." to the iframe tag. For sitewide embeds (a Google Map in the footer widget), edit the widget in Appearance > Widgets and add the title attribute to the pasted iframe code. Some SEO plugins auto-inject titles for oEmbed content — check Yoast or Rank Math for an accessibility option before writing patches.
Wix
Wix's Video and YouTube widgets label their iframes automatically. Untitled iframes almost always come from the Embed HTML element (Add > Embed > Embed HTML) where a user has pasted raw iframe code. Edit the embed and add title="..." inside the iframe opening tag, then click Update. For Wix's Google Maps element, click the map, open Settings, and add an accessible name in the ARIA label field.
Squarespace
Squarespace's Video block titles its iframes with the video's own title so they usually pass. Problems appear when a user pastes raw embed code into a Code block or via Code Injection. Edit the Code block and add title="..." to each iframe tag. Squarespace does not add titles to third-party embeds you paste as raw HTML — you must add them yourself.
Notes
The title attribute on an iframe is different from the <title> tag inside the iframe's own document. The scanner checks the outer attribute because that is what screen readers announce when the user tabs to the frame. Iframes that are truly decorative and never receive focus can use aria-hidden="true" instead, which suppresses the whole element from assistive tech.
Check your own site
Our accessibility statement scan is free and reports findings only — we do not certify sites.