Warning:
This wiki has been archived and is now read-only.

User:Myakura2/Notes/ruby

From HTML5 JP IG
Jump to: navigation, search

ルビに関するメモ書き。

<rb>

現時点で<rb>はnon-conforming扱いになっているが、これをせめてobsolete permittedにしたい。

<rb>の必要性については今のところ思いつかないが、青空文庫にある作品のXHTML 1.1版がnon-conformingになるのは少し疑問に思うことから。

Note: 「青空文庫のはXHTML 1.1だからHTML5とは関係ない」という反論はすこし違う。XHTML 1.1のDOCTYPEは obsolete permitted DOCTYPEというカテゴリなので、text/htmlであればHTML5として扱われるようになるんじゃないかな。

<rb>をconformingな属性としてHTML5に追加するには、次の条件に当てはまるようなユースケースが必要か。

  1. ベーステキストを簡単に取得したい(現状でも出来なくはないが、手間がかかる)
  2. <rb>として存在する意義がある(<span>でもOKならそうしてという流れになりかねない)

複合ルビ

複合ルビが存在しないので、複数のルビテキストを持つことができない。また、モノルビについても良い方法で実現できない(次のセクションを参照)。

しかしながら、Ruby Annotationにいくつかある複合ルビの例を見ても、それらが頻繁に出てくるとはあまり思えない。現在実装されていない<rbc>, <rtc>を導入することは、v2に回すことを考えてもいいように思う。

単純ルビとモノルビ

HTML5はRuby Annotationでいうところの単純ルビ(括弧あり)までしか対応していない(<rb>はないけど)。これでは、モノルビを良い方法で実現できない。

つまり、仕様の例と同じように、次のように書いてしまうと問題が出てくる。

<ruby>毛<rt>もう</rt>布<rt>ふ</rt><ruby>

ルビの表示に対応しないブラウザーで表示すると、こうなる。

毛もう布ふ

何が何だかわからなくなる。ルビの表示に対応しているUAでも、文字列をコピーした時は上記と同じ結果になる可能性が高いので、使い勝手の良い情報ではなくなる。また、ルビだけ/ベースだけ選択ということもできない。

Note: コピーした文字列の整形はUA依存なので、ブラウザーによっては「毛布 (もうふ)」といったものに整形してくれるかもしれないが、期待はできない。

一番問題なのが、スクリーンリーダーや音声ブラウザーの挙動。ルビを読み上げられる音声ブラウザーは聞いたところ2つあるが、スクリーンリーダーはない。対応しないもので「け もう ぬの ふ」と読み上げられたら、情報の取得に支障がでてくるのではないか。

というわけで、単純ルビの仕組みだけでモノルビをするのは問題が出る。けれど、先に書いた通り複合ルビを導入してまでモノルビがWebに必要かというと甚だ疑問。

「ルビは意味的に利用すること。文字とルビを対応させる必要のある場合を除いて、ルビは単語に対し与えること。」といったauthoring requirementを設けた方がコストも掛からず済むのではないか。

その他

  • 日本語に偏っているけれど、i18n的にはどうなんだろう
  • スコープ外だけれど、CSS3 Ruby Moduleについても何らかの作業は必要な気がする
  • 傍点・圏点としてルビを使うことを禁止できないか
  • 循環小数の点などはルビで表せるか