6 月 10 日 に更新された HTML 5 の草案と、ruby について
2008年6月11日 12:16
W3C の HTML ワーキンググループは 2008 年 6 月 10 日付けで、HTML 5 の草案、HTML 5 differences from HTML 4が更新され、新たにHTML 5 Publication Notes が公開されたことが発表されました。
この発表が行われる少し前 HTML 5 の草案に The ruby element が追加されたのですが、XHTML 1.1 での Ruby Annotation と少し異なっていたので、更新された草案で改善されないか気になっていましたがそのままでした。HTML 5 とXHTML 1.1 の ruby 要素について比べてみたいと思います。
Ruby とは、日本語などの東アジア言語の文書で、漢字の読み仮名などをマークアップするためのもので ruby 要素を使ってマークアップされた箇所は
![]()
のように表示されること期待できます。
Ruby は既に XHTML 1.1 では利用可能で、
<ruby>
<rb>斎藤信男</rb>
<rt>さいとうのぶお</rt>
</ruby>
のようなマークアップを行いますが、現段階の HTML 5 の草案によると HTML 5 では
<ruby>
斎藤信男
<rt>さいとうのぶお</rt>
</ruby>
のようにマークアップを行うそうで、rb 要素は存在しません。上記のような単純ルビマークアップの場合はそれなりに近いものなのですが、複雑ルビマークアップの場合は、さらに違うマークアップとなります。
XHTML 1.1 での複雑ルビは
<ruby>
<rbc>
<rb>斎</rb>
<rb>藤</rb>
<rb>信</rb>
<rb>男</rb>
</rbc>
<rtc>
<rt>さい</rt>
<rt>とう</rt>
<rt>のぶ</rt>
<rt>お</rt>
</rtc>
</ruby>
のようにマークアップするのに対し、HTML 5 では rb 要素も rbc 要素 (Ruby Base Container) も rtc 要素 (Ruby Text Container) もないので
<ruby>
斎 <rt> さい </rt>
藤 <rt> とう </rt>
信 <rt> のぶ </rt>
男 <rt> お </rt>
</ruby>
のようにマークアップすることになります。一見、HTML 5 (草案) の ruby のほうがわかりやすそうに思えるのですが、このような実装が行われた場合、CSS が使えない状態だと XHTML 1.1 の実装では、斎藤信男さいとうのぶおとなり、HTML 5 の実装では斎さい藤とう信のぶ男おと表示されます。 (rp 要素を使えば違った結果になりますが。)
以前、Web 標準の日々で、石川 雅康さんの XHTML 1.1 のRuby Annotationについてのお話を聞いたとき、複雑ルビも Table っぽくすることで単純になった
といった感じのことをおっしゃっていました。rbc 要素 と rtc要素 を tr要素 (table-row-group) のように、rb 要素と rt 要素を td 要素 (table-cell) のように見てみると、Table ととてもよく似ていることがわかります。
HTML 5 はまだ草案の段階ですが、個人的には XHTML と HTML 5 の互換性や、Ruby Base とRuby Text を紐付けるという意味で、HTML 5 の Ruby も今後、XHTML 1.1 の実装と同じものになることを望んでいます。
HTML 5 の草案には、ruby 要素、bt 要素、rp 要素が含まれていましたが、rb 要素よりも、パーレン (かっこ) を示す rp 要素のほうが不必要な要素で、ユーザーエージェントがデフォルトのスタイルで
rt:before { content: "(" }
rt:after { content: ")" }
といった具合にサポートすべきもののような気がします。
あと... ruby が存在すると、abbr 要素との使い分けが悩みそうですね。
参考ドキュメント
- XHTML 1.1 : Ruby Annotation
- HTML 5 : 3.10.22 The ruby element










