6. LIENS ET BOUTONS
Table des matières |
---|
6.1 Intitulés des liens et des boutons
6.1.1 Rédiger des intitulés explicites pour les liens et les boutons
Autant que possible, l’intitulé des liens et des boutons doit être explicite. C’est-à-dire que la fonction du lien ou du bouton doit être parfaitement compréhensible à la lecture du seul intitulé.
Cet intitulé correspond au texte contenu :
Entre les balises <a> et </a> .
Entre les balises <button> et </button> .
Dans l’attribut « alt » dans le cas d’un <input type="image" /> .
Dans l’attribut « value » dans le cas des <input type="button" /> ou <input type="submit" /> .
Ainsi, plutôt que des boutons « OK » ou des liens « Retour », privilégier :
<input type="submit" value="S'inscrire" /> <a href="panier.html">Retour à l'étape 1 : "Votre panier"</a>
REMARQUES
Dans le cas où du texte et de l’image sont présents simultanément dans l’intitulé du lien ou du bouton, le texte de remplacement de l’image est à considérer comme faisant partie intégrante de l’intitulé.
Ainsi, l’intitulé du lien suivant sera considéré comme explicite :
<a href="/derniers-changements/"> <img src="images/pictogramme-attention.png" alt="Attention ! " title="Attention !" /> Veillez à prendre en considération les derniers changements apportés à Canelis avant toute utilisation. </a>
ASTUCES
Pour rédiger des intitulés explicites, il faut imaginer que les intitulés sont extraits de la page et lus en dehors de tout contexte. Restent-ils compréhensibles? Permettent-ils de se faire une idée du contenu de la page de destination ou de l’action à effectuer?
ATTENTION
Les liens et les boutons ne doivent jamais être vides et doivent donc toujours posséder un intitulé, même dans le cas où une icône représente le bouton. Ex. le bouton d'un champ de recherche :
<style> .icon-search{ /* Contenu pour rajouter l'icône de recherche */ } .hidden-tag{ /* On cache cette parti du contenu (sans utiliser display: none ou visibility: hidden) */ } </style> <button class="icon-search"> <span class="hidden-tag">Rechercher</span> </button>
RESSOURCES
Voir aussi :
- Utiliser un intitulé explicite (Design graphique),
- Rédiger des intitulés de liens explicites (Contributeurs éditoriaux)
6.1.2 Compléter les liens et les boutons non explicites
Un lien ou un bouton considéré comme explicite est un lien ou un bouton dont l’intitulé seul permet de comprendre sa destination ou sa fonction.
Certains intitulés de liens ou de boutons ne peuvent pas être rendus explicites (manque d’espace disponible à l’écran, choix éditorial, etc.). C’est souvent le cas, par exemple, pour les liens du type « Voir la suite » ou « Consulter le site » et des icônes cliquables sans intitulé visible.
Dans ces situations, ce sont les attributs « title » et « aria-label » qui doivent alors être utilisés pour préciser la fonction du lien ou du bouton. Leur valeur doit successivement :
Reprendre une information identique ou équivalente à celle véhiculée par l’intitulé.
Compléter l’information fournie par l’intitulé.
Par exemple, dans le cas d’un lien « Juillet 2016 » :
<a href="archives/2016/07/" aria-label="Juillet 2016 (lire les articles du mois)" title="Juillet 2016 (lire les articles du mois)"> Juillet 2016 </a>
La valeur de l’attribut « title » doit être strictement identique au contenu de l’attribut « aria-label » sous peine que certains lecteurs d’écran vocalisent les deux, ce qui ne serait pas optimal.
Ici l’utilisation de l’attribut « title » en plus de « aria-label » est notamment intéressante pour les personnes malvoyantes naviguant avec une loupe d’écran type « ZoomText » qui, au survol souris du lien « Voir la suite », dispose visuellement de l’infobulle.
LE LIEN OU LE BOUTON EST UNE IMAGE INFORMATIVE
Dans le cas où le lien ou le bouton est une image informative, c’est l’attribut « alt » de l’image qui est lu comme intitulé du lien. Nul besoin d’ajouter les attributs «title» et « aria-label » si le texte alternatif de l’image est explicite.
<a href="http://ici.radio-canada.ca"> <img src="logo.png" alt="ICI Radio-canada.ca" /> </a>
LE LIEN OU LE BOUTON EST UN SVG INFORMATIF
Lorsqu’un <svg> seul (sans intitulé) servant de lien ou de bouton est intégré dans le code HTML :
Intégrer
aria-hidden="true"
dans ses balises enfants <g> et <path>.Ajouter une balise <text> dans le <svg> et la renseigner avec les informations permettant de rendre le lien ou le bouton explicite.
Cacher ce texte de remplacement en intégrant
opacity="0"
dans la balise <text>.Intégrer
role="link"
dans la balise <svg> si celle-ci sert de lien.Intégrer
role="button"
dans la balise <svg> si celle-ci sert de bouton.Intégrer l’attribut « title » sur le lien pour améliorer la compréhension (notamment pour les personnes voyantes).
Dans l’exemple de code HTML ci-après, le <svg> pointe vers la page d’accueil d’un site :
<a … title="Accueil"> <svg role="link" …> <text opacity="0" …>Accueil</text> <g aria-hidden="true"> <path aria-hidden="true" …></path> </g> </svg> </a>
LE LIEN OU LE BOUTON EST UNE ICÔNE
Lorsque le lien ou le bouton affiche une icône (ex. réseaux sociaux), et que l’intitulé caché est explicite, l’attribut « title » devra tout de même être ajouté pour améliorer la compréhension (notamment pour les personnes voyantes).
<a href="http://www.facebook.com" title="Facebook"> <span>Facebook</span> </a>
REMARQUES
Les attributs « title » et « aria-label » doivent également être utilisés pour distinguer les liens ou boutons dont les intitulés pourraient être considérés comme explicites, mais qui pointent vers des pages ou déclenchent des actions différentes.
Exemple, dans le cas où un lien pointe vers une vidéo en lecture automatique, les attributs « title » et « aria-label » devront être ajoutés sur le lien et contenir une information supplémentaire sur l'action (Ex. Écouter la vidéo).
<a href="http://ici.radio-canada.ca/regions/montreal/2015/09/08/006-toilettes-publiques-centre-ville-montreal.shtml" title="Le retour des « vespasiennes » à Montréal (Écouter la vidéo)" aria-label="Le retour des « vespasiennes » à Montréal (Écouter la vidéo)"> <img src="http://img.src.ca/2015/09/08/635x357/150908_c19v3_toilettes-emilie-gamelin_sn635.jpg" alt="Le retour des « vespasiennes » à Montréal" /> </a>
ASTUCES
Dans le cas de liens du type « Voir la suite » ou « Consulter le site », une bonne pratique d’accessibilité consiste à reléguer cette information en dernier dans le contenu des attributs « title » et « aria-label » afin de faciliter l’accès à l’information importante :
<a href="entree-en-bourse.html" title="Entrée en bourse de la société Boursicota (voir la suite)" aria-label="Entrée en bourse de la société Boursicota (voir la suite)"> Voir la suite </a>
Les points de suspension, utilisés lorsque le lead est trop long, ne sont pas cliquables. Un chevron cliquable devrait suivre.
Texte du lead du document ... <a href="entree-en-bourse.html" title="Entrée en bourse de la société Boursicota (voir la suite)" aria-label="Entrée en bourse de la société Boursicota (voir la suite)"> » </a>
ASTUCES - BONIFICATION
Prévoir des intitulés de liens explicites hors contexte et sans l'utilisation des attributs « title » et « aria-label ». Exemple : Le survenant, offert en :
pdf [23 Ko]
mp3 [3 h 45 - 400 ko]
HTML
Aurait comme code :
<p>Le survenant, offert en</p> <ul> <li> <button ...> <span class="hidden-tag">Le survenant, </span> pdf [23 Ko] </button> </li> <li> <button ...> <span class="hidden-tag">Le survenant, </span> mp3 [3 h 45 - 400 Ko] </button> </li> [...] </ul>
ATTENTION
L'attribut « aria-label » restitue l'intitulé du lien. Il ne faut donc pas l'utiliser comme complément de l'intitulé ou si celui-ci est déjà explicite.
Exemple à ne pas faire :
<a href="/grands-entretiens.html" arial-label="(Voir la suite)"> Les grands entretiens </a>
L’utilisation de l’attribut « title » pour expliciter un intitulé sera toujours moins accessible que l’optimisation directe de l’intitulé. Le contenu de l’attribut « title » ne s’affiche pas par défaut lors de la navigation au clavier ou sur un écran tactile, par exemple.
Ces attributs ne doivent donc être utilisés qu’en dernier recours.
CAPTURES D'ÉCRAN
Capture 1 : Exemple de l’utilisation des titles :
Les boutons avec icônes pour « Écouter », « Ajouter à ma liste » et « Partager » ont des attributs « title » pour améliorer la compréhension.
Le lien « Voir la suite », possède aussi un attribut « title » puisqu’il n’est pas explicite hors contexte.
Le lien vers le segment n’a pas d’attribut « title » puisque explicite.
6.2 Documents en téléchargement
6.2.1 Indiquer le poids et le format de chaque document en téléchargement
Chaque fois qu’un lien pointe sur un document à télécharger, les informations suivantes doivent être intégrées dans l’intitulé :
Le nom du document.
Le format du document.
Le poids du document.
La langue du document (si celle-ci est différente de la langue principale de la page).
Par exemple :
<a href="rapport-annuel-2011.pdf"> Télécharger le rapport annuel 2011 (PDF, 23 Mo) </a> <a href="report-annual-2011.pdf"> Télécharger le rapport annuel 2011 (PDF, 23 Mo, en anglais) </a>
REMARQUES
Parfois, l’intitulé ne peut être modifié pour intégrer ces informations. Dans cette situation, pour reprendre et compléter l'intitulé sur le lien ou le bouton, ajouter l'attribut « title » et un texte visuellement caché mais lu par le lecteur d'écran (class="hidden-tag"). Les mentions de poids, format et langue devraient toujours être affichées.
Ex.
<a target="_blank" href="rapport-annuel-2017.pdf" title=”Rapport annuel 2017 (PDF, 23 Mo)” > <img src="image-rapport-annuel-2017.jpg" alt="Télécharger Rapport annuel 2017" > (PDF, 23 Mo) </a>
<a target="_blank" href="rapport-annuel-2017.pdf" title=”Rapport annuel 2017 (PDF, 23 Mo)” > <Icon /> <span class="hidden-tag">Télécharger Rapport annuel 2017</span> (PDF, 23 Mo) </a>
ASTUCES
Puisque les informations du document téléchargeable (format, poid et langue) sont écrites en dur dans le HTML, le pictogramme du format n'est pas obligatoire. Il pourrait donc être rajouter en style sur le lien.
Ex.
<style> .icon-pdf{ /* Appel de l'icone en image ou en police de caractère */ } </style> <a href="nom-du-fichier.pdf" target="_blank" class="icon-pdf"> Nom du fichier (PDF, 20 Ko) </a>
ATTENTION
Ces mentions ne doivent pas être masquées sur mobile faute d'espace. Elles sont d'autant plus pertinentes puisque l'utilisateur, à partir d'une plateforme limitée en espace, doit connaître toutes les informations associées au fichier qu'il télécharge.
CAPTURES D'ÉCRAN
Capture 1 : Exemple d’insertion d’un pdf avec ses informations sur le type et le poids du fichier
RESSOURCES
Voir aussi :
- Indiquer le format, le poids et la langue de chaque document en téléchargement (Contributeurs éditoriaux),
- Préciser les liens pointant sur des documents à télécharger (Design graphique)Indication du format des fichiers à télécharger et accessibilité (Atalan - Nouvelle fenêtre) (Atalan)
6.3 Nouvelles fenêtres
6.3.1 Signaler l'ouverture des nouvelles fenêtres
Chaque fois qu’un lien ou un bouton déclenche l’ouverture forcée d’une nouvelle fenêtre dans le navigateur, l’utilisateur doit être prévenu.
Dans ce cas, il faut ajouter les attributs « title » sur le lien et un libellé caché (class=”hidden-tag”), dont le contenu doit successivement :
Reprendre une information identique ou équivalente à celle véhiculée par l’intitulé.
Compléter l’information fournie avec la mention du type « (nouvelle fenêtre) »
<a href="cgv.html" target="_blank" title="Conditions Générales de Vente (nouvelle fenêtre)" > Conditions Générales de Vente <span class="hidden-tag">(nouvelle fenêtre)</span> </a>
REMARQUES
Une bonne solution d'accessibilité serait d'ajouter une icône « nouvelle fenêtre », après le libellé du lien, automatiquement dès que :
Le lien possède l'attribut target="_blank".
Qu'il n'y a pas déjà une icône intégrée au lien (ex. PDF, Facebook, Twitter, etc.).
Cela permet aux contributeurs éditoriaux de ne pas avoir à l'ajouter à la main, et ainsi prévenir des erreurs humaines.
ASTUCES
Dès que l’on sort d’un site radio-canadien ou que l’on ouvre un document téléchargeable ou qui nous fait perdre la navigation principale du site (ex. PDF, RSS), il est impératif de rajouter le target=”_blank”.
ATTENTION
Dans le cas où le lien externe mène vers un site d'une autre langue que celle par défaut du site, il faut retrouver cette information dans le libellé du lien. Ex. CBC (en anglais)
<a href="http://www.cbc.ca/" hreflang="en" target="_blank" title="CBC (en anglais - nouvelle fenêtre)" > CBC (en anglais) <span class="hidden-tag"> (nouvelle fenêtre)</span> </a>
RESSOURCES
Voir aussi Identifier les liens externes (Contributeurs éditoriaux)
6.4 Différencier les boutons des liens
Les boutons <button> / <input> permettent à l’utilisateur de déclencher des actions. Ils sont à employer pour soumettre des informations, pour afficher l’élément suivant ou précédent dans un carrousel, pour fermer une fenêtre modale, etc.
Les liens <a> permettent à l’utilisateur de naviguer. Ils sont à employer pour pointer sur une autre page ou sur une zone précise de la page courante par l’intermédiaire d’un système d’ancres.
REMARQUES
Il est recommandé d'utiliser la balise <input type="button"> à l'intérieur d'un <form> (bouton Envoyer, etc...) et d'utiliser la balise <button> lorsque c'est une action (flèche, bouton fermer, etc...).
RESSOURCES
Voir aussi Différencier les boutons des liens (Interfaces riches et JavaScript)
6.5 Prévoir des zones réactives suffisamment grandes et espacées
S’assurer que la zone réactive de votre élément interactif (<button>, <a>, <input>, etc.) est de grandeur adéquate, au clic et au touch, pour qu’elle soit facilement actionnable. Cette règle a pour but de limiter, voir annuler, les activations non intentionnelles, surtout lorsque celle-ci peuvent changer l’utilisateur de contexte.
Il est recommandé de prévoir les tailles suivantes :
Desktop : minimum de 36px;
Mobile: minimum de 48px (la valeur est plus grande sur mobile puisque le doigt est plus large et moins précis qu’un curseur);
La zone réactive équivaut à = la taille de l’élément interactif + son espace de dégagement.
ATTENTION
La surface totale de la zones réactive doit toujours être inférieure à la taille de l’élément interactif. Il sera aussi toujours préférable que votre élément interactif soit de la taille recommandée (avec ou sans espace de dégagement).
ASTUCES
La taille de 48px est une recommandation qui, au toucher, représente environ l’espace d’un doigt. Si vous prévoyez un élément interactif qui sera principalement actionné par le pouce, il est plutôt recommandé de prévoir une zone réactive d’au moins 60px.
ASTUCES - BONIFICATION
Cette règle est AAA, mais a été approuvée comme faisant partie intégrante de nos normes.
CAPTURES D'ÉCRAN
Bouton sur mobile :
Capture 1 : Bouton de la taille recommandé pour mobile : 48px X 48px
Capture 2 : La taille du bouton pour mobile est sous les 48px recommandé. Il faudra prévoir un espace de dégagement suffisant. Ici : 48px (requis) - 36px (taille du bouton) = 12px d’espace de dégagement sans action possible. (préférablement répartie équitablement à l’entour du bouton)
Bouton d’onglets sur mobile :
Capture 1 : Avec espace réservé visible
Dans cet exemple, sur mobile, les boutons section 1 et 2 sont de bonne largeur mais ne possède pas la hauteur recommandé. Par contre l’espace en haut et en bas des boutons prévois de l’espace de dégagement supérieur à 48px. Ils sont donc en norme.
Par contre, dans le cas de la taille du bouton étoilé, ni la hauteur, ni la largeur ne conviennent. Il faut donc prévoir de l’espace non actionnable à l’entour de celui-ci pour que la zone réactive prévue pour ce bouton représente 48px.
RESSOURCES
Voir aussi :
- la norme Target size du WCAG 2.1 (en anglais - Nouvelle fenêtre)
- Prévoir des zones réactives suffisamment grandes et espacées (Design graphique)