Frames must have a title
Estimated effort: about 5 minutes.
Every <iframe> or <frame> on a page needs a title attribute describing what's inside it, such as "Credit card payment form" for an embedded payment widget. Without a title, a screen reader user hears only "frame" or the iframe's file name, with no idea whether it contains a form, a map, or an ad, so they can't decide whether it's worth entering.
How to fix it
- Find every <iframe> or <frame> element on the page — common examples in e-commerce are embedded payment iframes (a hosted card-entry form from a payment processor), embedded maps on a store-locator or contact page, and embedded video players.
- Add a title attribute that briefly and specifically describes the frame's purpose, e.g. title="Credit card payment form" on a checkout payment iframe, or title="Store location map" on an embedded map.
- If the iframe's src points to a third-party payment processor's hosted form, check whether that provider lets you pass a custom title/name parameter; if not, you can still often set the title attribute on the wrapping <iframe> tag your site outputs even though the frame's inner content is controlled by the third party.
- Do not use a generic or placeholder title like "frame", "untitled", or the raw URL — the title must describe what the frame contains.
- Reload the page and confirm the iframe now has a non-empty, descriptive title in the browser's Accessibility Inspector.
Before and after
Before
<iframe src="https://payments.example.com/card-form"></iframe>
After
<iframe src="https://payments.example.com/card-form" title="Credit card payment form"></iframe>