Атрибут hidden тега <bdo>
Описание
Атрибут hidden для тега <bdo> позволяет скрыть элемент со всем его содержимым. Однако это нарушает основное назначение тега, который предназначен для управления направлением отображения текста.
Пример (не рекомендуется):
<bdo dir="rtl" hidden>
هذا النص مخفي
</bdo>
Проблемы использования:
| Проблема | Решение |
|---|---|
| Бессмысленность применения | Использовать только для видимого текста |
| Нарушение семантики | Применять к блочным/строчным элементам вместо <bdo> |
| Проблемы доступности | Скрывать контент через CSS или aria-hidden |
Правильные альтернативы:
<!-- CSS-решение -->
<div class="visually-hidden">
<bdo dir="rtl">نص مخفي</bdo>
</div>
<!-- ARIA-решение -->
<bdo dir="rtl" aria-hidden="true">
نص غير مرئي
</bdo>
Сравнение методов скрытия:
- hidden: Полное удаление из layout (не для <bdo>)
- CSS display:none: Аналогично hidden (лучше для контейнеров)
- aria-hidden: Только для скринридеров (сохраняет отображение)
- CSS visibility:hidden: Сохраняет пространство (не для <bdo>)
Важно: Тег <bdo> должен использоваться только для видимого текста, требующего контроля направления. Для скрытого контента применяйте другие HTML-элементы.
Исключительные случаи:
<!-- Временное скрытие при динамическом обновлении -->
<bdo dir="rtl" id="temp-content" hidden>
محتوى مؤقت
</bdo>
<script>
// Показать при необходимости
document.getElementById('temp-content').hidden = false;
</script>
Рекомендации:
- Избегайте hidden для семантических текстовых тегов
- Для RTL/LTR-логики используйте видимые элементы
- Скрывайте через родительские контейнеры при необходимости
- Тестируйте скрытый контент в скринридерах