2009-11-11

W3CとHTML5のruby要素の違い。

Ruby Annotation
HTML5 ruby

昔々、あるところにruby要素なるものがあった。IEと呼ばれている古代のブラウザによって実装せられていた。

ここに、w3cといういう奴らがやってきて、標準化しようとした。これが、まことに複雑怪奇なものであって、誰も実装しようとしなかった。いまだに、誰もw3cのrubyは実装していない。以下に、その複雑怪奇な例を示す。

<ruby>
    <rbc>
        <rb>複</rb>
        <rb>雑</rb>
        <rb>怪</rb>
        <rb>奇</rb>
    </rbc>
    <rtc>
        <rt>ふく</rt>
        <rt>ざつ</rt>
        <rt>かい</rt>
        <rt>き</rt>
    </rtc>
    <rtc>
        <rt>ruby要素の例</rt>
    </rtc>
</ruby>

これは、例えば、以下のように表示される。

ふくざつかいき
複雑怪奇
ruby要素の例

実に複雑なのだ。まず、rubyを表示したいテキストは、ruby要素で囲む。まず、通常のテキストを、rb要素で囲むのだが、rb要素は複数用いることができる。複数用いる場合には、rbc要素で囲む。次に、上下のルビを振っていくのだが、ルビはrt要素で囲む。複数のrt要素を使いたい場合には、rtc要素で囲む。rtc要素は、ruby要素中に、一つか二つ、用いることができる。二つ用いた場合は、横書きの場合は上下、縦書きの場合は、左右のルビになる。

さっぱり理解できなかったとしても、それは恥ではないので安心してもらいたい。第一、先ほどもいったように、w3cのルビを実装しているブラウザは、この世に存在しない。おそらくは、ブラウザ開発者の誰も、これを理解できなかったからに相違ない。よって、覚える価値もない。さて、ではHTML5はどうか。

<ruby>
    簡<rt>かん</rt>
    単<rt>たん</rt>
    明<rt>めい</rt>
    白<rt>はく</rt>
</ruby>

実に簡単である。残念ながら、HTML5では、下、もしくは左にルビを配置する方法はない。とはいえ、そのようなルビの必要性は低いし、この記述の簡単さには代え難い。

HTML5は、現実の実装から、規格化している。w3cは理想に走りすぎていた。その結果、誰からも実装されなかったのだろう。

ところで、完全を期すために、一応、通常のルビの使い方の説明もしておく。これは一文字ずつ丁寧にルビを当てた場合であって、たいていの場合は、これで足りる。

<ruby>簡単明白<rt>かんたんめいはく</rt></ruby>なルビの<ruby>使<rt>つか</rt></ruby>い<ruby>方<rt>かた</rt></ruby>の<ruby>例<rt>れい</rt></ruby>。

がしかし、これを、rubyをサポートしていない時代遅れで多言語サポートへの配慮に欠けるクソなブラウザで閲覧すると、以下のように表示されてしまう。

簡単明白かんたんめいはくなルビの使つかい方かたの例れい。

これでは困るので、rp要素というものがある。これは、正しくルビをサポートしているブラウザでは、無視される要素である。

<ruby>簡単明白<rp>(</rp><rt>かんたんめいはく</rt><rp>)</rp></ruby>なルビの<ruby>使<rp>(</rp><rt>つか</rt><rp>)</rp></ruby>い<ruby>方<rp>(</rp><rt>かた</rt><rp>)</rp></ruby>の<ruby>例<rp>(</rp><rt>れい</rt><rp>)</rp></ruby>。

使用例。

(馬鹿にしか見えないテキスト)おいおい、お前のブラウザ、rubyもサポートしてないかよw 遅れてるなぁw 使ってて恥ずかしくないのか?(pgr
簡単明白(かんたんめいはく)なルビの使(つか)(かた)(れい)

ルビをサポートしていないブラウザにとっては、以下のように見えるはずだ。

簡単明白(かんたんめいはく)なルビの使(つか)い方(かた)の例(れい)。

まだいくらかマシなハズである。

No comments:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.