1178 sujets

Accessibilité du Web

Modérateur
Bon matin,

Je me demandais si c'était une bonne pratique ou non de désactiver un bouton, via Javascript, après son premier clique. Imaginons le cas d'un forum, où lorsqu'on clique sur Envoyer, celui-ci se désactive pour éviter que la personne soumettre accidentellement le message à plusieurs reprises.

J'ai l'intention de faire cela pour mon application. Je réfléchis si cela pourrait causer des problèmes d'accessibilités ? Même si cette désactivation ne fonctionnerait que pour les personnes ayant activé Javascript, ca m'est égal. En autant que ca l'évite ce problème, déjà, à ces personnes.

Vous y voyez un inconvénient que je ne saurais déceler ? Smiley ohwell
Modifié le 18 Jan 2005 - 20:16
Je pense que cela peut poser problème : Imaginons pendant un envoi, qui dure un peu (par exemple un envoi de fichier), une déconnexion se produit. Donc l'internaute se reconnecter vite-fait, et pour réenvoyer son formulaire, il doit cliquer sur le bouton envoyer... qui a disparu ou est désactivé... Comment faire ? Smiley cligne
Modérateur
Tu veux dire s'il doit faire BACK pour essayer à nouveau parce que la page de réception n'a pas répondu ?
Oui, dans ce cas. Une pression sur Back réaffichera la page telle qu'on l'a laissée, avec le bouton désactivé/masqué...
Modérateur
Mais en remettant le bouton actif sur l'événement onload du document, ne redeviendrai-t-il pas actif ? Je me souviens d'une fois que le retour Back me causait ce genre de problème, et j'utilisais le onload pour remédier à la situation.
Tu peux le faire, mais ça ne sers à rien... Smiley smile
Il suffit de recharger la page avec CTRL F5 pour que ton formulaire soit renvoyé.
La seule manière efficace de controler que ton formulaire n'à pas déjà été reçus et traité c'est de le faire coté serveur pour être certain de ne pas être victime d'intentions malveillante... Smiley smile

JP
Modérateur
En fait, ce n'est pas une protection contre les personnes malveillantes, car de toutes façons, suffirait de désactiver Javascript. Mon intention est plutôt d'éviter les problèmes pour le client lui-même, sans en apporter pour les autres. Je voulais donc savoir si ca l'apportait des problèmes au niveau de l'accessibilité.

Ce script est temporaire. J'ai l'intention de modifier mon application pour que vraiment, peu importe si la personne clique plusieurs fois, qu'il soit en mesure de continuer sans problème. C'est un peu long à expliquer, et il y a plusieurs facteurs en cause qui font qu'un problème survient s'il y a un double-post. Je veux juste mettre ce script d'ici à ce que je restructure cette partie de mon application. J'ai d'autres priorités qui doivent être réglé pour le moment.

Je l'ai donc mis en place pour l'instant mais si quelqu'un croit que ca peut apporter des problèmes, qu'il se manifeste. Smiley smile
Modifié le 18 Jan 2005 - 01:13
Question accessibilité proprement dite, ça ne pose aucun problème du tout ! Ton formulaire est utilisable, que javascript soit activé ou non: ce n'est donc pas une question d'accessibilité. Je m'explique: en visitant ton site avec un navigateur type lynx (ou tout simplement un quelconque navigateur sans javascript), il est parfaitement possible de soumettre le formulaire: il n'y a pas de problème d'accessibilité. (oulala c'est lourd ...)
Bon, et à part ça, as-tu vérifié que une fois le boutton cliqué, on puisse soumettre une nouvelle fois le formulaire ? A priori un navigateur distingue l'envoi côté client et la réception du côté du serveur [voir XEvents pour ceux que ça intéresse], donc le formulaire ne devrait pas être renvoyé 2 fois.
Pour conclure, la protection me semble plus inutile que source de problèmes !
Modérateur
J'ai bien essayé de cliquer deux fois, et il y a deux requêtes envoyées au serveur. Je dois donc mettre en place un système pour empêcher les problèmes que ca peut causer. En attendant que je mettre en place ce système côté serveur, je le fais côté client avec Javascript. C'est au moins ca, le temps que je trouve le temps d'améliorer mon application pour cette partie.

Cela confirme donc ce que je pensais, il n'y a pas de problèmes d'accessibilité avec ce Javascript. Oui je sais, cela cache un problème de conception au niveau de l'application, mais je ne peux pas le régler tout de suite, j'ai d'autres urgences héhé ! Smiley cligne Ce sera probablement fait cette semaine si je suis chanceux.

Merci à tous !
Modérateur
Enfin, j'ai réglé le problème du côté serveur. Si le formulaire est soumi à plusieurs reprises, l'usager peut quand même continuer sa transaction sans problème. Me voilà soulagé.

Réflexion faites, je vais retirer ce Javascript.

Donc tout est rentré dans l'ordre. Je continue de fignoler l'application qui est en fait un portail internet et intranet, et je vais venir vous le présenter, soi cette semaine, soi la semaine prochaine !

Bonne journée à tous !
Modifié le 19 Jan 2005 - 17:35
Une utilisation intéressante, néanmoins, de cette technique est de désactiver temporairement le bouton envoi pour prendre en charge un eventuel délai de rechargement dans le cas de formulaire particulièrement long.
Cela évite que l'utilisateur, croyant que le click sur le bouton n'à eu aucun effet reclique...
C'est même quelquefois très utile, par exemple dans le cas d'un formulaire d'upload d'image ou le temps de latence peut être assez long.
Dans ce cas là ça ajoute une fonctionnalité intéressante qui indique que l'action est en cours de traitement.
Modérateur
Oui, ca peut être intéressant, mais à condition que ce soit temporaire.

Pour ma part, j'ai retiré cette fonctionnalité car j'ai rencontré un problème d'accessibilité. J'ai cliqué sur le bouton, et une fois le formulaire soumit, je faisais une redirection côté serveur. Le formulaire restait visible, le bouton désactivé et la redirection prenait un certain temps car elle pointait sur la page d'un autre serveur. Avec FireFox, j'ai reçu une alerte TimeOut pour se connecter à l'autre site (le site ou le réseau devait être down). Je suis donc resté sur le formulaire, la bouche toute embuée, avec un bouton désactivé. Smiley confuse Je ne pouvais donc plus soumettre le formulaire pour essayer à nouveau. C'est ce qui m'a poussé, ca et mon côté perfectionniste, d'améliorer la page afin qu'un double-triple-quadruple-clique ne vienne pas causer des problèmes aux utilisateurs.