<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>
.