#?SuikaWiki/0.9
* bdo 要素型 (HTML, XHTML 1)
[1] [CODE(HTMLe)[bdo]] 要素型は、 [[bidi]] 算法を局所的に上書き (override)
したいときに使うことができます。 ( 参照。)
HTML の bidi 算法については、 [CODE(WikiPage)[[[書字方向]]]],
[CODE(HTMLa)[[[dir]]]] 属性の解説も参照してください。
[2]
:[[開始タグ]]:必須。
:[[終了タグ]]:必須。
:[[内容模型]]: [CODE(SGML)[([VAR[%[[inline]];]])*]]
:[[属性]]:
,名前,値の型,既定値,意味,出典
,[CODE(HTMLa)[[[class]]]],,,級,[HTML4] [VAR[%[[coreattrs]];]]
,[CODE(HTMLa)[[[dir]]]],,(必須),[[書字方向]],[HTML4]
,[CODE(HTMLa)[[[id]]]],,,一意識別子,[HTML4] [VAR[%coreattrs;]]
,[CODE(HTMLa)[[[lang]]]],,,自然言語,[HTML4]
,[CODE(HTMLa)[[[style]]]],,,スタイル指定,[HTML4] [VAR[%coreattrs;]]
,[CODE(HTMLa)[[[title]]]],,,説明的題,[HTML4] [VAR[%coreattrs;]]
[3] 必須の [CODE(HTMLa)[dir]] 属性の値が、その要素の文[[内容]]の[[基底方向]]となります。
[4] 普通は書字方向の制御は使用されている[[文字]]自体の特性により、
それが不十分であっても任意の属性についての [CODE(HTMLa)[dir]]
属性の指定により、意図した通りにすることができます。
しかし、それでもうまくいかない場合が存在します。
そのときに使うことができるのが、この [CODE(HTMLe)[bdo]] 要素型です。
[CODE(HTMLe)[bdo]] 要素型は、順序についての絶対的な制御が必要な場面でしようするべきです (should)。
[5] HTML 4 仕様書の説明によれば、この要素型が想定しているのは、
[[表示順]]で符号化したいときのようです。
たとえば、
> トラックの側面に「輸運らたんな」と書いてありました。
を HTML でマーク付けするときに、
> トラックの側面になんたら運輸
と書いてありました。
とする代わりに、
> トラックの側面に輸運らたんな
と書いてありました。
ともできる、ということです。
[6] [[ヘブライ文字]]や[[アラビア文字]]を[[符号化]]するにあたって、
昔から表示順 (visual order) と意味順が両方使われてきました。
特に欧米のソフトウェアを地域化したようなソフトウェアでは、
表示順で符号化した方が処理は圧倒的に楽です。
HTML 4 仕様書によれば、ヘブライ文字圏では [CODE(HTMLe)[[[table]]]]
を使って、表示順で符号化した上で右寄せ、行折り畳み (wrap)
なし、というのがよく行われていたそうです。
そのような慣習の文書は HTML 4 には適合しませんが、
古い実装と互換でありつつ HTML 4 的にするためには、
適当に [CODE(HTMLe)[bdo]] のタグで囲んでしまえばよいのです。
[7] なお、同じ目的のために、 [CODE(char)[[ABBR[[[LRO]]] [LEFT-TO-RIGHT OVERRIDE]]]]
([CODE(char)[U+202D]]), [CODE(char)[[ABBR[[[RLO]]] [RIGHT-TO-LEFT OVERRIDE]]]]
([CODE(char)[U+202E]]), [CODE(char)[[ABBR[[[PDF]]] [POP DIRECTIONAL FORMATTING]]]]
([CODE(char)[U+202C]]) を使うことができます。
(混用についての [CODE(HTMLa)[dir]] 属性の解説も参照されたし。)
[8] このような背景ですから、おそらく、新しく書かれる文書ではこの要素型は使用するべきではないと思います。
[[#comment]]
* メモ