Подтвердить что ты не робот

Какая разница между атрибутом lang и тегом <meta http-equiv = "Content-Language" content = "en-US" >?

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 3

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

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