web-dev-qa-db-fra.com

Comment rôle = form aide-t-il l'accessibilité?

J'ai lu que l'attribut role avait été ajouté à Bootstrap pour l'accessibilité, et j'aimerais savoir comment <form role="form"> aide à l'accessibilité. Voir http://getbootstrap.com/css/#forms-example pour un exemple de cette utilisation spécifique.

I recherche du "rôle" dans le dépôt de Bootstrap en vain.

Mon problème est que l'information semble redondante. La notion que l'élément est une forme est déjà exprimée par la balise HTML elle-même (<form>), alors qu'est-ce que cela aide si nous ajoutons également que l'élément joue le role de form? Il serait logique d'ajouter role="..." si role allait être différent de form (je ne sais pas quoi - mais faisons comme si); dans sa forme actuelle (surtout sans exemple concret de raisonnement/cas d'utilisation), il est au mieux déconcertant.

68
user664833

Si vous ajoutez un role="form" à un formulaire, un lecteur d'écran le voit comme une région sur une page Web. Cela signifie qu'un utilisateur peut facilement accéder au formulaire avec les touches de navigation rapide de sa région (par exemple, dans JAWS 15, vous utilisez R pour cela). De plus, votre utilisateur sera en mesure de trouver facilement le début et la fin du formulaire car les lecteurs d'écran marquent le début et la fin des régions.

81
Andre Polykanine

Je voudrais signaler que l'article @ user664833 mentionné dans un commentaire indique que role="form" ne devrait pas continuer <form> éléments , mais plutôt sur un <div> ou un autre élément qui n'indique pas sémantiquement qu'il contient des éléments de formulaire.

Le <form> L'élément est probablement déjà géré correctement par les lecteurs d'écran modernes.

Citation (lien):

Recommander à l'aide de [role="form"] sur un élément sémantiquement neutre tel qu'un <div> pas sur un <form> element, car l'élément a déjà la sémantique du rôle par défaut exposée .

6
Nelu

En fait, la recommandation ARIA 1.1 W3C stipule clairement qu'il ne faut pas changer la sémantique du langage hôte dans la section 1.4 ( source ):

"Il n'est pas approprié de créer des objets avec un style et un script lorsque le langage hôte fournit un élément sémantique à ce type d'objet. Si WAI-ARIA peut améliorer l'accessibilité de ces objets, l'accessibilité est optimisée en permettant à l'agent utilisateur de gérer objet nativement. "

Donc, en écrivant <form role='form'> est non seulement redondant, mais contre la recommandation.

4
Jaccoud

Sémantiquement, un formulaire par défaut est, bien, un formulaire. Cependant, toutes les applications d'accessibilité (lecteurs d'écran, etc.) ne sont pas conçues de la même manière et certaines peuvent utiliser des éléments (même l'élément form) avec le role=form attribut différemment même s’ils comprennent que l’élément de formulaire parent aura la même signification sémantique avec ou sans le role=form attribut.

3
salmanxk