Атрибут data-* тега <bdi>
Описание
Пользовательские атрибуты data-* для тега <bdi> позволяют хранить дополнительную информацию, связанную с изолированным текстом. Эти атрибуты особенно полезны для работы с многоязычным контентом через JavaScript.
Пример использования:
<bdi data-lang="ar" data-origin="user-generated" dir="auto">
نص عربي
</bdi>
Доступ к данным через JavaScript:
const arabicText = document.querySelector('bdi[data-lang="ar"]');
console.log(arabicText.dataset.lang); // "ar"
console.log(arabicText.dataset.origin); // "user-generated"
Типичные сценарии применения:
| Атрибут | Назначение |
|---|---|
data-lang |
Язык содержимого (ar, he, fa и др.) |
data-direction |
Явное указание направления (rtl/ltr) |
data-origin |
Источник текста (user, system, translation) |
data-username |
Идентификатор пользователя для RTL-имён |
Совет: Используйте префикс data- для совместимости и валидности HTML. Для сложных данных применяйте JSON в атрибуте.
Пример с JSON-данными:
<bdi data-meta='{"lang":"fa","authorID":42}'>
متن فارسی
</bdi>
<script>
const meta = JSON.parse(document.querySelector('bdi').dataset.meta);
console.log(meta.authorID); // 42
</script>
Лучшие практики:
- Используйте стандартные названия языковых кодов (ISO 639-1)
- Для смешанного контента указывайте основной язык
- Избегайте хранения чувствительных данных
- Сочетайте с атрибутом
langдля доступности