Powered by
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.
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 | What they experience | Impact |
|---|---|---|
| Screen reader users | Unknown 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 users | Unknown until tested — they may get stuck inside the frame or be unable to reach parts of it. | Partial impact |
| Cognitive and neurodivergent users | Unknown until tested — unclear errors or instructions in the frame may block them. | Partial impact |
| Voice control users | Unknown until tested — controls in the frame may have no name they can say. | Partial impact |
| Motor and dexterity | Unknown until tested — small targets in the frame may be hard to hit. | Partial impact |
| Deaf and hard of hearing | Unknown until tested — a video in the frame may have no captions. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | This 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 |
| Conversion | Frames often hold payment, booking and sign-up forms. An untested barrier there stops a sale at the last step. | High impact |
| SEO | No search benefit at all — this is about test coverage. | Low impact |
| Brand trust | People blame your site, not the vendor, when an embedded form doesn't work. | Moderate impact |
| Cost to fix | Usually 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