Pour les utilisateurs désactivant les scripts de leur navigateur, c'est la garantie que la redirection fonctionne et qu'ils ont accès aux pages ainsi pointées. Le bénéfice est le même pour les utilisateurs de navigateurs textuels comme Lynx qui ne gèrent pas les scripts.
Valeur ajoutée pour le site
Une redirection côté serveur garantit que la page sera effectivement envoyée sur le poste de l'utilisateur.
Note : de manière générale, il est conseillé de faire l'évaluation d'un critère via l'analyse de son code source. Ce procédé d'évaluation par le code source est détaillé ci-après quand il est possible : procédé d'évaluation en 3 étapes via le ou les tests associés au critère. Les procédés d'évaluation par différents outils sont donnés en complément de l'évaluation par le code source.
Par le code source
Sélectionner le(s) élément(s) à tester : ouvrir le code source de la page Web et sélectionner le code associé à tous les éléments suivants (exemple de code source : <metahttp-equiv="refresh" content="délai pour la redirection en seconde" url="nom_de_la_page.html" />) :
balise meta avec l'attribut http-equiv="refresh"
fonction javascript
Appliquer le(s) test(s) suivant(s) :
Test 13.2.a [Argent] : Chaque redirection automatique de page Web s'effectue-t-elle côté serveur ?
Valider le critère : le critère est validé si vous répondez oui au test applicable précédent.
Par l'utilisation d'outils
Pour une liste complète des outils utilisés pour évaluer l'accessibilité des pages web et un résumé de leurs principales fonctionnalités, reportez-vous à la page Outils d'aide à l'évaluation.
Evaluer avec la Barre d'outils Accessibilité du Web pour Internet Explorer (version 2.0 beta en français) :
Sous Internet Explorer, ouvrir la page à analyser.
Dans le menu "Informations" de la Barre d'outils Accessibilité du Web (version 2.0 beta), activer l'option "Informations sur les métadonnées [nouvelle fenêtre]" pour détecter la présence de la balise refresh
Si présent, la balise refresh est affiché dans la colonne "HttpEquiv" ainsi que le temps prévu entre chaque rafraîchissement de page (ex : 300).
Dans le menu "IE" de la Barre d'outils Accessibilité du Web (version 2.0 beta), désactiver l'option "Activer le javascript".
Recharger la page en appuyant sur la touche F5.
Cliquer sur les liens faisant l'objet d'une redirection.
Vérifier que chaque redirection automatique de page Web s'effectue côté serveur.
Si c'est le cas, le test est validé.
Evaluer avec la Barre d'Outils Web Developper pour Firefox (version
1.1.4 en français) :
Dans le menu "Désactiver" de la Barre d'Outils Web Developper (version 1.1.4), activer l'option "Désactiver JavaScript" puis l'option "Tout le JavaScript".
Recharger la page en appuyant sur la touche F5.
Cliquer sur les liens faisant l'objet d'une redirection.
Vérifier que chaque redirection automatique de page Web s'effectue côté serveur.
Avertissement : les informations du paragraphe "Comment mettre en oeuvre" sont données à titre indicatif. Les contenus des sous-paragraphes Implémentation et Exemple de bonne pratique ne présentent pas tous les codes d'implémentation.
Qui est concerné ?
Le développeur doit veiller au respect de ce critère.
Implémentation
La redirection est utilisée le plus souvent pour résoudre les problèmes suivants :
Le site a changé d'adresse, c'est un moyen d'amener l'utilisateur directement dans le nouveau site
Les sites de paiements en ligne redirigent l'utilisateur vers la page d'origine après acceptation du paiement
La structure d'un ensemble de sites amène les concepteurs à regrouper les entrées sur un site principal (forwarding)
Certaines pages adaptent le contenu à la taille de la fenêtre du navigateur voulue par l'utilisateur. La redirection automatique, associée aux évènements de détection du changement de taille de la page permet cette gestion
Actuellement, la méthode de redirection la plus utilisée consiste à intégrer à la page une balise META en entête :
Grâce à cette balise, la redirection s'effectue automatiquement après 5 secondes.
Cependant, cette possibilité est à éviter, car l'utilisateur n'est pas prévenu qu'un tel mécanisme existe dans la page appelée, ce qui peut être troublant. De plus, cette méthode est déconseillée par le W3C.
Préférer une solution implémentée du côté serveur, le programme ou script serveur assurant lui-même la redirection vers la page voulue.
Sinon, la solution la plus simple consiste en un lien clairement visible dans la page. L'utilisateur déclenche alors lui-même la redirection en sachant ce qu'il fait.
Exemple de mauvaise pratique
Le code qui suit opère une redirection automatique dès le chargement de la page, ce qui interdit à l'utilisateur tout contrôle.
Voici quelques exemples des possibilités de redirection à implémenter côté serveur.
Code Php de redirection : utilisation de la fonction "Header"
<?PHP
header("Status: 301 Moved Permanently");
header("Location: http://www.le beau nouveau site.com/index.php");
exit();
?>
L'usage délicat de cette fonction en Php dépend des versions de Php et ne doit être précédé d'aucun code de sortie de données (tels echo, Print).
Code Asp de redirection : utilisation de la fonction "AddHeader"
<% response.status="301 moved permanently"
response.addheader location, "http://www.lebeaunouveausite.com/nouveau.php"
response.end %>
Code Php de redirection : par appel d'un script distant
//construction de la requête
// L'url principale
$requete = "http://www.le beau nouveausite.com/index.php?";
// Les arguments si nécessaire
$requete .= "id=".$id;
// Exécution du script distant
$connect = @file($requete); // exécution de la requête vers le serveur
// Récupération des informations de la page appelée
$resultat = trim($connect[0]);
print($resultat);
// Fin du script en cours
exit;