Jour 23 - Les langues
Comment gérer les langues de manière accessible dans une page web ?
Ce que j’ai fait :
- lire la page Déclarer la langue en HTML(lien externe) du World Wide Web Consortium (W3C)
- lire la notice Renseigner la langue principale de la page(lien externe) d’AcceDe Web
- lire la notice Utiliser l’attribut lang pour signaler les changements de langue(lien externe) d’AcceDe Web
Ce que j’ai appris
Indiquer la langue principale de la page
Pour déclarer la langue par défaut d’une page web, il faut toujours utiliser un attribut lang
sur la balise <html>
. Cette langue sera héritée par tous les autres éléments. Par exemple, pour une page en français :
<html lang="fr">
L’attribut lang
est renseigné par un code de deux (parfois trois) lettres :
- fr pour le français
- en pour l’anglais
- es pour l’espagnol
Les valeurs permises sont disponibles sur cette page listant les différents codes standards(lien externe).
Signaler les changements de langue
Directement dans le contenu
Il peut arriver qu’un site contienne des mots dans une langue différente de la langue principale déclarée dans la balise <html>
. Dans ce cas, afin de permettre aux technologies d’assistance de les vocaliser correctement, ils doivent être signalés avec l’attribut lang
. Par exemple :
<h2 lang="en">Web Content Accessibility Guidelines</h2>
Si aucune balise n’encadre directement l’élément concerné par le changement de langue, il est alors nécessaire d’ajouter une balise <span>
ou <div>
et de renseigner son attribut lang
. Par exemple :
<p>J'ai installé l'extension <span lang="en">I don't care about cookies</span> sur mon navigateur.</p>
Le changement de langue n’a pas à être déclaré pour :
- des noms propres
- des mots d’origine étrangère intégrés couramment dans la langue principale, comme par exemple parking ou podcast
Dans des attributs
Les changements de langue concernent tous les contenus, y compris les valeurs de certains attributs comme title
ou alt
. Il n’est pas possible d’indiquer des changements de langue directement dans un attribut, dans ce cas le changement de langue est indiqué sur l’élément qui contient l’attribut. Par exemple :
<img src="/share.jpg" lang="en" alt="Share" />
Il peut arriver que le contenu d’un élément et son attribut soient rédigés dans des langues différentes. C’est par exemple le cas lorsqu’un site propose différentes langues. Le site du W3C en donne un exemple dans son article Que faire si le contenu d’un élément et son attribut sont dans des langues différentes ?(lien externe).
Le texte du lien montre la langue de la page cible, en utilisant la langue de la page cible (ici l’espagnol), mais un attribut title
associé donne une information dans la langue de la page actuelle (ici le français) :
<span title="Version espagnole"><a lang="es" href="qa-html-language-declarations.es">Español</a></span>
Enfin lorsque l’attribut contient plusieurs passages de texte dans des langues différentes, il n’est pas possible de les indiquer et le critère d’accessibilité devient donc non applicable.
Indiquer la langue d’un lien
Lorsqu’une page contient un lien vers une autre page, rédigée dans une langue différente de la langue sur le site en cours, il est possible de l’indiquer grâce à l’attribut hreflang
. Par exemple :
<p>Retrouvez les bonnes pratiques sur le <a href="http://www.w3.org" hreflang="en">site du W3C (en anglais)</a>.</p>
Sur mon téléphone, Talkback ne vocalise pas l’attribut hreflang
mais peut-être une indication est-elle fournie par d’autres lecteurs d’écran ? A tester.