Redirection automatique par meta refresh
Le problème
La redirection automatique par meta refresh est une technique obsolète qui pose de sérieux problèmes d'accessibilité. Le critère 13.1 du RGAA exige que l'utilisateur ait le contrôle de chaque limite de temps qui modifie le contenu de la page. La balise <meta http-equiv="refresh" content="5;url=/nouvelle-page"> redirige automatiquement l'utilisateur vers une autre page après un délai donné, sans lui demander son accord et sans qu'il puisse empêcher la redirection. Le meta refresh pose plusieurs problèmes majeurs. Premièrement, il désoriente les utilisateurs de lecteurs d'écran. L'utilisateur arrive sur une page, commence à la lire, et soudain le contenu change complètement car la page a été rechargée ou redirigée. Le lecteur d'écran recommence la lecture depuis le début de la nouvelle page, et l'utilisateur ne comprend pas ce qui s'est passé. Deuxièmement, il empêche les utilisateurs lents d'interagir avec la page. Une personne qui a besoin de plus de temps pour lire ou comprendre le contenu (troubles cognitifs, dyslexie, personnes âgées, non-francophones) peut être redirigée avant d'avoir fini de lire. Troisièmement, il interfère avec le bouton Retour du navigateur : après une redirection meta refresh, le bouton Retour ramène à la page qui redirige, créant une boucle infinie. Le meta refresh avec un content="0" (redirection immédiate) est techniquement moins problématique pour l'utilisateur car il n'a pas le temps de commencer à interagir avec la page. Mais la solution correcte pour une redirection est toujours une redirection HTTP côté serveur (code 301 ou 302), qui est instantanée, transparente pour l'utilisateur, et correctement gérée par les lecteurs d'écran et les moteurs de recherche. Le meta refresh avec un délai supérieur à 0 est aussi utilisé pour rafraîchir automatiquement une page (actualités en temps réel, tableaux de bord). Ce cas est aussi problématique : le rafraîchissement inattendu de la page fait perdre le focus, la position de lecture, et le contexte à l'utilisateur.
Votre site a-t-il ce problème ?
106 critères RGAA analysés en 5 minutes par notre IA.
Impact sur les utilisateurs
Pour les personnes utilisant un lecteur d'écran, une redirection ou un rafraîchissement automatique est une expérience désorientante. Le lecteur d'écran est en train de lire le contenu de la page quand soudain tout change. L'utilisateur ne sait pas si c'est une erreur, si la page a planté, ou si le contenu a été mis à jour. Il perd sa position de lecture et doit recommencer depuis le début. Pour les personnes ayant des troubles cognitifs ou des difficultés d'apprentissage, les changements de contenu inattendus sont source de confusion et d'anxiété. Elles peuvent ne pas comprendre pourquoi la page a changé et croire qu'elles ont fait une erreur. Les personnes lentes à lire (dyslexie, troubles visuels, non-francophones) sont privées du temps nécessaire pour consulter le contenu si la page est redirigée ou rafraîchie trop rapidement. En termes de référencement, Google déconseille l'utilisation de meta refresh pour les redirections et peut pénaliser les sites qui l'utilisent au lieu de redirections HTTP 301/302 appropriées.
Exemple de code
<!-- Redirection automatique après 5 secondes -->
<head>
<meta http-equiv="refresh" content="5;url=https://example.com/new-page">
</head>
<body>
<p>Vous allez être redirigé dans 5 secondes...</p>
</body>
<!-- Rafraîchissement automatique toutes les 30 secondes -->
<head>
<meta http-equiv="refresh" content="30">
</head><!-- Solution 1 : Redirection HTTP côté serveur (recommandé) -->
<!-- Dans .htaccess (Apache) -->
<!-- Redirect 301 /old-page https://example.com/new-page -->
<!-- Solution 2 : En-tête HTTP (Node.js/Express) -->
<!-- res.redirect(301, '/new-page'); -->
<!-- Solution 3 : Si le rafraîchissement est nécessaire,
donner le contrôle à l'utilisateur -->
<body>
<p>De nouvelles données sont disponibles.</p>
<button type="button" onclick="location.reload()">
Actualiser la page
</button>
<!-- Ou utiliser une zone ARIA live pour les mises à jour -->
<div aria-live="polite" id="updates">
<!-- Les mises à jour sont injectées ici sans recharger la page -->
</div>
</body>Questions fréquentes
Peut-on utiliser meta refresh avec un délai de 0 seconde ?
Comment rafraîchir le contenu sans recharger la page entière ?
Le meta refresh est-il interdit par le RGAA ?
Google pénalise-t-il le meta refresh ?
Les Single Page Applications (SPA) sont-elles concernées ?
Votre site a-t-il ce problème ?
Scrutia audite votre site sur 106 critères RGAA en 5 minutes. Navigation clavier, composants ARIA, focus visible, contrastes, et bien plus.
Lancer un audit gratuit