Атрибут lang объявляет язык содержимого документа:
<html lang="ru">
Значение — код языка по стандарту ISO 639-1: ru, en, de, kk. Регион добавляется через дефис, если он важен: ru-KZ, en-GB, pt-BR. Для обычного русскоязычного сайта достаточно ru.
Зачем это нужно
Скринридеры. Программы экранного доступа выбирают по lang синтез речи. Без атрибута русский текст может читаться с английскими правилами произношения — понять невозможно. Это основная причина, по которой атрибут обязателен.
Браузерный перевод. Chrome и Яндекс Браузер решают по lang, предлагать ли перевод. Неверный код — и русскому посетителю предложат перевести русскую страницу, а англоязычному не предложат ничего.
Типографика браузера. Правила переноса слов, вид кавычек, выбор шрифта из семейства зависят от языка документа.
Поисковые системы язык определяют по тексту и не полагаются на атрибут всерьёз, но противоречие между lang="en" и русским содержимым — лишний повод для сомнений в качестве страницы.
Куски текста на другом языке
Если внутри русской страницы есть фрагмент на другом языке, разметьте его отдельно:
<p>Наш девиз — <span lang="en">move fast</span> и никакой суеты.</p>
Скринридер переключит произношение на этом фрагменте и вернётся обратно.
Частые ошибки
- Осталось
lang="en"от шаблона. Самая распространённая: тему купили или скачали, а атрибут не поправили. - Указана страна вместо языка:
lang="RU"в значении «Россия» — формально это тот жеru, ноlang="UA"вместоukуже ошибка, такого кода языка нет. - Атрибут не на
<html>, а где-то внутри. Он должен быть на корневом теге; локальныеlangтолько уточняют его. - Разметка hreflang есть, а
langне совпадает с ней. Английская версия объявляетlang="ru"— противоречие, которое видно сразу.
Как проверить
- Пункт аудита «Язык страницы (lang)».
- Вручную:
Ctrl+U→ первая строка после<!DOCTYPE html>.
Правка занимает секунду и не требует пересборки чего бы то ни было — это самая дешёвая из всех технических правок в отчёте.