HTML5の最終勧告でrubyタグ周りはどうなった?

こちらの記事にコメントを頂きました。遅ればせながらまとめてみます。

2014年10月に発表されたHTML5の最終勧告

…と、その前に。用語がとっ散らかりそうなので、この記事内では

  • ルビを振られる側の文字列を「ルビベース」
  • ルビそのものの文字列を「ルビテキスト」

と呼びます。すなわち… ルビベースルビテキスト

以前にrubyタグ周りの状況をまとめた記事(この時点ではHTML5は草案段階でした)とHTML5最終勧告との差異は、ざっと以下のとおり。

  • ある時点の草案では廃止対象だった rb, rtc タグが復活。(rbcタグは廃止)
  • rbは明示的にルビベースを表すのに用いられるが、省略可。
  • rtcはrt(ルビテキスト)をコンテナ化するために用いられる。
  • rb,rt,rtcの終了タグは、場合によっては省略可。

詳細はW3CのHTML最終勧告文書(→英語原文または一部日本語訳)を参照してみてください。

で、実際にWebページを作成する時に重要なのは、この勧告内容ではなく、ブラウザへの実装状況ですね。現時点(2014年12月)では…

  • Firefox / 旧Opera は、変わらずrubyタグ自体に未対応。
  • Chrome / Safari / IE / 新Opera では、ruby自体は機能するが、まだまだ最終勧告どおりの実装には程遠い。

…という感じです。

例えば、rb, rt, rtc の終了タグを省略した場合には意図したレイアウトになりません。それから、最終勧告に挙げられている幾つもの例("熟語ルビ" や "両面ルビ" など)は、全く意図したようには表示されません。勧告直後なので当然といえば当然なのですが。

ならば現状、どのようにHTMLコーディングしておけばベターなのかというと、

  • rb,rbc,rtcタグを使わない。
  • Firefox / 旧Opera向けには、拙作 ruby_enabler.jsを仕込んでおく。

…という、いままでウチが推奨してきた方法で大丈夫なのではないかと。HTML5が各ブラウザに完全実装されたとしても、意図したレイアウトでルビたちが表示されると思います。

さて。

ウェブブラウザの開発者目線で考えてみると、彼らは多分、映像・画像や音などのメディアコンテンツの処理を実装することに開発リソースを再優先で割り当てたいと思っているのではないかな、と想像するわけです。

「ルビ」という、世界から見たら超ローカル言語である日本語のちょっとした表現、しかも割と処理が面倒くさいものが、たとえ勧告が出ているとしても早々に完全実装される…なんてことは考えにくいんじゃないかな。個人的には、果たしてそんな日が来るのかな…とさえ思っています。

まぁそれまでは、いろいろ工夫しながらやっていきましょ。

カテゴリ: