読者です 読者をやめる 読者になる 読者になる

rbc要素について若干のメモ

本当はbugzillaに英語でレポートを書くべきなんだろうけど、いまいちうまく説明できそうにないので。
中の人に聞いたところ*1rbc要素はHTML仕様で定義されてないため、単純に未知の要素として取り扱われているだけ、とのこと。つまり定義されない以上実装もサポートしない、と。


結論を先に書くと

  • rbc要素はXHTML 1.1Ruby Annotation)仕様に定義されている
  • しかし、W3C HTML5仕様には何も書かれていない
  • この記事を書いている段階でrbcを使うと、Firefox Nightlyで挙動はおかしいように見える

rbc要素の現況(背景)

The rbc (ruby base container) element serves as the container for rb elements in the case of complex ruby markup. Only one rbc element may appear inside a ruby element. The rbc element has common attributes only.

Ruby Annotation - 2.3 The rbc element

とあって、一応定義されている(誰が使っているのかはよく分からないんだけれども)。

そして、HTML5仕様には私の知る限りではrbc要素について一切言及がされていない。今調べたら10.3.4節にスタイルシートの例が記述されているのみである(CSS断片って例だよね…?)。

rbc  { display: ruby-base-container; }
rtc  { display: ruby-text-container; }
ruby, rb, rt, rbc, rtc { unicode-bidi: isolate; }
HTML5 - 10.3.4 Phrasing content

言い換えると、11 Obsolete features — HTML5に何も記載がないので、もう使うべきではない、と積極的に言えない状況にあると。

Nightlyの現在の挙動

で、ここからが本番だけど、http://www.w3.org/People/mimasa/test/ruby/ にあるunofficialなテストケース、たとえばhttp://www.w3.org/People/mimasa/test/ruby/ruby1.xmlにあるものを表示させると、どうもおかしい気がする。

上から3つ目と4つ目について、ruby textの位置が微妙。

上から3番目のHTMLソースはこんな感じ。

<p>
<ruby xml:lang="ja">
<rbc><rb></rb><rb></rb><rb></rb><rb></rb></rbc>
<rtc><rt>さい</rt><rt>とう</rt><rt>のぶ</rt><rt></rt></rtc>
</ruby>
</p>

rbc要素の子要素になる、最初のrb要素のみがruby baseだとFirefoxが誤認識してしまう…?