制作者(webmaster)
野嵜健秀(Takehide Nozaki)
改訂
2002-06-22

bdo要素

解説

雙方向アルゴリズム

言語によつて、左から右或は右から左にテキストが進行していきます。「現代」の日本語ならば、左から右にテキストが進行します。この事は、現代の日本人の多くが納得するでせう。さう云ふ「常識」に基いて、テキストの方向を決定する規則が「雙方向アルゴリズム」と云ふ奴(らしい)です(unicodeのbidirectional algorithm:雙方向アルゴリズム)。

一般に「テキストの方向性」を決定するには、そのテキストの言語がわかつてゐれば良い、と云ふ事になります。日本語のテキストならば、左から右にテキストが流れるやうに整形すればよろしい。i18n對應されたプログラムは基本的に、言語によつてテキストの方向を決定し、適切に整形出來る筈です。良く出來たOSには、きちんとこの「雙方向アルゴリズム」が實裝されてゐます。

HTMLでも、各要素に汎用屬性であるdir屬性が用意され、それぞれの要素で雙方向アルゴリズムを制御出來るやうにはなつてゐます。

BDO要素

しかし、特定の場面で、雙方向アルゴリズムを非常に特殊な形で上書き・變更しなければならない事態が生じます。

或一聯のテキストの方向を明示する必然性のある時に、bdo要素としてそのテキストをマークアップします。その方向がわからなければ意味がありませんから、dir屬性でテキストの方向を指定します。dirの屬性値がltrの時、テキストの方向は「左から右へ」。rtlの時、テキストの方向は「左から右へ」。

日本語などの「左から右へ」テキストの進行する文中に、ヘブライ語などの「右から左へ」テキストの進行する語句が入り込んだ時など、「雙方向アルゴリズム」が衝突する場面でのみ、bdo要素が必要となります。User Agentは、bdo要素の中身の雙方向アルゴリズムを、dir屬性の値に從つて強制的に上書きします。ただ、どのやうな形で整形するかは、User Agentの實裝次第です。駄目なUser Agentは、思つた通りのレンダリングをして呉れません。

なほ、現状「縱書き」は定義されてゐません。

體裁用文字符號

或テキストの方向性を制御するには、テキスト方向を直接指定する體裁用文字符號、即ち、‭(左→右)、‮(右→左)、‬(bidiアルゴリズムの上書き終了)を用ゐる事も出來ます。

dir属性とこれらの體裁用文字符號の機能は衝突しますので、併用しないで下さい。

參考

リンク

テスト

例へば、ブラウザに文字列を右から左へレンダリングさせる。