HTML の書字方向分離要素 (<bdi>) は、周囲のテキストとは逆の方向で表示する必要がある可能性があるテキストの区間を示します。

これで例えば、英語 (左書き) で書かれた段落の中でアラビア語 (右書き) の引用を表すことができます。ユーザーエージェントは右から左へ表示するべき <bdi> 要素内のテキストを正しく検出し、それによって調整する必要があります。

この要素は、書字方向が一定のページに対して、書字方向が不定の文字列を (たとえばデータベースから) 埋め込む際に、その文字列の書字方向を指定して表示する際に便利です。

メモ: 任意で、 dir 属性を使用して、 <bdi> 要素の中身を描画する方向についてのユーザーエージェントの決定を上書きすることができます。

HTML における双方向テキストについて詳しく知るには、 Unicode 双方向テキストアルゴリズムの記事をお読みください。

コンテンツカテゴリ フローコンテンツ, 記述コンテンツ, 知覚可能コンテンツ
許可されている内容 記述コンテンツ
タグの省略 不可。開始と終了タグの両方が必要。
許可されている親要素 記述コンテンツ を受け入れるすべての要素
許可されている ARIA ロール すべて
DOM インターフェイス HTMLElement

属性

この要素は、他のすべての HTML 要素と同様にグローバル属性に対応していますが、 dir 属性の挙動が普通とは異なります。初期値は auto であり、親要素から値を継承しないことを示します。つまり、 dir"rtl" 又は "ltr" のどちらかの値を指定しない限り、ユーザーエージェント<bdi> の内容に基づいて正しい方向を特定します。

使用上の注意

同様の視覚効果は、 <span> または他のテキストフォーマット要素に CSS の規則の unicode-bidi: isolate を使用することで実現できますが、多くの場合は代わりに <bdi> 要素を使用したほうが優れています。 <bdi> 要素は重要な意味論的意味を提供しますが、 CSS プロパティ unicode-bidi は表示だけだからです。

これは、ブラウザーが CSS による整形を無視することができるために特に重要です。この場合、 <bdi> 要素の中のテキストは正しく表示されますが、 unicode-bidi: isolate だけで表示されたテキストは、スタイルがなくなるので逆方向に表示されます。

これは、 HTML の意味論的な値が重要になる一つのケースです。

<p dir="ltr">このアラビア語の <bdi>ARABIC_PLACEHOLDER</bdi>
は右から左に向かって文字がレンダリングされます。</p>

表示結果

このアラビア語の REDLOHECALP_CIBARA は、右から左に向かってレンダリングされます。

仕様書

仕様書 状態 備考
HTML Living Standard
<bdi> の定義
現行の標準  
HTML5
<bdi> の定義
勧告  

ブラウザーの対応

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応16 なし10 なし なし なし
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 なし なし なし10 なし なし なし

関連情報

ドキュメントのタグと貢献者

このページの貢献者: mfuji09, yuheiy, yyss, ethertank
最終更新者: mfuji09,