<bdi>: l'elemento Bidirezionale Isolato

L'elemento HTML <bdi> indica all'algoritmo bidirezionale del browser di trattare il testo che contiene in isolamento dal testo circostante. È particolarmente utile quando un sito Web inserisce in modo dinamico del testo e non conosce la direzionalità del testo inserito.

Il testo bidirezionale è un testo che può contenere sia sequenze di caratteri che sono disposti da sinistra a destra (LTR) sia sequenze di caratteri che sono disposti da destra a sinistra (RTL), come una citazione araba incorporata in una stringa inglese o italiana. I browser implementano l'Algoritmo bidirezionale Unicode per gestire questo. In questo algoritmo, ai caratteri viene assegnata una direzionalità implicita: ad esempio, i caratteri latini vengono trattati come LTR mentre i caratteri arabi vengono trattati come RTL. Alcuni altri caratteri (come spazi e alcuni segni di punteggiatura) sono trattati come neutri e vengono assegnati direzionalità in base a quella dei caratteri circostanti.

Di solito, l'algoritmo bidirezionale farà la cosa giusta senza che l'autore debba fornire alcun markup speciale ma, occasionalmente, l'algoritmo ha bisogno di aiuto. Ecco dove <bdi> entra in gioco.

L'elemento <bdi> viene utilizzato per avvolgere un intervallo di testo e indica all'algoritmo bidirezionale di trattare questo testo in isolamento dall'ambiente circostante. Questo funziona in due modi:

  • La direzionalità del testo incorporato in <bdi> non influenza la direzionalità del testo circostante.
  • La direzionalità del testo incorporato in <bdi> non è influenzata dalla direzionalità del testo circostante.

Incorporare i caratteri in <span dir="auto"> ha lo stesso effetto dell'utilizzo di <bdi>, ma la sua semantica è meno chiara

Attributi

Come tutti gli altri elementi HTML, questo elemento supporta gli attributi comuni a tutti gli elementi tranne per il fatto che l'attributo dir si comporta in modo diverso dal normale: il valore predefinito è auto, il che significa che il suo valore non viene mai ereditato dall'elemento padre. Ciò significa che, a meno che non specifichi un valore di rtl o ltr per dir, l' interprete determinerà la corretta direzionalità da utilizzare in base al contenuto di <bdi>.