
Атрибут lang в HTML указывает язык содержимого страницы или её отдельного элемента. Его значение напрямую влияет на корректность индексирования в поисковых системах, доступность для пользователей с особыми потребностями и работу автоматических переводчиков.
Корректное применение атрибута требует указания языкового кода в формате BCP 47. Например, для русского языка используется ru, для английского – en, а для американского варианта английского – en-US. Неверно заданный или отсутствующий атрибут приводит к ошибкам распознавания языка браузерами и вспомогательными технологиями.
Чаще всего lang добавляется в корневой тег <html>, что определяет основной язык всей страницы: <html lang=»ru»>. Если на странице присутствуют фрагменты текста на других языках, их необходимо выделять с помощью <span lang=»en»> или аналогичных элементов, чтобы обеспечить точное определение языка на уровне контента.
Где указывать атрибут lang в структуре HTML-документа

Атрибут lang указывается в корневом элементе <html> документа. Это позволяет браузерам, поисковым системам и вспомогательным технологиям корректно определять основной язык страницы. Пример правильного использования: <html lang="ru">.
Если на странице встречаются фрагменты на другом языке, атрибут lang следует применять к соответствующим контейнерам, например, к <p>, <span> или <div>. Это особенно важно для цитат, вставок и элементов интерфейса. Пример: <p lang="en">Example text</p>.
Нельзя указывать lang только на отдельных абзацах, игнорируя корневой <html>. Это приводит к некорректной индексации страниц и проблемам с синтезом речи у экранных читалок.
Для многоязычных сайтов рекомендуется использовать lang на уровне разделов документа. Например, секции <section lang="fr"> или <article lang="es"> обеспечивают точное определение языка без необходимости повторять атрибут на каждом элементе внутри.
Валидация HTML через инструменты W3C проверяет присутствие lang в корневом элементе и корректность значений в стандарте BCP 47. Для универсальности используйте коды формата ISO 639-1, например ru, en, fr.
Как выбрать корректный языковой код для атрибута lang

Для атрибута lang необходимо использовать коды, соответствующие стандарту BCP 47. Основная структура кода: язык[-регион]. Например, en обозначает английский язык, а en-US – английский в американском варианте.
Выбор кода зависит от двух факторов: языка контента и региональной вариации. Если страница содержит стандартный вариант языка без привязки к региону, достаточно двухбуквенного кода ISO 639-1, например fr для французского. Для региональных различий добавляется дефис и код страны по ISO 3166-1, например pt-BR для бразильского португальского.
При многоязычном контенте необходимо указывать lang для каждого блока текста. Например: <p lang=»es»>Hola</p> для испанского фрагмента на странице с основным английским текстом. Это улучшает доступность и корректную озвучку для screen reader.
Для языков с вариантами письма используют дополнительные субтеги. Например, zh-Hans для упрощённого китайского и zh-Hant для традиционного. Субтеги указываются после дефиса и учитываются браузерами и вспомогательными технологиями.
Нельзя использовать произвольные сокращения или локальные обозначения. Использование BCP 47 обеспечивает совместимость с поисковыми системами, корректное форматирование дат, чисел и правильное произношение текстов средствами озвучки.
Перед установкой кода полезно сверяться с официальным списком ISO 639-1 и ISO 3166-1, а также проверять поддержку субтегов для специфических диалектов. Например, sr-Cyrl для сербского на кириллице или sr-Latn для латиницы.
Разница между атрибутами lang и xml:lang

Атрибут lang используется в HTML для указания языка содержимого документа или его части. Он поддерживается всеми современными браузерами и влияет на обработку текста, например, на функции проверки орфографии и синтеза речи. Атрибут xml:lang применяется в XHTML и XML-документах и необходим для корректной интерпретации языка в строгой XML-среде.
При разработке сайтов важно различать их применение. В HTML5 достаточно использовать lang, а в XHTML рекомендуется дублировать значение в xml:lang для совместимости с XML-парсерами. Это гарантирует правильную локализацию и индексирование контента поисковыми системами.
| Атрибут | Применение | Совместимость | Пример |
|---|---|---|---|
| lang | HTML-документы и части текста | Все браузеры | <html lang=»ru»> |
| xml:lang | XHTML и XML-документы | XML-парсеры, XHTML | <html xml:lang=»ru»> |
Для полной совместимости в XHTML следует использовать оба атрибута одновременно: <html lang="ru" xml:lang="ru">. В чистом HTML достаточно одного lang. Это предотвращает конфликты между браузерами и стандартами XML, особенно при трансформации документа через XSLT или при использовании сервисов проверки языка.
Использование региональных кодов в атрибуте lang
Атрибут lang позволяет указать язык содержимого страницы. Для точной локализации важно использовать не только код языка, но и региональный код по стандарту BCP 47. Формат: язык-регион, например, en-US для американского английского или fr-CA для канадского французского.
Региональные коды состоят из двух букв ISO 3166-1 alpha-2 и пишутся через дефис после кода языка: ru-RU, es-MX, pt-BR. Они позволяют браузерам, поисковым системам и вспомогательным технологиям корректно отображать контент с учетом локализации.
Использование региональных кодов особенно важно для числовых и датовых форматов, правил правописания и аудиовоспроизведения. Например, en-GB применяет британское написание слов и формат даты DD/MM/YYYY, а en-US – американский вариант с MM/DD/YYYY.
При разработке мультиязычных сайтов рекомендуется явно указывать региональный код на уровне <html> и при необходимости на отдельных элементах, чтобы обеспечить точную локализацию: <html lang="fr-CA"> или <p lang="pt-BR">.
Региональные коды также поддерживаются SEO и могут улучшать релевантность контента для пользователей из конкретной страны. Для страниц с несколькими вариантами языка рекомендуется использовать hreflang вместе с lang: <link rel="alternate" hreflang="es-MX" href="…"/>.
Список поддерживаемых языков и регионов можно проверить по официальному стандарту IANA Language Subtag Registry, чтобы избежать некорректных или устаревших кодов.
Как проверить корректность указания lang в HTML

Для проверки атрибута lang в HTML сначала убедитесь, что значение соответствует стандарту BCP 47. Например, для английского используется en, для американского варианта – en-US, для французского – fr. Неправильные сокращения, лишние пробелы или неверные дефисы делают атрибут некорректным.
Используйте встроенные инструменты браузеров. В Chrome откройте DevTools → Elements и проверьте тег <html> или отдельные элементы на наличие корректного lang. Атрибут должен присутствовать на корневом элементе и соответствовать языку содержимого.
Автоматические валидаторы, такие как W3C Markup Validation Service, выявляют ошибки в атрибуте lang. Они проверяют синтаксис и наличие стандартных кодов языков, включая подязыки.
Для многоязычных страниц проверьте, что каждый блок текста имеет правильный локальный атрибут lang. Например, абзац на немецком языке должен иметь lang="de", даже если основной язык страницы – en.
Дополнительно можно использовать инструменты для доступности, такие как axe DevTools или Lighthouse. Они анализируют HTML на соответствие WCAG и указывают на несоответствия в атрибутах языка, влияющие на работу экранных читалок.
Регулярный аудит страниц с помощью этих методов гарантирует, что lang указан корректно, улучшает SEO и обеспечивает корректное воспроизведение текста для всех пользователей.
Влияние атрибута lang на доступность и SEO

Атрибут lang указывает язык содержимого страницы и напрямую влияет на работу экранных читалок и поисковых систем. Его отсутствие или неправильное использование ухудшает восприятие информации пользователями с ограниченными возможностями и снижает эффективность индексации.
Для доступности:
- Экранные читалки используют значение
langдля корректного произношения текста. Например, элемент<html lang="ru">активирует русскую фонетику. - Смена языка внутри страницы требует локального применения атрибута, например:
<span lang="en">Hello</span>, чтобы читалка использовала английскую интонацию. - Неправильное указание языка (например,
enвместоru) может полностью исказить произношение и замедлить понимание информации.
Для SEO:
- Поисковые системы анализируют
langдля правильной региональной индексации. Страницы с корректным атрибутом лучше ранжируются в локальных результатах поиска. - Мультиязычные сайты должны использовать уникальный
langдля каждой версии, чтобы избежать дублирования контента и ошибок hreflang. - Отсутствие атрибута снижает точность определения языка страницы, что негативно влияет на релевантность поисковой выдачи.
Рекомендации по использованию:
- Всегда указывайте язык на уровне
<html>. - Для сегментов текста на другом языке используйте локальные
langвнутри<span>или<p>. - Используйте стандарт ISO 639-1: двухбуквенные коды (например,
ru,en), без сокращений или региональных вариантов, если они не требуются. - Регулярно проверяйте корректность атрибутов с помощью инструментов доступности и валидаторов HTML.
Вопрос-ответ:
Для чего нужен атрибут lang в HTML?
Атрибут lang указывает язык содержимого страницы. Он помогает браузерам и поисковым системам корректно обрабатывать текст, улучшает доступность для пользователей с программами чтения с экрана и позволяет корректно отображать шрифты и спецсимволы. Например, если страница на русском языке, нужно установить lang=»ru».
Где именно в HTML следует указывать атрибут lang?
Атрибут lang обычно добавляется в корневой тег <html>. Например: <html lang=»en»>. Это задаёт основной язык для всей страницы. Если на странице встречаются блоки текста на другом языке, для них можно использовать атрибут lang внутри отдельных элементов, например: <p lang=»fr»>Bonjour</p>.
Можно ли использовать сокращённые коды языка, например «ru» вместо «ru-RU»?
Да, HTML допускает как двухсимвольные коды языка (ISO 639-1), например «ru» для русского, так и более точные коды с указанием региона, например «ru-RU». Двухсимвольный код достаточно для большинства случаев, но региональные варианты помогают браузеру учитывать локальные особенности, такие как формат даты или валюты.
Что происходит, если атрибут lang не указан?
Если lang отсутствует, браузеры и поисковые системы пытаются определить язык автоматически, что может привести к ошибкам. Программы чтения с экрана могут использовать неверную артикуляцию, а системы перевода — неправильный язык. Указание атрибута lang снижает риск таких проблем и делает страницу более доступной.
Как правильно указывать язык внутри сложных документов с несколькими языками?
В сложных документах следует указывать основной язык в теге <html> и использовать локальные атрибуты lang для блоков на других языках. Например, основная страница на русском: <html lang=»ru»>, а цитата на английском: <blockquote lang=»en»>Text</blockquote>. Это помогает корректно отображать текст и поддерживает доступность.
Зачем вообще указывать атрибут lang в HTML?
Атрибут lang сообщает браузеру и вспомогательным технологиям, как обрабатывать текст на странице. Он помогает корректно произносить текст программами чтения с экрана, улучшает индексирование страниц поисковыми системами и влияет на выбор шрифтов и проверку орфографии. Без этого атрибута некоторые браузеры могут использовать неправильные правила для раскладки текста, а пользователи с программами чтения с экрана столкнутся с трудностями.
Как правильно задать атрибут lang для многоязычного сайта?
Для страниц, где используется несколько языков, атрибут lang нужно устанавливать для каждого блока текста на соответствующем языке. Например, основной язык страницы указывается в теге , а отдельные фрагменты, написанные на другом языке, получают собственный lang. Это может выглядеть так: <html lang="ru"><p>Hello, world!</p><p lang="en">Привет, мир!</p></html>. Такой подход помогает программам чтения с экрана правильно озвучивать текст и делает страницу удобнее для пользователей, которые используют автоматический перевод или поисковые системы.
