Avoid timed refresh/redirects
Content available in English only.
Accessibility isn’t just about avoiding violations — it’s about ensuring that everyone can use your product with confidence. This guide explains each rule’s intent, highlights common issues, and shows how to fix them according to WCAG and the European Accessibility Act (EAA).
These guidelines do not replace the official WCAG standards. They’re concise, developer-focused notes to help you identify and fix issues effectively.
The user, not the system, decides when the page updates.
Why this matters and how to fix it
Why this matters
Automatic refreshes or redirects interrupt a user's workflow without their consent. These interruptions can reset context, break form entry, disrupt screen reader focus, and cause disorientation. Users must remain in control of when content updates or navigation occurs.
How to fix this issue
Remove `<meta http-equiv="refresh">` entirely. If content needs updating, notify the user and allow them to trigger the update manually (e.g., 'New data available — Refresh'). For dynamic content updates, use ARIA live regions, not timed reloads.
Developer guidance
This issue often appears in dashboards, news tickers, monitoring screens, and legacy CMS templates. Use a global 'update available' banner pattern in your design system, not auto-refresh logic. In frameworks, audit server-rendered shell layouts where meta refresh tags may still exist.
Code examples
Incorrect Implementation
<meta http-equiv="refresh" content="600; url=/news">Correct Implementation
<p>New updates are available.</p>
<button id="refresh">Refresh now</button>Real-World Examples
Before
<meta http-equiv="refresh" content="30"> <!-- Live dashboard auto-refreshes every 30 seconds → interrupts users completing tasks -->After
<section aria-live="polite">
<p>New data available. <button>Refresh</button></p>
</section>
<!-- User decides when to refresh → no interruption -->Manual testing
- 1. Check the <head> for any `<meta http-equiv="refresh">` tags.
- 2. If found, confirm whether the page refreshes without user interaction.
- • Expected: The page does **not** refresh automatically.
- 3. Interact with content (e.g., type in a field, move focus).
- • Expected: No unexpected context or focus change occurs.
- 4. Turn on a screen reader and navigate the page.
- • Unexpected refreshes should not interrupt reading or navigation.
- 5. If periodic updates are needed (e.g., dashboards):
- • Verify a visible 'Refresh' button is provided.
- • Verify no action or context is lost when refresh is triggered.
Trusted by organizations across Europe working toward WCAG and EAA conformance