Атрибут lang тега <bdo>


Описание

Атрибут lang для тега <bdo> указывает язык текста, к которому применяется изменение направления. Хотя <bdo> в первую очередь управляет направлением, lang помогает:

  • Корректно отображать символы языка
  • Улучшать доступность для скринридеров
  • Обеспечивать правильную работу средств перевода
  • Оптимизировать типографику для конкретного языка

Пример использования:

<bdo dir="rtl" lang="ar"> اللغة العربية </bdo>

Рекомендуемые языковые коды:

Язык Код Направление
Арабский ar RTL
Иврит he RTL
Персидский fa RTL
Урду ur RTL

Особенности работы:

  • Не изменяет поведение атрибута dir
  • Влияет на выбор шрифта и рендеринг текста
  • Может переопределять унаследованный язык от родительских элементов
  • Рекомендуется для всех случаев использования <bdo>

Пример с CSS:

/* Специфичные стили для арабского текста */ bdo[lang="ar"] { font-family: 'Arabic Font', sans-serif; letter-spacing: 0; } /* Стили для персидского текста */ bdo[lang="fa"] { font-family: 'Iranian Sans', serif; }

Совет: Всегда указывайте lang вместе с dir для RTL-языков - это помогает браузерам корректно обрабатывать текст.

JavaScript-применение:

// Динамическое определение языка function setBdoLanguage(element, text) { const rtlChars = /[\u0591-\u07FF\uFB1D-\uFDFD\uFE70-\uFEFC]/; element.lang = rtlChars.test(text) ? 'ar' : 'en'; element.dir = rtlChars.test(text) ? 'rtl' : 'ltr'; }

Ошибки и решения:

<!-- Неправильно: язык не соответствует направлению --> <bdo dir="rtl" lang="en">English text</bdo> <!-- Правильно: --> <bdo dir="ltr" lang="en">English text</bdo> <bdo dir="rtl" lang="ar">نص عربي</bdo>

Рекомендации:

  • Используйте стандартные коды языков (ISO 639-1)
  • Для региональных вариантов добавляйте код страны (ar-EG, he-IL)
  • Проверяйте соответствие между lang и фактическим содержимым
  • Сочетайте с атрибутом dir для полного контроля