2010-12-01 16 views
31

Ich verstehe nicht die HTML5 specifications for the lang and xml:lang attributes der Eröffnung <html> Tag. Scrolling ein bisschen, ich verstehe, dass xmlns ist ein "Talisman" (hat keinen Effekt), aber was ist mit lang und xml:lang? Sollten sie benutzt werden? Wenn ja, worauf sollten sie eingestellt werden?HTML5 <html> Attribute xmlns, lang, xml: lang

+3

Ich hätte gedacht, dass es aus diesem Dokument ziemlich klar ist; "Autoren dürfen das lang-Attribut im XML-Namespace für HTML-Elemente in HTML-Dokumenten nicht verwenden", "Hinweis: Das Attribut in keinem Namespace ohne Präfix und mit dem Literal localname" xml: lang "hat keine Auswirkungen auf die Sprachverarbeitung.", usw. (d. hVerwenden Sie 'lang', aber nicht' xml: lang', wenn Sie HTML anstatt XML verwenden. –

+0

Ja, ich glaube, ich verstehe das endlich. Ich hatte Probleme, weil ich nicht wirklich weiß, was ein Namespace oder Präfix in diesem Kontext ist. Ich nehme an, > hat keine und somit hat "xml: lang" keine Wirkung. – ma11hew28

+2

@Chris Morgan - Ich denke nicht, dass das Dokument überhaupt klar ist. Gründlich und präzise, ​​sicher, aber es gibt ziemlich viel subtiles Zeug. Berücksichtigen Sie, dass Autoren das Attribut lang im XML-Namespace für HTML-Elemente in HTML-Dokumenten nicht verwenden dürfen. Es ist unmöglich, dies tatsächlich mit einem HTML-Parser zu tun, sondern nur mit Skripten, indem man Dinge wie Document.createAttributeNS verwendet. War das dir klar? – Alohci

Antwort

36

Alles, was ich gesehen habe und gehört schlägt vor, dass Sie

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset='UTF-8'> 

(oder was auch immer Zeichensatz Sie wollen tatsächlich) bleiben sollte. Wenn Sie eine der Seite zugeordnete Sprache wünschen, können Sie das Attribut "lang" für das Tag <html> verwenden.

Da HTML5 ist nicht XML, wirklich, ich persönlich würde es seltsam finden, alle xml: Namespace Zeug zu verwenden.

+3

Cool, danke. Dann gehe ich mit wie [LinkedIn] (http://www.linkedin.com/) vor. – ma11hew28

+4

Oh, schade, dass wenn Sie das Attribut xmlns nicht in HTML angeben, es kein gültiges XHTML ist und wenn Sie polyglottes Markup verwenden, das korrekt gerendert wird, wenn es als HTML oder XHTML dient, benötigen Sie das Attribut xmlns (weil das Bereitstellen als Anwendung/xhtml + xml andernfalls eine Dokumentbaumstruktur anstelle einer Seite anzeigt). Wenn Sie andererseits das xmlns-Element in HTML5 verwenden, gibt der W3C-Validierer einen Fehler aus, der besagt, dass der http-equiv in einem ein ungültiger Wert ist, selbst wenn Sie Lassen Sie das Meta-Tag aus, es warnt, dass Sie es zum Dokument hinzufügen sollten. – Triynko

+2

Auch wenn HTML5 kein XML ist, unterstützt es XHTML-artige Syntax auf void-Elementen wie '
' und es landet am Ende sowieso alles im XHTML-Namespace 'http: // www.w3.org/1999/xhtml' . – Triynko

17

xml: lang in der Text/HTML-Serialisierung ist nur da, um Autoren zu erlauben, mehrsprachige Dokumente zu schreiben - Dokumente, die XHTML5 und gültiges HTML5 sind.

In HTML (im Gegensatz zu XHTML) ist xml: lang überhaupt kein Attribut im XML-Namespace, sondern ein Attribut im NULL-Namespace xml:lang. h. der Doppelpunkt hat überhaupt keine magischen Eigenschaften, es ist nur ein anderes Zeichen im Attributnamen wie jeder andere.


Um die Frage zu beantworten, die Sie ursprünglich über en-US-x-hixie hatten:

en-US-x-hixie ist en-US (dh amerikanisches Englisch) sowie eine private Nutzung Subtag -x-hixie heißt die Variante von US-Englisch als von Ian Hickson geschrieben, der Herausgeber von HTML5.

privater Gebrauch Subtags ist definiert in RFC bei: 5646, BCP 47 http://www.ietf.org/rfc/bcp/bcp47.txt Abschnitt 2.2.7. Private Use Subtags

0

Das Attribut lang macht großen Unterschied auf einem HTML-Dokument, wenn es um Benutzer kommt, die einen Bildschirmleser verwenden. Also unter Berücksichtigung a11y möchten Sie es definitiv verwenden. Dieses Video ist das beste Argument auf diesem: https://youtu.be/0uzxu9dQnuU "Wirkung von Lang-Attribut auf JAWS Rede". Es zeigt, wie ein Bildschirmleser englischen Text mit spanischer, französischer oder deutscher Aussprache ausspricht (was sehr schwer zu verstehen ist), nur weil das lang attr auf diese Sprachen jedes Mal eingestellt ist.

Überprüfen Sie auch: https://www.w3.org/International/questions/qa-lang-why.en wo einige gute Gründe genannt:

  • Styling (zum Beispiel verschiedene Schriftarten für verschiedene Sprachen)
  • Rechtschreibung und Grammatik Kontrolleure
  • Übersetzungs-Tools
  • Suchergebnisse (Seite internes Markup kann verwendet werden, um die Qualität von ihnen zu verbessern, basierend auf den sprachlichen Präferenzen des Benutzers)
+0

Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz zur Verfügung zu stellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/18812057) – Zze

Verwandte Themen