Do not redirect with a timed meta refresh
F40 is a documented failure, so a page carrying this pattern has a defect rather than a technique. A meta refresh with a delay imposes a time limit on somebody who did not ask for one, and the interim page is a page they were never meant to finish reading. Never is the usual advice, and the published test is more precise than that. Two values pass. A delay under one second, which is an instant redirect, and a delay over 72,000 seconds, which is the twenty hour exception written into the timing rule. Two exception checks also come before a finding stands. Real-time activity and content where the timing is essential are both allowed, so a short redirect at an auction close is not automatically the same defect as one on a page that moved. The better answer sits on the server. Answer with a 301 and be done.
How we find it in an audit
A crawler finds every meta refresh on the site and reads the delay, which makes the mechanical half fast and complete. Then a reviewer looks at each hit and asks the two exception questions before writing anything up. Is this real-time content. Is the timing essential to what the page does. Most of the time the answer is no twice, the finding stands, and the repair is a server-side redirect that never shows the interim page to anybody.
How affected users experience it
A five-second countdown is roughly one sentence of screen reader output. The reader starts at the top of the interim page, gets partway through the explanation of where they are going, and the whole document is replaced without a word about why. Then Back stops working, because Back returns to the page that redirects, which redirects again. Somebody reading slowly, or magnifying, or using a braille display needs longer than five seconds for a paragraph. The page was timed for a reader who glances.
Passes vs. fails
Passes
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-home
<!-- Where server config is out of reach, an instant redirect is accepted: -->
<meta http-equiv="refresh" content="0; url=https://example.com/new-home">Fails
<meta http-equiv="refresh" content="5; url=https://example.com/new-home">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 F40: Failure due to using meta redirect with a time limit. 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.