Version complète: sur le forum Webmaster Hub : Déclaration de langue
Webmaster Hub > Création et exploitation de Sites Internet > Accessibilité et Ergonomie Web
cs76
Bonjour,

Sur mon site, je fais la déclaration de langue sous la forme :
<meta http-equiv="Content-language" content="fr">
Le validateur acces-pour-tous.net me trouve une erreur : "Vous devriez indiquer la langue principale du document"
Merci de me dire quel est le problème.
Url : http://cs76.free.fr/
Matthieu Faure
Salut,

Il faut que tu précises la langue en attribut de la balise <html>, soit : <html lang="fr">
(2° ligne de ton code)

Matthieu
LaurentDenis
Le W3C donne toutes les explications dans FAQ: Using HTTP and meta for language information.

Rapidement :

La langue de traitement d'un document est unique. Il s'agit par exemple d'indiquer à un lecteur d'écran la langue dans laquelle le document sera lu par défaut, mais aussi à un navigateur graphique la police par défaut ou l'orientation à adopter pour les langues type arabe, japonais... Cette information est utilisable que le document soit consulté en ligne ou enregistré localement. Elle est théoriquement supportée par tous les medias (même les lecteurs d'écran s'y mettent depuis peu).

Elle doit être indiquée avec l'attribut lang (ou xml:lang en xhtml) de l'élément HTML :
CODE
- en XHTML1.1:
<html xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">

- en XHTML 1.0
<html lang="fr" xml:lang="fr" xmlns="http://www.w3.org/1999/xhtml">

- en HTML
<html lang="fr">


Lorsque le document contient des fragments de contenu dans d'autres langues, on utilise les mêmes attributs localement:
CODE
-XHTML1.1:
<p xml:lang="en">

-XHTML1.0:
<p lang="en" xml:lang="en">

-HTML:
<p lang="en">


La redondance lang et xml:lang est recommandée comme bonne pratique en XHTML1.0 pour assurer la compatibilité avec les navigateurs... anciens qui ne savent pas lire xml:lang. L'un ou l'autre, ou l'un et l'autre sont également valides, mais xml:lang seul est le moins indiqué, car le moins bien supporté.

La ou les langues du public visé peuvent être indiquées à l'aide de metadonnées et de l'en-tête HTTP (par exemple en PHP: header('Content-Language: fr'); ).

Cette-fois:
- plusieurs langues peuvent être indiquées (page bilingue, par exemple)
- l'information donnée avec l'en-tête HTTP est perdue lorsque la page est enregistrée localement. La meta, elle, est alors conservée (il faut donc associer les 2)
- le support est plus hasardeux car rien n'oblige les medias à en tenir compte (le validateur d'acces-pour-tous en est un exemple wink.gif ) Certains navigateurs, lecteurs, moteurs... sont donc susceptibles de les utiliser pour savoir comment traiter le document, mais de manière tout à fait fortuite, non normalisée et pour ainsi dire propriétaire
- les meta ne sont pas normalisées, du moins, pas au sens de la norme HTML qui est imposée aux navigateurs...
- ces infos sont surclassées par les attributs lang et xml:lang utilisés localement dans le document.


Il existe plusieurs formes de meta disponibles, par exemple (ici en XHTML):
CODE
HTTP-equiv:
<meta http-equiv="Content-Language" content="fr" />

DUBLIN-CORE:
<meta name="DC.Language" scheme="RFC1766" content="fr" />


Conclusion :
- <html lang=".... est obligatoire
- HTTP et meta sont à décider au cas par cas, selon les besoins.
Mais la redondance entre les 3 ne peut pas nuire, en particulier pour compenser les comportements non standard des différents medias wink.gif

Ah, au fait : les codes de langue sont ici: http://www.loc.gov/standards/iso639-2/frenchlangn.html
Monique
Bonjour,

J'adore des explications rapides comme les tiennes, Laurent biggrin.gif

A toutes ces techniques pour déclarer la langue utilisée, j'ajouterai celle-ci qui concerne les liens :
l'attribut hreflang
Il est utilisé pour indiquer la langue principale de la page cible désignée par l'attribut href.
Cet attribut ne peut s'utiliser seul mais en complément de href
HTML
<a href="http://www.w3.org/" hreflang="en" title="World Wide Web Consortium">W3C</a>
cs76
En fait, j'avais essayé de mettre lang="fr" dans la balise <html>, mais je m'étais dit que cet attribut n'était plus d'actualité, car le composeur Mozilla le supprime à l'enregistrement.
Je vais donc l'ajouter avec le bloc-notes.
Merci.
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.