document xhtml - Options Lang question
-
11-09-2019 - |
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.
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.
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 / ouxml:lang
attributs dans la balisehtml
.
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