Skip to content
easeweb
Search topics

Pages that reload or redirect themselves on a timer

An order confirmation page carries a meta refresh that sends people back to the shop 10 seconds after it opens, whether or not they have read their order number.

WCAG 2.2
SC 2.2.1A
Required by
Section 508 · EN 301 549 (EU)
Broken <meta http-equiv="refresh" content="10; url=/">
The accessibility problem illustrated: No vision:Where was my order number?
01

The problem

Screen reader users, magnifier users and people who read slowly are moved off the order confirmation before they have read the order number.

02

Try it

Place the order, then try to read the confirmation and note the order number before the page moves on.

The confirmation sends you back to the shop 10 seconds after it opens, in real time, whatever you are doing. Then look at what a screen reader would be reading.

Broken Can you fix this?

BrokenA confirmation page that leaves after 10 seconds
Demo clock: starts when you place the order.
Northfold

Check your order

1 × Dot-grid notebook, £14

Delivery: Friday 23 October

Screen reader says:

(Place the order)

A recreated demo. The broken version is intentionally inaccessible.

03

The fix

Let people leave the page with a link when they are ready, and redirect a moved page on the server at once.

  1. 1Never reload or redirect a page on a timer, whether by meta refresh, a Refresh header or a script.
  2. 2End a confirmation page with a link to where people go next.
  3. 3Redirect a moved page on the server at once, before anything is shown.
Before A confirmation page that leaves after 10 seconds
<head>  <title>Order placed – Northfold</title>  <meta http-equiv="refresh" content="10; url=/"></head><body>  <main>    <h1>Thank you for your order</h1>    <p>Your order number is 4821.</p>    <p>Your parcel will arrive on Friday 23 October.</p>    <p>You will be taken back to the shop in 10 seconds.</p>  </main></body>
After A link that goes back when people are ready
<head>  <title>Order placed – Northfold</title></head><body>  <main>    <h1>Thank you for your order</h1>    <p>Your order number is 4821.</p>    <p>Your parcel will arrive on Friday 23 October.</p>    <p>      <a href="/">Continue shopping</a>    </p>  </main></body>

Fixing this with an AI coding assistant? Get this guide as Markdown, or get every guide in your coding agent.

04

Verify the fix

5 checks, no mouse.

Test with: Keyboard, Screen reader, Zoom

0 of 5 checked

Record the OS, browser and assistive-technology versions, the build, the date, and the actual result of each step. Repeat after the page templates, the checkout or the server's headers change.

Limits

This covers pages that reload or redirect themselves after a delay. Content that moves or scrolls by itself has its own guide, tickers, carousels and animations that can't be paused, and a session that signs people out is covered in session timeouts with no warning or way to extend. A payment or booking page from another provider, shown before your confirmation, is part of the same checkout: check it for a timed return as well. Screen readers differ in what they read when a page loads: test with the ones your users have.

This is a recreated teaching example, not a finding about a named client. The code is a starting pattern: test it in your own product. No completed assistive-technology test is claimed here.

Keep this fixed as your code changes.

Turn guides like this into rules your coding agents and CI follow, then have the result retested with a keyboard and screen readers.

How retests work