20

「lang」属性を使用することの重要性と、メタ「Content-Language」タグを使用することとの違いは何ですか?

次のコードを検討してください。

<html lang="en">
    <head>
        <meta http-equiv="Content-Language" content="en-US">
    </head>...

私の推測では、ブラウザはメタ タグの値を読み取っていますが、DOM は「lang」属性に関係しています。これは正しいです?私が知らないニュアンスはありますか?

4

3 に答える 3

17

(HTML 要素の) lang 属性は、ドキュメントの言語を指定します (ドキュメントのセクションの言語を変更できる別の lang 属性でオーバーライドされない限り)。

Content-Language HTTP ヘッダーは、対象読者の言語を指定します。これは、ドキュメントが実際に書かれている言語とは異なります。たとえば、フランス語コースの一部がフランス語で書かれたページで構成されている可能性がありますが、Content-Language は英語を話す人がフランス語を学習することを目的としているため、enになります。

仕様から:

Content-Language エンティティ ヘッダー フィールドは、同封されたエンティティの対象読者の自然言語を記述します。これは、エンティティ本体内で使用されるすべての言語と同等ではない可能性があることに注意してください。

Meta HTTP-equiv は貧乏人の HTTP ヘッダーです。これには、実際の HTTP ヘッダーのすべての意味がありますが、尊重 (およびサポート) は少なくなります。

経験則として、Content-Language は検索エンジンにとってより重要であり、lang 属性はスクリーン リーダーにとってより重要です。

于 2010-12-14T06:50:53.143 に答える
3

それらは同じことを意味します — 問題のコンテンツの言語を設定します — ただし、lang属性の方が優先されます。8.1.2 言語コードの継承を参照してください。それらはさまざまなユースケースを処理します。lang属性は<i lang=la>exempla gratis</i>個々の要素に設定Content-Languageできますが、ヘッダーはサーバーによってグローバルに構成され、ドキュメントのセット全体に適用されます。

htmlあなたの例は、要素の言語を設定する2つの同等の方法を示していますが、lang属性が優先されるため、値は"en"ありません"en-US"

于 2010-12-14T06:40:29.790 に答える