[1] bdo
要素型は、 bidi 算法を局所的に上書き (override)
したいときに使うことができます。 (IW:HTML4:"struct/dirlang.html#edef-BDO" 参照。)
HTML の bidi 算法については、 書字方向
,
dir
属性の解説も参照してください。
[12] 仕様書:
(%inline;)*
名前 | 値の型 | 既定値 | 意味 | 出典 |
class | 級 | [HTML4] %coreattrs; | ||
dir | (必須) | 書字方向 | [HTML4] | |
id | 一意識別子 | [HTML4] %coreattrs; | ||
lang | 自然言語 | [HTML4] | ||
style | スタイル指定 | [HTML4] %coreattrs; | ||
title | 説明的題 | [HTML4] %coreattrs; |
[3] 必須の dir
属性の値が、その要素の文内容の基底方向となります。
[4] 普通は書字方向の制御は使用されている文字自体の特性により、
それが不十分であっても任意の属性についての dir
属性の指定により、意図した通りにすることができます。
しかし、それでもうまくいかない場合が存在します。
そのときに使うことができるのが、この bdo
要素型です。
bdo
要素型は、順序についての絶対的な制御が必要な場面でしようするべきです (should)。
[5] HTML 4 仕様書の説明によれば、この要素型が想定しているのは、 表示順で符号化したいときのようです。 たとえば、
トラックの側面に「輸運らたんな」と書いてありました。
を HTML でマーク付けするときに、
トラックの側面に<q dir="rtl">なんたら運輸</q>と書いてありました。
とする代わりに、
トラックの側面に<q><bdo dir="ltr">輸運らたんな</bdo></q>と書いてありました。
ともできる、ということです。
[6] ヘブライ文字やアラビア文字を符号化するにあたって、 昔から表示順 (visual order, 視覚順) と意味順 (論理順) が両方使われてきました。 特に欧米のソフトウェアを地域化したようなソフトウェアでは、 表示順で符号化した方が処理は圧倒的に楽です。
HTML 4 仕様書によれば、ヘブライ文字圏では table
を使って、表示順で符号化した上で右寄せ、行折り畳み (wrap)
なし、というのがよく行われていたそうです。
そのような慣習の文書は HTML 4 には適合しませんが、
古い実装と互換でありつつ HTML 4 的にするためには、
適当に bdo
のタグで囲んでしまえばよいのです。
[7] なお、同じ目的のために、 LRO
(U+202D
), RLO
(U+202E
), PDF
(U+202C
) を使うことができます。
(混用についての dir
属性の解説も参照されたし。)
[8] このような背景ですから、おそらく、新しく書かれる文書ではこの要素型は使用するべきではないと思います。
要 よ 文 に >>5-6 素 く 字 す こ 型 あ ほ る ん を る ど の な 用 の で も 風 意 だ は ヘ に し し な ブ 縦 て 専 い ラ 書 お 用 に イ き く の し れ ろ
[10] >>9 計算機の能力が低かった (あるいは今でも低い) がために不適切な文字の並べ方をしてきた例は右横書きや縦書きだけではなくて、例えば半角と全角の幅を想定した整形とか、1文字ごとに空白を挿入 (中文の文章でよくある) とか、一行ごとに空行を挿入とか、 ASCII や ISO-8859-1 と見せかけて実は font
要素を使って別の文字を表現 (東南アジアの言語の文章に多い。欧米や日本でも、 Symbol フォントとかでよくある。
bdo
だけが特別扱いされる (ように見える) のは、仕方が無い側面もあるとはいえ、どうかなあとは思う。
[20]
日本語文字は現代において左横書きされることがが大多数で、
Unicode文字としてもそのように扱われています。
標準の状態では右横書きできません。
そこで bdo
要素を使って dir
属性を
rtl
にするこで、右横書きに「上書き」できます。
bdo
要素の誕生[13] 連絡先 : Alpha (exeal 著, 版) http://alpha.sourceforge.jp/contact.html
この文書では、 spam 対策だと思いますが、
実際のメイル・アドレスを全文字逆順に並べ、
bdo
で括っています。
つまり、データとしては実際とは逆順にしながら、 レンダリングは実際と同じ順序にしています。
このような使い方は bdo
の趣旨に反すると考えられ、不適切です。
[21] けど HTML4 の解説は視覚順の表記に対応するため、なのでこういう使い方もありなんですよね。 この場合 HTML4 の規定が (歴史的事情とはいえ) 酷すぎるんですが...
[18]
DTBook では lang=""
は大域属性ではなく、
bdo
要素に特に lang
属性が定義されています。
[14] XHTML2 の最初の作業原案には bdo
要素が含まれていましたが、
2つ目の作業原案では削除され、代わりに dir
大域属性に値が追加されています。
[15] Web Applications 1.0 r8317 Move all requirements about bidi out and just rely on CSS instead. Also, fix the CSS rules for <bdo>. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8316&to=8317
[16] W3C mobileOK Basic Tests 1.0 () https://www.w3.org/TR/mobileOK-basic10-tests/#STYLE_SHEETS_USE