В чем разница между атрибутом lang и тегом <meta http-equ = "Content-Language" content = "en-US">? - PullRequest
18 голосов
/ 14 декабря 2010

Мне было интересно, каково значение использования атрибута "lang" и чем это отличается от использования мета-тега "Content-Language"?

Рассмотрим следующий код:

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

Я предполагаю, что браузер читает значение метатега, но DOM связан с атрибутом "lang".Это правильно?Есть ли какие-то нюансы, о которых я не знаю?

Ответы [ 3 ]

13 голосов
/ 14 декабря 2010

Атрибут lang (в элементе HTML) указывает язык документа (если он не переопределен другим атрибутом lang, который может изменить язык для раздела документа).

HTTP-заголовок Content-Languageуказывает язык предполагаемой аудитории.Это не то же самое, что язык, на котором фактически написан документ. Например, часть курса французского языка может состоять из страницы, написанной на французском языке, но Content-Language будет en , как и предполагалосьдля говорящих по-английски.

Из спецификации :

Поле заголовка объекта Content-Language описывает естественный язык (и) предполагаемой аудиториидля вложенного объекта.Обратите внимание, что это может быть не эквивалентно всем языкам, используемым в теле объекта.

Мета-HTTP-эквивалент - это HTTP-заголовок бедняка.Он имеет все значение реального HTTP-заголовка, но меньше уважения (и поддержки).

Как правило, Content-Language представляет больший интерес для поисковых систем, а атрибут lang представляет больший интерес дляпрограммы чтения с экрана.

7 голосов

Обновление HTML5 : meta http-equiv="Content-Language" устарело , а тег lang можно использовать для всех атрибутов .

3 голосов
/ 14 декабря 2010

Они означают одно и то же - задают язык рассматриваемого контента - однако атрибут lang имеет более высокий приоритет. См. 8.1.2 Наследование кодов языков . Они обрабатывают разные варианты использования - атрибут lang может быть установлен <i lang=la>exempla gratis</i> для отдельного элемента, в то время как заголовок Content-Language может быть глобально настроен сервером для применения ко всему набору документов.

В ваших примерах показаны два эквивалентных способа установки языка элемента html, но, поскольку атрибут lang имеет приоритет, значение будет "en", а не "en-US".

...