Question

Quelle est la différence entre les 2 lignes ci-dessous:

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

<meta http-equiv="content-language" content="en-GB" />

Si je n'avais pas la balise meta, quelle serait la conséquence?

La méta un effet sur les lecteurs d'écran et le haut, on ne? Je suis un peu confus quant à ce qu'ils font exactement.

Merci d'avance pour toute aide

Cordialement

Ignorer.

Était-ce utile?

La solution

Plongez au coeur de l'accessibilité de Identification de votre page de la langue recommande d'ajouter autant que possible pour gérer autant de lecteurs d'écran que vous pouvez, selon votre type de document:

  

Si vous utilisez une variante de HTML 4,   changer votre étiquette à cette (utilisation   votre propre code de langue si   Anglais):

     

<html lang="en">

     

Si vous utilisez une variante de XHTML   1.0, changez votre balise à cette (utilisez votre code de langue à la fois   places):

     

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

     

Si vous utilisez XHTML 1.1, changer votre    tag à cette (encore une fois, insérez   propre code de langue):

     

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

Le même article fait référence aussi ISO 639,2 pour déterminer ce que le valeur de xml: lang doit être, bien que la spécification XML fait référence à un document séparé, RFC4646 Les meilleures pratiques actuelles -. Étiquettes d'identification des langues , ce qui semble indiquer votre valeur de « fr-fR » est valide

Web Statistiques Authoring (2005) ont les éléments suivants à dire à son sujet:

  

Ensuite est la valeur Content-Language   (Utilisé sur l'attribut http-equiv).   Presque autant de gens utilisent cela comme   spécifiez l'attribut lang sur le html   élément. Dans la spécification HTML5 actuellement   l'attribut http-equiv est seulement   a permis un cas de réglage   le codage de caractères, qui ne peut pas   être abandonné vraiment, comme le graphique ci-dessus   démontre. cependant,   http-equiv = "Content-Language" est   supporté par au moins un navigateur, et   comme nous le voyons ici, il est largement utilisé -   peut-être ne doit pas être retiré http-equiv   après tout.

En outre, un fil sur les pourparlers de WebProWorld sur la différence entre l'utilisation de http-equiv = langue et contenu name = langue pour décrire la langue du document et implique que les deux sont nécessaires.

Enfin, reportez-vous à la HTML techniques pour le contenu Web Accessibility Guidelines 1.0 Document au sein du W3C pour certaines autres recommandations, en particulier identification du primaire Langue.

En conclusion, il ressemble à des lecteurs d'écran regardent attributs lang plus d'informations métalangage contenu, mais la plupart des recommandations que j'ai vu vous conseillons d'utiliser les métadonnées de toute façon. En particulier, les statistiques Google semblent pertinentes, alors peut-être vous devriez laisser les deux dans.

Autres conseils

Je crois que l'un des avantages de la version <meta> est que vous pouvez spécifier plusieurs langues, comme dans <meta http-equiv="Content-Language" content="en-GB, fr" />, par exemple. Jetez un oeil à cette un plus examen approfondi des le sujet.

Content-Language est non conforme XHTML5.

Bien qu'il ne vous permet de spécifier plus d'une langue, vous ne devriez pas le faire (il ne permet pas à personne). Vous devez utiliser des attributs de xml:lang sur des éléments spécifiques au lieu, par exemple.

<p xml:lang="en">Hello <span xml:lang="de">Welt!</span></p>

W3C I18N FAQ est aussi clairement à l'encontre <meta>:

  

Les informations d'en-tête HTTP élément ou méta ne sont pas pertinentes ici. Par extension, vous devez spécifier la langue de traitement de texte du contenu dans son ensemble en utilisant le lang et / ou xml:lang attributs dans la balise html .

Pour autant que je sache, meta http-equiv est nécessaire uniquement (le cas échéant) pour documents HTML (XHTML) non, parce que XHTML permet de spécifier la langue à l'aide xml:. Lang

Donc, pas de différence, la deuxième ligne est tout simplement superflue.

Le HTTP / 1.0 RFC 1945 indique le champ d'en-tête Content-Language représente "les langues du public visé".

  

Le Content-Language-tête d'entité   champ décrit le naturel   langue (s) du public visé   pour l'entité fermée. Notez que   cela peut ne pas être équivalent à tous les   langues utilisées au sein de l'entité.

HTML4 et XHTML1.x traiter la balise meta http-equiv que les mêmes informations incorporées dans le document html plutôt que l'en-tête HTTP.

Par contre, xml. Lang et le code html attribut lang identifier la langue du document, ou le fragment contenu dans l'élément sur lequel l'attribut apparaît

Alors, supposons que vous aviez un document qui est principalement en français dans le but de l'enseignement du français à l'anglais, la langue de contenu serait en-GB, en États-Unis (par exemple), alors que l'attribut xml: lang serait fr-FR.

Cependant , HTML 5 changements cela, et le meta http-equiv = "langue de contenu" est considéré comme HTML non conforme qui définit néanmoins la langue par défaut du document à l'échelle, et ne supporte qu'un seul la langue est si efficace identique à xml: lang sur l'élément html. Je ne peux pas dire que je comprends le raisonnement derrière ce changement, mais Daniel Glazman et Ian Hickson discuter au fil à partir de http://lists.w3.org/Archives/Public/public-html/2008Nov/0083.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top