RE: HTML 5 におけるルビの rb タグについて

どこに線を引くのがよいバランスか、というのは常に難しい問題ですね。

>> <ruby reading="うずまさ">太秦</ruby>
>*個人的には* 属性値で読み仮名を指定するというのがベストのマークアップだ
>と思います。

シンプルさを徹底的に追及するなら、Unicode Ruby Annotationを使っちゃうのが一番シンプルだと思います。マークアップすらいらないし、テキストファイルにも持たせられる。仕様として認められれば、ただのUnicodeストリームなのでIMEから入力することだってできてしまうかもしれない。逆に意味的にもマークアップ的にも多機能を追及していけばRuby AnnotationのComplex Ruby[1]まで行くことだってできるわけです。だから単純にどれがいい、どれがよくない、という話にはならないのが、難しいところだと思います。応用用途やそのコスト、良い点・悪い点をはかりにかけて、さてどれを取りましょうか、という議論をしなければなりません。

> 同じ内容を示すテキストが二重三重に出てくる方がアクセシビリティ
> 上、問題があると考えるべきではないのでしょうか。

振り仮名をあくまで元漢字の付帯情報と捉えれば、おっしゃる考え方もありだと思います。秋元さんのお考えもそれに近いように見えますし、おっしゃるように非対応のTTSが両方を読んでしまう、という実質的な問題も指摘されています。

一方で、親文字もルビも両方とも同等価値のコンテンツであり、文字ストリームがどちらかに分岐することができる、という考えもあります。例えばスタイルを切り替えることで親文字を隠してルビだけを表示することで対象年齢を変えるようなアプリケーションを考えると、この「分岐ストリーム」の考え方は逆に割としっくり来て、Unicode Ruby Annotationや属性で対応する考えが逆にハックに見えたりもします。本を読むときの目の流れを考えても、この考えに近いような気がします。

私はこの「分岐ストリーム」の考えに割と賛同していて、親文字もルビ文字も同じ価値を持つコンテンツなので、XPathやCSSで同じようにいずれかを指定したいと思っています。なのでSimple Ruby[2]のマークアップが一番しっくりきますし、親文字のスタイルとルビのスタイルをそれぞれきちんと設定できる、というのは割と重要な用途だと思っています。CSSを深くやっているからそう思うのかもしれませんが。

秋元さんの案だと、XPathではそれぞれ指定できますが、少なくとも今のCSSではそれぞれ個別にスタイルを設定することがちょっと難しいですね。Rubyをdisplay:noneにしてしまえば、その属性を表示することはできなくなってしまいますし、ルビの中にマークアップを入れることもできなくなります。XMLデータの一部として考えれば「ルビ=振り仮名」ですが、HTML著作物として考えると「ルビ≧=振り仮名」であって、例えば日本語の単語に英語のルビを付けるケースなどは、振り仮名以上の一つのコンテンツであるわけですから、たとえ90%のケースが「ルビ=振り仮名」であったとしても、残りを振り落していいとは少しならないような気がします。

ただいずれにしても、今のHTML5は中途半端感がぬぐえない、というところは一致しているようですね。応用用途のいくつかを無視してシンプルにする、というのを目指すなら(私個人としてはあまり賛成ではありませんが)もっとシンプルになるし、コンテンツとして扱うなら、せめてXPathやCSSできちんと指定できるコンテンツであってほしいと思います。


[1] http://www.w3.org/TR/ruby/#complex
[2] http://www.w3.org/TR/ruby/#simple-ruby1

Received on Wednesday, 12 January 2011 05:57:20 UTC