# Guide AccessiWeb

vous êtes ici : Accueil > Fiches AccessiWeb : Contenus accessibles > Fiche 13.2

## Fiche 13.2 : Si une redirection automatique est présente, s'effectue-t-elle sans l'intermédiaire d'un script ?

Sommaire de la fiche :

- Carte d'identité
- Comprendre

- Comment évaluer
- Comment mettre en oeuvre

- Illustrations
- Références

### Carte d'identité

- Critère AccessiWeb : 13.2
- Niveau AccessiWeb : bronze
- Point(s) de contrôle WCAG 1.0 correspondants (Priorité 2 de WAI) : 7.5

revenir en haut de la page

### Comprendre

#### Bénéfices pour les utilisateurs

- Bénéfice 1 :
  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

- Bénéfice 1:
  Une redirection côté serveur garantit que la page sera effectivement envoyée sur le poste de l'utilisateur.

revenir en haut de la page

### Comment évaluer

#### Par le code source

1. Rechercher les occurrences des commandes JavaScript "setTimeout", "location.href" ou les codes HTML onLoad associés à un appel de JavaScript.
   Si la lecture permet de mettre en évidence l'usage de ces commandes pour une redirection, le critère est invalidé.
2. Rechercher les balises `META...REFRESH`.
   La présence de ces balises n'invalide pas le critère, mais peut faire l'objet d'une remarque.

#### 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 AccessiWeb (version 1.0) :

1. Sous Internet Explorer, ouvrir la page à analyser.
2. Dans le menu "13: Contenus accessibles" de la Barre AccessiWeb, activer le critère 13.2.
3. Toutes les actions de la page générées par un javascript sont désactivées.
4. Cliquer sur les liens faisant l'objet d'une redirection et vérifiez si les redirections fonctionnent encore. Si ce n'est pas le cas, le critère est invalidé.
   Note : pour réactiver les javascripts de la page, cliquer sur le critère 13.2.

##### Evaluer avec la barre d'accessibilité AIS pour Internet Explorer (version 1.2 en français) :

1. Cliquer sur l'option "activer/désactiver le Javascript" du menu "Option IE".
2. Recharger la page en appuyant sur la touche F5.
3. Cliquer sur les liens faisant l'objet d'une redirection et vérifiez si les redirections fonctionnent encore. Si ce n'est pas le cas, le critère est invalidé.

##### Evaluer avec la Barre d'Outils Web Developper pour Firefox (version 1.0.2 en français) :

1. Activer l'option "Désactiver JavaScript" du menu "Désactiver".
2. Puis, activer l'option "Désactiver les redirections Meta" du menu "Désactiver".
3. Recharger la page en appuyant sur la touche F5.
4. Cliquer sur les liens faisant l'objet d'une redirection et vérifiez si les redirections fonctionnent encore. Si ce n'est pas le cas, le critère est invalidé.

##### Evaluer avec le lecteur d'écran Jaws (version 5 et 6.2 en français) :

Ce critère n'est pas évaluable par le lecteur d'écran Jaws.

revenir en haut de la page

### Comment mettre en oeuvre

#### 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, et conseillée sur la plupart des sites d'aide au développement, consiste à intégrer à la page une balise META en entête :

<meta http-equiv="refresh" content="5" url="http://www.le beaunouveausite.com" />

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.
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.

<meta http-equiv="refresh" content="5" url="http://www.le beaunouveausite.com" />

#### Exemple de bonne pratique

Voici quelques exemples des possibilités de redirection à implémenter côté serveur.

1. 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).
2. 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 %>

3. 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;

revenir en haut de la page

### Illustrations

Il n'y a pas d'illustration pour cette fiche.

revenir en haut de la page

### Références

#### Autres fiches à consulter

- Fiche 7.1 : Si un script nécessite une alternative pour être accessible, l'information donnée par cette alternative est-elle équivalente à l'information fournie par le script ?
- Fiche 7.2 : Des actions peuvent-elles être accomplies même si le périphérique pour lequel elles sont prévues est désactivé ?
- Fiche 13.1 : L'utilisateur a t-il le contrôle du rafraîchissement ?
- Fiche 13.3 : Le visiteur est-il averti lorsque de nouvelles fenêtres apparaissent ?
- Fiche 13.4 : Y a-t-il une alternative équivalente au script qui déclenche l'ouverture de nouvelles fenêtres ?

#### Autres ressources

- html Techniques (section 1.1.3) : depreciated elements in metadata
- Problèmes classiques dans les agents utilisateurs

revenir au sommaire de la fiche

revenir en haut de la page

Guide AccessiWeb (version 2.1, 30 août 2006) | Conditions d'utilisation | Contact