La Etiqueta BDO

Permite forzar la dirección de escritura de un fragmento de texto, anulando el comportamiento automático del navegador.

La etiqueta <bdo> (Bidirectional Override) permite forzar la dirección de escritura de un fragmento de texto, anulando el comportamiento automático del navegador. Es esencial para manejar idiomas con direccionalidad derecha-a-izquierda (RTL) o crear efectos especiales.

Sintaxis básica

<bdo dir="ltr|rtl">Texto a invertir</bdo>
  • dir: Atributo obligatorio (ltr para izquierda-derecha, rtl para derecha-izquierda).

  • Sobrescribe la dirección heredada del contexto padre.

Casos de uso comunes

Texto en idiomas RTL (árabe, hebreo, etc.)

<p>Palabra en árabe: <bdo dir="rtl">مرحبا</bdo> (Hola)</p>

Efectos de diseño creativo

<h2><bdo dir="rtl">¡aloH odnuT</bdo></h2> <!-- Resultado: "¡Hola Mundo" -->

Corrección de dirección en contenido mixto

<p>Número en hebreo: <bdo dir="rtl">123</bdo> <!-- Muestra "321" -->

Atributos clave

Atributo Valores Descripción
dir ltr, rtl Dirección forzada del texto (obligatorio)
lang Código de idioma Define el idioma del contenido
title Texto descriptivo Explicación al pasar el cursor

Ejemplos prácticos

Ejemplo 1: Integración de árabe en texto LTR

<p>
  En árabe, "gracias" se escribe: 
  <bdo dir="rtl" lang="ar" title="Gracias">شكرًا</bdo>.
</p>

Ejemplo 2: Efecto espejo para diseño

<style>
  .espejo {
    font-size: 24px;
    color: #3498db;
  }
</style>

<bdo dir="rtl" class="espejo">¡Hola diseñadores!</bdo>

Ejemplo 3: Lista bilingüe

<ul>
  <li>Español: <bdo dir="ltr">Hola</bdo></li>
  <li>Hebreo: <bdo dir="rtl">שלום</bdo></li>
  <li>Árabe: <bdo dir="rtl">سلام</bdo></li>
</ul>

Diferencias clave con <bdi>

Característica <bdo> <bdi>
Propósito Forzar dirección Aislar dirección desconocida
Control Manual (dir explícito) Automático
Uso típico Corrección de dirección Contenido generado por usuarios

Accesibilidad

Los lectores de pantalla respetan la dirección forzada.

Buenas prácticas:

  • Usar lang para indicar el idioma:
<bdo dir="rtl" lang="he">ישראל</bdo>
  • Evitar usos puramente decorativos sin significado.

Estilización con CSS

Combina con propiedades CSS para efectos avanzados:

bdo.rtl-effect {
  font-family: 'Arial', sans-serif;
  letter-spacing: 2px;
  background: #f8f9fa;
  padding: 5px;
  border: 1px dashed #2c3e50;
}

Errores comunes

Olvidar el atributo dir

<!-- Incorrecto -->
<bdo>Texto</bdo> <!-- ¡No tendrá efecto! -->

<!-- Correcto -->
<bdo dir="rtl">Texto</bdo>

Confundir con CSS direction

<!-- Menos semántico -->
<span style="direction: rtl; unicode-bidi: bidi-override;">Texto</span>

<!-- Mejor práctica -->
<bdo dir="rtl">Texto</bdo>

Anidación incorrecta

<!-- Redundante -->
<bdo dir="rtl">
  <bdo dir="ltr">Texto</bdo> <!-- Dirección contradictoria -->
</bdo>

Buenas prácticas

Usar solo cuando sea necesario:

  • Para corregir dirección mal detectada.

  • En contenido RTL dentro de contexto LTR.

Combinar con lang para SEO:

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

Evitar para textos largos:

Usar dir en contenedores padre para secciones completas:

<article dir="rtl" lang="he">
  <!-- Contenido completo en hebreo -->
</article>

Compatibilidad

Navegador Soporte
Chrome Todas versiones
Firefox Todas versiones
Safari Todas versiones
Edge Todas versiones

Conclusión:

La etiqueta <bdo> es indispensable para:

  • Garantizar la correcta visualización de idiomas RTL.

  • Corregir errores de dirección en contenido mixto.

  • Crear efectos de diseño controlados.

Úsala estratégicamente en contextos multilingües y siempre prioriza la semántica sobre el estilo.