Frage

Was ist der Unterschied zwischen den folgenden 2 Zeilen ?:

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

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

Wenn ich nicht das Meta -Tag hätte, was wäre die Folge?

Beeinflusst die Meta -One -Bildschirmleser und die obere nicht? Ich bin ein bisschen verwirrt darüber, was genau sie tun.

Vielen Dank im Voraus für jede Hilfe

Mit freundlichen Grüßen

Überspringen.

War es hilfreich?

Lösung

Tauchen Sie in die Barrierefreiheit ein Identifizieren Sie Ihre Sprachseite Empfiehlt, so viel wie möglich hinzuzufügen, um so viele Bildschirmleser wie möglich zu verarbeiten, abhängig von Ihrem DocType:

Wenn Sie eine Variante von HTML 4 verwenden, ändern Sie Ihr Tag darauf (Verwenden Sie Ihren eigenen Sprachcode, wenn nicht Englisch):

<html lang="en">

Wenn Sie eine Variante von XHTML 1.0 verwenden, ändern Sie Ihr Tag darauf (Verwenden Sie Ihren Sprachcode an beiden Stellen):

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

Wenn Sie XHTML 1.1 verwenden, ändern Sie Ihr Tag darauf (fügen Sie erneut Ihren eigenen Sprachcode ein):

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

Der gleiche Artikel auch verweist ISO 639.2 Um zu bestimmen, wie der Wert von XML: Lang sein sollte, obwohl die XML -Spezifikation auf ein separates Dokument verweist. RFC4646 beste aktuelle Praxis - Tags zum Identifizieren von Sprachen, was anscheinend Ihren Wert von "en-gb" anzeigen scheint, ist gültig.

Google Webautorierungsstatistik (2005) haben Folgendes zu sagen:

Als nächstes folgt der inhaltssprachige Wert (der auf dem HTTP-äquiv-Attribut verwendet wird). Fast so viele Menschen verwenden dies als Angabe des Lang -Attributs im HTML -Element. In der HTML5-Spezifikation ist derzeit das HTTP-Equiv-Attribut nur für den einen Fall der Festlegung der Zeichenkodierung zulässig, die nicht wirklich fallen gelassen werden kann, wie der obige Diagramm zeigt. HTTP-Equiv = "Content-Sprache" wird jedoch von mindestens einem Browser unterstützt, und wie wir hier sehen, wird es weit verbreitet-möglicherweise sollte HTTP-Equiv doch nicht entfernt werden.

Ferner a Thread in WebProworld Gespräche über den Unterschied zwischen der Verwendung von http-äquiv = contentsprachiger und name = Sprache, um die Sprache des Dokuments zu beschreiben, und impliziert, dass beide erforderlich sind.

Schließlich beziehen Sie sich auf die HTML -Techniken für Webinhalte -Richtlinien 1.0 Dokument bei W3C für einige weitere Empfehlungen, speziell Identifizierung der primären Sprache.

Abschließend sieht es so aus, als würden Bildschirmleser Lang-Attribute mehr als inhaltssprachige Meta-Informationen betrachten. Die meisten Empfehlungen, die ich gesehen habe, empfiehlt jedoch, Meta-Daten zu verwenden. Insbesondere die Google -Statistiken scheinen relevant zu sein, also sollten Sie beide in beide lassen.

Andere Tipps

Ich glaube ein Vorteil der <meta> Die Version ist, dass Sie mehrere Sprachen wie in angeben können <meta http-equiv="Content-Language" content="en-GB, fr" />, zum Beispiel. Sich ansehen Dies für eine eingehendere Untersuchung des Faches.

Content-Language ist in XHTML5 nicht konform.

Sie können zwar mehr als eine Sprache angeben, aber Sie sollten dies nicht tun (es hilft niemandem). Du solltest benutzen xml:lang Attribute für bestimmte Elemente stattdessen, z. B.

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

W3C I18N FAQ ist auch eindeutig gegen <meta>:

Die HTTP -Header- oder Meta -Elementinformationen sind hier nicht relevant. Durch Erweiterung, Sie sollten die Textverarbeitungssprache des Inhalts als Ganzes angeben, indem Sie die verwenden lang und/oder xml:lang Attribute in der html Schild.

Soweit ich weiss, meta http-äquiv ist nur für HTML -Dokumente (nicht XHTML) erforderlich (wenn überhaupt)XML: Lang.

Kein Unterschied, die zweite Zeile ist nur überflüssig.

Laut dem HTTP/1.0 RFC 1945 repräsentiert das Feld Content-Language Header "die Sprachen des beabsichtigten Publikums".

Das Feld Content-Sprach-Entitäts-Header beschreibt die natürliche Sprache des beabsichtigten Publikums für die beigefügte Entität. Beachten Sie, dass dies möglicherweise nicht allen in der Entität verwendeten Sprachen entspricht.

Html4 und xhtml1.x behandeln das meta http-äquiv-Tag als dieselben Informationen, die in das HTML-Dokument und nicht den HTTP-Header eingebettet sind.

Andererseits identifizieren XML: Lang und das HTML Lang -Attribut die Sprache des Dokuments oder das in dem Element enthaltene Fragment, auf dem das Attribut erscheint.

Nehmen wir also an, Sie hatten ein Dokument, das hauptsächlich auf Französisch zum Zwecke des Unterrichtens von Französisch-Sprechern beigebracht wurde. Die Inhaltssprache wäre en-gb, en-us (sagen wir), während das XML: Lang-Attribut fr-fr-fr sein würde .

Jedoch, HTML 5 ändert dies, und das Meta http-äquiv = "Content-Sprache" wird als nicht konformer HTML angesehen, das dennoch die dokumentweite Standardsprache definiert und nur eine einzelne Sprache unterstützt, so dass dies effektiv identisch mit XML: Lang auf dem ist HTML -Element. Ich kann nicht sagen, dass ich die Gründe für diese Veränderung verstehe, aber Daniel Glazman und Ian Hickson diskutieren sie im Thread, beginnend bei http://lists.w3.org/archives/public/public-html/2008nov/0083.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top