Time, motion & flashing
The Page Refreshes or Redirects Itself After a Delay
The page reloads or jumps to another page on a timer, so people lose their place, their reading or their typing before they're ready.
meta-refresh-no-exceptionsWCAG 2.0Introduced in WCAG 2.0.Level AAAAAA — the highest level; beyond the Australian baseline (AA).
- Status
- ModerateModerate — An annoyance, with a workaround.CurrentScanners run this rule today.
- Owner
- DevContentTestProduct
- Audit
- AutomatedA scanner finds it, and a clean scan means it's fixed.
Why it matters
A delayed <meta http-equiv="refresh"> tag reloads the page or sends people elsewhere after a set time. Nobody asked for it, and nobody can stop it.
People who read slowly, use a screen reader or zoom in get pulled away mid-sentence. Their focus jumps back to the top, and anything they typed may be gone.
Who it affects
| Who | What they experience | Impact |
|---|---|---|
| Screen reader users | Reading stops and jumps back to the top of the page without warning. | High impact |
| Cognitive and neurodivergent users | The page changes before they've finished reading, which is confusing and stressful. | High impact |
| Low-vision users (magnification) | When zoomed in, they lose their spot and must find it again. | Partial impact |
| Keyboard-only users | Their focus resets to the top, so they must Tab all the way back. | Partial impact |
| Voice control users | A command in progress can land on a page that has just changed. | Partial impact |
| Motor and dexterity | Slow typing or pointing may not finish before the page reloads. | Partial impact |
Business & product impact
| Area | Why | Impact |
|---|---|---|
| Legal | This rule checks Level AAA criteria, above the usual WCAG 2.2 Level AA target. But timed refreshes can also break Level AA timing rules, so check them. | Moderate impact |
| Conversion | A reload that wipes a half-filled form or cart loses people at the worst moment. | Moderate impact |
| SEO | Search engines prefer proper server redirects to timed ones, but the gain is small. | Low impact |
| Brand trust | Pages that jump on their own feel broken and pushy. | Moderate impact |
| Cost to fix | Usually one line to remove. A server redirect or a refresh button is quick to add. | High impact |
Fixing it in code
A page that refreshes itself every minute
Don't
<meta http-equiv="refresh" content="60">
<h1>Live scores</h1>A screen reader says: “Live scores, heading level 1 … (a minute later, the page reloads and reading starts again from the top)”
Do
<h1>Live scores</h1>
<p>Last updated 2:15 pm.</p>
<button type="button">Refresh scores</button>A screen reader says: “Refresh scores, button”
People update the page when they choose, not when a timer does.
A page that moved
Don't
<meta http-equiv="refresh" content="5; url=/new-page">
<p>This page has moved. Redirecting in 5 seconds…</p>A screen reader says: “This page has moved. Redirecting in 5 seconds… (then the page changes mid-sentence)”
Do
<!-- Best: a 301 redirect set up on the server. If you can't, redirect instantly: -->
<meta http-equiv="refresh" content="0; url=/new-page">
<p>This page has moved to <a href="/new-page">the new page</a>.</p>A screen reader says: “This page has moved to the new page, link”
An instant or server redirect never cuts anyone off part-way through.
Designer's handoff note
Don't design pages that change on a timer. If content must stay fresh, show when it was last updated and give a clear refresh button.
Product owners: decide if auto-refresh is truly needed. If so, let people turn it off.
Quick test
Tool
Your browser's View Source
Checklist
- Pass
- There's no refresh tag, or its delay is 0.
- Fail
- The tag has a delay above 0, like `content="30"`.
What a green scan still misses
A scanner finds the <meta> tag, but not refreshes done with JavaScript timers. Watch the page for a few minutes to catch those.
Reference
- Rule ID
meta-refresh-no-exceptions- Raised by
- axe-core: “Delayed refresh must not be used”
- WCAG
- 2.2.4 Interruptions (opens in a new tab) · Level AAA · since WCAG 2.0
- 3.2.5 Change on Request (opens in a new tab) · Level AAA · since WCAG 2.0
- Last reviewed
- 14 October 2026