Skip to content

Structure & headings

A Frame on the Page Was Not Checked by the Scanner

The scanner couldn't look inside an embedded frame, so any barriers in it — a payment form, map or video — are still unknown and unfixed.

frame-testedBest practiceBest practice — not a WCAG requirement, but it helps people all the same.

Status
ModerateModerate — An annoyance, with a workaround.CurrentScanners run this rule today.
Owner
DevTestProduct
Audit
Automated+ManualA scanner finds it; a person confirms the fix.
Save as PDF (opens in a new tab)

Why it matters

A frame (an iframe) shows another page inside yours, like a payment form, booking widget or video player. The scanner needs its own script running inside the frame to test it. When it can't get in, it flags the frame and moves on.

This isn't a barrier by itself. But a clean scan can hide real problems in the frame. To people using your site, the frame is part of your page.

Who it affects

Who it affects, and how much
WhoWhat they experienceImpact
Screen reader usersUnknown until tested — the frame may have unlabelled fields or buttons that they can't use.Partial impact
Low-vision users (magnification)Unknown until tested — text or controls in the frame may have poor contrast or break when zoomed.Partial impact
Keyboard-only usersUnknown until tested — they may get stuck inside the frame or be unable to reach parts of it.Partial impact
Cognitive and neurodivergent usersUnknown until tested — unclear errors or instructions in the frame may block them.Partial impact
Voice control usersUnknown until tested — controls in the frame may have no name they can say.Partial impact
Motor and dexterityUnknown until tested — small targets in the frame may be hard to hit.Partial impact
Deaf and hard of hearingUnknown until tested — a video in the frame may have no captions.Partial impact

Business & product impact

Business & product impact, with how much each claim weighs
AreaWhyImpact
LegalThis rule is a best practice, not a WCAG requirement. But anything in the frame still counts under Australia's Disability Discrimination Act and WCAG 2.2 Level AA, even if a vendor built it.Moderate impact
ConversionFrames often hold payment, booking and sign-up forms. An untested barrier there stops a sale at the last step.High impact
SEONo search benefit at all — this is about test coverage.Low impact
Brand trustPeople blame your site, not the vendor, when an embedded form doesn't work.Moderate impact
Cost to fixUsually a small change to the test setup. Fixing barriers later in a vendor's frame can take much longer.Moderate impact

Fixing it in code

Don't switch off frame testing

Don't

axe.run(document, { iframes: false });

A screen reader says: “Scan passes, but no frame content was checked.”

Do

axe.run(document);

A screen reader says: “Scan includes every frame where the axe script can run.”

Frame testing is on by default. Turning it off hides everything inside frames.

Use a test tool that reaches into frames

Don't

await page.addScriptTag({ path: 'axe.min.js' });
const results = await page.evaluate(() => axe.run());

A screen reader says: “axe runs on the top page only, and flags each frame as not tested.”

Do

import AxeBuilder from '@axe-core/playwright';
const results = await new AxeBuilder({ page }).analyze();

A screen reader says: “axe is added to every frame, including other websites' frames, and all are tested.”

The builder adds the axe script inside each frame, not just the main page.

Fixing it in design and content

Third-party frames you can't test

Don't

Embed a vendor's payment frame and assume it's accessible.

A screen reader says: “Nobody knows whether people can pay.”

Do

Ask the vendor for an accessibility report, and test the frame yourself with a keyboard and screen reader.

A screen reader says: “You know what works and what the vendor must fix.”

You're responsible for what you embed, so get evidence it works.

Designer's handoff note

When you place an embedded widget, note who built it and who will test it. Ask for the vendor's accessibility report before you choose them.

Quick test

Tool

The keyboard alone

Checklist

Pass
You can see focus, reach every control, finish the task and leave the frame.
Fail
Focus disappears, a control can't be reached, or you get stuck inside the frame.

What a green scan still misses

This rule only says a frame wasn't tested. It can't tell you whether the content inside works — you must test it another way.

Reference

Rule ID
frame-tested
Raised by
  • axe-core: “Frames should be tested with axe-core”
WCAG
Best practice — not a WCAG requirement
Last reviewed
14 October 2026