Skip to main content
Beta: Front-End Checklist is currently in beta. Some issues are still being fixed. Thanks for your patience.

Provide titles for iframes and frames

iframes and frames must have a title attribute to describe their content.

Utilities
Quick take
Typical fix time 5 min
  • Add a descriptive `title` attribute to every `<iframe>`
  • Ensure titles clearly describe the frame's content
  • Helps screen reader users navigate between frames
Why it matters: Frame titles allow users of assistive technology to quickly understand the content of an iframe without having to navigate into it, which is crucial for navigation and orientation.

Rule Details

Iframes and frames must have a title attribute that describes their purpose or content so assistive technologies can identify them. This is one of the quickest ways to make embedded content navigable, especially when the frame contains a map, video, or external app, and it follows the same descriptive-label logic discussed in WCAG guidance (opens in new tab).

Code Examples

Correct Implementation

<iframe title="Map of our office location" src="https://maps.google.com/..."></iframe>
 
<iframe title="Tutorial video: How to use our product" src="https://youtube.com/..."></iframe>

Incorrect Implementation

<!-- No title provided -->
<iframe src="https://example.com/ad"></iframe>
 
<!-- Generic or unhelpful title -->
<iframe title="frame" src="https://example.com/content"></iframe>

Why It Matters

  • Orientation: Screen readers often list frames on a page. A descriptive title helps users know which frame they are entering.
  • Efficiency: Users can skip over frames that don't interest them (like ads) if they are clearly labeled.
  • Context: For embedded content like maps or videos, the title provides immediate context about what is inside the frame.

Best Practices

Be Descriptive: The title should accurately describe the content.

<title="Financial growth chart for 2023">

Keep it Concise: Don't include redundant words like "iframe" or "embedded content".

<title="User registration form">

Don't use the name attribute as a substitute: The name attribute is for scripting/targets, not for accessibility.

<!-- Incorrect -->
<iframe name="newsletter-signup" src="..."></iframe>

Exceptions

  • Evaluate the rendered experience before treating a static-code smell as a blocker; interaction timing, browser behavior, and assistive technology output often determine severity.
  • Not every secondary accessibility issue deserves equal weight; prioritize the issue that most directly blocks perception, operation, or understanding.
  • Avoid adding redundant markup or ARIA solely to satisfy a rule when a simpler semantic implementation would eliminate the issue entirely.

Standards

  • Align the implementation with W3C WAI: WCAG Overview and verify the rendered experience, not only the source code.
  • Align the implementation with MDN: Accessibility and verify the rendered experience, not only the source code.

Verification

Automated Checks

  • Inspect the browser accessibility tree or accessibility pane for the relevant element, role, or accessible name.
  • Run an automated accessibility checker such as axe or Lighthouse where applicable.

Manual Checks

  • Test the affected UI with keyboard-only navigation and confirm the rule holds in the rendered experience.
  • Re-test one representative user flow with a screen reader if this rule affects a key interaction.

Use with AI

Copy these prompts to use with your AI assistant, or install the MCP server to use directly from Claude, Cursor, or Windsurf.

Check

Verify implementation

Verify that all <iframe> and <frame> elements have a non-empty 'title' attribute.

Fix

Auto-fix issues

Add a descriptive 'title' attribute to the <iframe> tag that explains what the embedded content is.

Explain

Learn more

Explain how frame titles help screen reader users identify and bypass embedded content like advertisements or social media widgets.

Review

Code review

Review the rendered markup and interactive states that affect Provide titles for iframes and frames. Flag exact elements, roles, labels, focus behavior, or keyboard interactions that violate the rule, and note how to verify the fix with browser accessibility tooling or assistive tech.

Sources

References used to support the guidance in this rule.

Further Reading

Tools and supplementary material for exploring the topic in more depth.

axe DevTools
deque.comTool

Rules that often go hand-in-hand with this one.

Provide alternative text for objects

The `<object>` element must contain alternative content to ensure accessibility for users who cannot view the primary content.

Accessibility
Ensure accesskey values are unique

Checks that accesskey values are unique to avoid shortcut conflicts.

Accessibility
Ensure identical links have consistent destinations

Links with the same text must point to the same destination or be distinguishable.

Accessibility
Provide accessible names for tree items

All elements with role="treeitem" must have a descriptive accessible name so screen reader users can navigate hierarchical tree widgets.

Accessibility

Was this rule helpful?

Your feedback helps improve rule quality. This stays internal for now.

Loading feedback...
0 / 385