Do not auto-reload pages with meta refresh
F41 is a documented failure and it is F40's twin, the same attribute with no destination in it. Instead of moving the user, the page reloads itself on a timer. Everything they were doing restarts. The same two passing values apply, under one second or over 72,000 seconds, and the same two exception checks come first, real-time content and timing that is essential. The published page is unusually blunt about the motive. This should not be used to simulate push, because no author can predict how long a reader needs, and a premature refresh disorients them. If people want the latest information, let them ask for it. A button that reloads on demand does everything the timer does and none of the harm.
How we find it in an audit
A crawler finds every meta refresh with no url in its content attribute, which is the reload form, and reads the interval. Then a reviewer applies the two exception checks and looks at what the page is for. We watch a real session as well, because the harm shows up in the middle of a task rather than in the markup, and a sixty-second refresh looks harmless right up until you are on a form at second fifty-nine.
How affected users experience it
A reload throws a screen reader back to the top of the document. Everything already read is read again, and the place the user had reached is gone with no way to ask where it was. A magnifier user is returned to the top left corner of a page they were reading the bottom of. Anybody mid-form loses what they had typed. All three were doing nothing wrong, and all three restart, on a schedule, for as long as they stay.
Passes vs. fails
Passes
<button onclick="refreshScores()">Refresh scores</button>
<!-- Or offer auto-update as something the user switches on and can switch off. -->Fails
<meta http-equiv="refresh" content="60">
<!-- Every sixty seconds, from the top, whatever the reader was doing. -->How this gets tested
The W3C publishes test rules that define what a checker looks for here.
- Meta element has no refresh delayA tool can check this
- Meta element has no refresh delay (no exception)A tool can check this
The other techniques filed under this rule
11 guides on this site are filed under 2.2.1 Timing Adjustable. W3C documents this one as a failure of that rule, so it describes a way the rule gets broken rather than a way to pass it.
- G4sufficientLet users pause moving content and resume it
- G133sufficientOffer longer session limits before forms begin
- G180sufficientLet users extend time limits tenfold
- G198sufficientLet users switch time limits off entirely
- SCR1sufficientLet users extend a script's time limit
- SCR16sufficientWarn users before a time limit runs out
This guide is our interpretation of W3C technique F41: Failure of Success Criterion 2.2.1, 2.2.4, and 3.2.5 due to using meta refresh to reload the page. W3C publishes its techniques as guidance rather than as the standard, and says so on every one of them. The success criterion is what conformance is measured against, and a technique is one documented way to meet it.