Page title, frames and zoom Rule

Frames on the same page must have different titles frame-title-unique

If a page has several frames, each needs its own title. Screen readers list frames by title; three called Video are no help. Say what each one shows: Video: Monday rehearsal, Video: Christmas concert.

Websight reports this as Frames must have a unique title attribute

Who it affects

Someone using a screen reader on the brass band's media page opens the frame list and sees YouTube video player six times.

Someone using voice control says click Video and is asked which of four identical names they meant.

Someone with a cognitive disability cannot work out which frame to skip and which to read.

Broken versus fixed

The broken markup is shown as code rather than rendered, because the effect is in how it is announced or handled, not how it looks.

Broken
<iframe src="https://video.example/embed/1" title="YouTube video player"></iframe>
<iframe src="https://video.example/embed/2" title="YouTube video player"></iframe>

Two frames, one name. A frame list shows two identical entries.

Fixed
<iframe src="https://video.example/embed/1" title="Video: Monday rehearsal, March"></iframe>
<iframe src="https://video.example/embed/2" title="Video: Christmas concert in the square"></iframe>

Each frame is announced with what it shows.

Test it by hand in two minutes

  1. In the Elements panel search for <iframe and list the title values. Any repeats fail.
  2. With a screen reader, open the frame list and read the names together.
  3. Pages built from a template (a gallery, a list of events) are the usual cause. Check the title is built from each item's name, not a fixed string.

The fix

Before
<iframe src="https://video.example/embed/1" title="Video"></iframe>
<iframe src="https://video.example/embed/2" title="Video"></iframe>
After
<iframe src="https://video.example/embed/1" title="Video: Monday rehearsal, March"></iframe>
<iframe src="https://video.example/embed/2" title="Video: Christmas concert in the square"></iframe>

Put the thing that differs in the title. The frame's title attribute, not the page title inside it, is what this check reads.

Template loop

Before
<iframe src="{{url}}" title="Video"></iframe>
After
<iframe src="{{url}}" title="Video: {{event_name}}"></iframe>

Build the title from data you already have.

Common mistakes

  • Numbering them Video 1, Video 2. Unique, but says nothing.
  • Making the titles differ only by spacing or capital letters.
  • Changing the document title inside the frame and leaving the title attribute the same.

WCAG criteria this rule maps to

axe-core tags this rule as WCAG 2.2 level A. It is one of the checks for:

The scanner compares the title attributes of all iframe and frame elements on the page and reports any value used more than once. It does not compare aria-label values, and it cannot tell whether the distinct titles mean anything. Automated tools find only part of the accessibility problems on a page; a pass on this rule is not a pass on the criterion.

Scan your own page for this and 63 other checks

Open any page in Chrome, click Websight, and get a score out of 100 with every issue explained and a draft fix snippet per element.

Add Websight to Chrome

Free scans, no account, nothing leaves your computer. Automated tools find only part of the problems; the extension says so on every report.