1178 sujets

Accessibilité du Web

Pages :
Salut à tous!

Les amateurs de redirection de page après un laps de temps connaissent la balise suivante:


<meta http-equiv="refresh" content="5;page_suivante.php" />
<!--- Redirection vers page_suivante.php après un délai de 5 secondes durant lesquelles la page actuelle (page_premiere.php, par exemple) est affichée -->


Or, cette balise n'est pas du tout conforme aux standards en matière d'accessibilité parce qu'elle est susceptible, notamment, de casser la chaîne du bouton "Précédent" des navigateurs.

Comment faire si l'on tient tant à ce type de redirection? Smiley bawling

Pas de panique! De même qu'une redirection sans délai peut-être obtenue grâce à un envoi d'en-tête HTTP, de même on peut indiquer le délai.

Ainsi, en utilisant PHP et la fonction header(), le code ci-dessus sera remplacé (tout en haut de votre page, bien entendu Smiley cligne ) par le suivant:


[#red]<?php [/#]
[#blue]header[/#] ([#darkred]"Refresh: 5;URL=page_suivante.php"[/#]);
[#orange]// Redirection vers page_suivante.php après un délai de 5 secondes
// durant lesquelles la page actuelle (page_premiere.php, par exemple) est affichée[/#]
[#red]?>[/#]


Et cette technique réussit l'examen organisé par le validateur d'accessibilité. Smiley smile
Modifié par Victor BRITO (09 Oct 2006 - 11:59)
Salut, Vero!

Je ne faisais qu'offrir une lumière sur un point particulier de la redirection de page.

Bien entendu, la redirection via les en-têtes HTTP est une des solutions avantageuses (malgré quelques inconvénients, liés à la fonction header() Smiley cligne ), comme la redirection via Apache et .htaccess, que je connais aussi Smiley cligne .
Ce forum est davantage spécfifique à HTML/CSS dans une approche de respect des standards et de l'accessibilité ...

Il est vrai que ton sujet aborde ces points, mais tant qu'à en parler pour le lecteur néophyte, autant le faire de façon complète ... d'autant que d'autres sites plus généraux le font déjà très bien.
Smiley cligne
Modifié par Vero (09 Oct 2006 - 13:07)
Dans un premier temps il faudrait voir si cette page affichée 5 secondes a une quelconque utilité pour le visiteur. Si la réponse n'est pas oui à 200 % il faut virer cette redirection.
Une adresse pour vérifier ?
Victor BRITO a écrit :
(...)

Et cette technique réussit l'examen organisé par le validateur d'accessibilité. Smiley smile


... tout en gardant bien en tête qu'un validateur d'accessibilité, cela n'existe pas et ne peut exister. À moins, bien sûr, qu'il ne s'agisse d'un humain. Et encore!

À chaque fois, j'ai tendance à bondir quand je vois cette expression utilisée comme invocation d'une référence ultime : "Le Validateur dit que c'est accessible", "Ça passe sur le Validateur". Alors que de tels outils ne sont que des béquilles destinées à faciliter la tâche des développeurs et testeurs de sites Smiley fache
Bonsoir,

Juste un mot: une redirection temporisée, quelque soit la technique, est non accessible. Le header Refresh tout autant que la meta similaire. C'est d'ailleurs parfaitement normal, puisque l'un ne fait que reproduire l'autre (les meta http-equiv ne portent pas ce nom pour rien Smiley cligne )

Alors, effectivement, pas de panique... Mais ne faites que des redirections côté serveur non temporisées avec des 301 et consors, et surtout sans cette astuce à l'accessibilité totalement factice, svp.

(désolé Victor, mais on ne peut pas laisser passer ce genre de choses).

<edit> et +1 pour les validateurs d'accessibilité courants, qui actuellement ne valident que du vent; Des choses sont en cours sur ce terrain, dans certaines entités publiques notamment, mais ne sont pas encore publiques. D'ici là, validation automatique => "je réfléchis d'abord, j'accepte le verdict de l'engin après".</>
Modifié par Laurent Denis (10 Oct 2006 - 19:52)
bah, merci pour ce code,
ils disent que tu ne respecte pas le forum,
mais t'as mets un code qui nous aide Smiley cligne
Bonjour,

Désolé de ressortir ce topic de sa tombe, mais j'ai une petite question. J'ai lu dans vos réponses :

a écrit :
Juste un mot: une redirection temporisée, quelque soit la technique, est non accessible. Le header Refresh tout autant que la meta similaire. C'est d'ailleurs parfaitement normal, puisque l'un ne fait que reproduire l'autre (les meta http-equiv ne portent pas ce nom pour rien cligne )


Ma question est simple. Dans certains cas, surtout lorsqu'on ajoute/modifie/supprime des données, on est "obligé" d'afficher un message qui confirme le bon déroulement de l'action réalisée, ou qui signale le soucis rencontré (formulaire mal rempli, problème mysql, doublon, ...). Dans ce cas, si l'on ne veux pas avoir de bouton "cliquez ici pour retourner au site", ce qui n'est pas ergonomique surtout si l'opération est souvent réalisée, comment faire pour faire quelque chose de propre ou accessible?

Pour le moment, j'utilisais une balise meta http-equiv afin de rediriger l'internaute vers une autre page du site, un fois le message de confirmation affiché quelques secondes.

Existe-t'il des meilleures méthodes?
Helldream a écrit :
si l'on ne veux pas avoir de bouton "cliquez ici pour retourner au site", ce qui n'est pas ergonomique

Ben voilà, tu as mis le doigt dessus : pour être accessible, il ne faut pas faire de redirection automatique, mais laisser l'utilisateur utiliser un lien.

Et effectivement, on peut juger que c'est ergonomiquement préférable d'avoir une telle redirection. Là, il faut faire un choix. Ergonomie et accessibilité ne vont pas toujours de paire.
Hum... Pour l'ergonomie de la redirection automatique, veuillez repasser s'il-vous-plaît : l'utilisateur dont l'attention a simplement été détournée quelques instants (par exemple parce qu'il a justement attendu de soumettre sa page avant de s'interrompre pour parler à quelqu'un) loupera fréquemment le message temporisé de redirection. Smiley cligne
Merci pour vos réponses, elles m'ont permies de faire évoluer ma vision des redirections

Il est vrai qu'en cas de problème, la redirection automatique n'est pas très intéressante. Par contre en cas de réussite de l'opération, à la limite la personne ne voyant pas le message ne sera pas lésée, et celle le voyant sera rassurée du succès de son opération...

Après, il est vrai qu'on peux se poser la question de l'utilité d'un message de confirmation, dans le cas où tout se passe bien. Mais dans tous les cas, si message de confirmation il y a, je reste convaincu que la temporisation est utile.

Prenons un exemple courant. J'ai mon administrateur d'un site de vente en ligne, qui veux ajouter 100 articles. Après chaque article, un message lui confirme son ajout afin d'être certain qu'il n'y a pas eu de soucis pour l'insertion. Si après chaque ajout, il doit cliquer sur un lien (ou bouton) pour retourner à son administration, je peux vous assurer qu'il va modire ce lien rapidement. Par contre, avec un message qui s'affiche 1 ou 2 secondes, juste histoire de savoir que tout est ok en un coup d'oeuil, avant de saisir son prochain article, il appréciera plus. Surtout s'il est novice, et qu'il a besoin d'être rassuré quant à la réussite de ses opération, puisqu'il n'est pas familiarisé avec l'outil informatique, ou simplement avec son administration.
petit rappel: la temporisation, ou le passage ne redirection transparente, ou etc. peuvent aisément être l'objet de préférences utilisateurs, en particulier dans le cas d'un backoffice ou d'un intranet. Smiley cligne
Ça peut aussi être un message (de confirmation que tout va bien) qui s'insèrerait dans la page qui est rechargée, non ?

Par exemple, si on dirige vers la liste des articles, on peut afficher en haut un encadré « Votre article <nom ou numéro de l'article> a bien été enregistré » ou un truc du genre ?
a écrit :

Ma question est simple. Dans certains cas, surtout lorsqu'on ajoute/modifie/supprime des données, on est "obligé" d'afficher un message qui confirme le
bon déroulement de l'action réalisée, ou qui signale le soucis rencontré (formulaire mal rempli, problème mysql, doublon, ...). Dans ce cas, si l'on ne
veux pas avoir de bouton "cliquez ici pour retourner au site", ce qui n'est pas ergonomique surtout si l'opération est souvent réalisée, comment faire
pour faire quelque chose de propre ou accessible?

Le mieux, à mon avis, c'est de réafficher directement le formulaire dans tous les cas... avec un message en haut du style « Votre saisie a été prise en compte » ou « Erreur dans la saisie de ... »
Disons que dans un process bien gérée et qui s'y prête, selon qu'il y ait succès ou échec de l'action:
- l'utilisateur est redirigé sur son formulaire conservant les modifications valides pour lui permettre de reprendre son action
- l'utilisateur est redirigé vers une page lui permettant de choisir à nouveau parmi les actions disponibles
- l'utilisateur est redirigé sur la page résultante de son action

Et que dans les trois cas, le message de succès est en effet aisé à caser.

Le problème de la redirection se pose :
- dans les process bordéliques en eux-mêmes
- plus généralement, dans les backend mal fichus Smiley ravi
Modifié par Laurent Denis (08 May 2007 - 19:20)
OK, je reconnais, c'est facultatif. Par contre, on est bien d'accord que des redirections de type header, ça ne pose pas de problèmes (sans tempo, hein)?
La redirection serveur en bonne et due forme, via htaccess, php ou autre, pas de problème. Le seul problème de la redirection client est la temporisation qui lui est inévitablement associée.
Pages :