ルビと行間についてご意見ください

こんにちは、W3C CSS WGのメンバーの石井です。

英語MLも見られている方はお気づきかもしれませんが、今CSSの方でルビと行間についての議論が続いています。日本に影響がある部分なので、簡単にまとめます。ちょっと長いですが、できればお読みいただいて、ご意見があれば、ここでも構いませんし、英語ML www-style@w3.org でも構いませんので、いただけると助かります。

元はこのスレッド
http://lists.w3.org/Archives/Public/www-style/2010Nov/0482.html
で、ルビが入った行がIEでは等間隔に並べられない問題に関するものです。ルビばかりでなく圏点にも影響します。

ご存知とは思いますが、IEでルビを使うと、行送りが一定になりません。これは携帯など、画面が非常に小さい場合などは有用な仕様であったりもするのですが、小説サイトのようなより本格的なページを作る時には、ルビの有り無しにかかわらず、一定のピッチで行を表示したい、という要望があります。IEではそれが実現できないため、tableタグを使っているサイトを見たことがあります。

これに対して、今CSS3 line boxで提案されているline-stacking-rubyプロパティの「include-ruby」と「exclude-ruby」を定義して、「exclude-ruby」を指定すれば重なってもいいから行を等間隔に並べる、という指定をする案がありますが、これに「auto」があった方がいいのではないか、という提案です。「auto」は、原則を「exclude-ruby」にして、行高計算にルビは影響しない、とする。ただし、前の行に重なってしまう場合には、その分だけずらす、という案を出しました。

これに対し、AppleのDavid Hyattから賛同を得られたのですが、今の彼の考えを聞いていくと、ブロックをまたぐケースなど、いくつか制限があり、それを解決するのが技術的に難しい、という返事が得られました。難しいけど、できないことはない、という返事で、きちんと仕様を固めればできそうでもあるのですが、構造的にあまり難しいものを入れてしまうと、HTML製作者にとって却って結果を予測しづらくなったり、仕様としてもうまく動かないケースの混入が心配されます。

そこで、長期的視野では上記CSS3 line boxやCSS3 line gridなどの充実によりより細かい動作を指定できるプロパティを作っていく仮定の上で、まずデフォルトの「auto」挙動として、より簡単なルールを考えてみました。それは

* line-heightが150%以上だったら、ルビを行送りに影響させず、行を一定間隔で表示できるようにする
* それ未満だったら、ルビの重なりを防ぐため、現行IEと同様の挙動とする
http://lists.w3.org/Archives/Public/www-style/2010Dec/0185.html

という案です。正直この案だと、line-heightが150%〜160%くらいの時には、前のブロックのフォントが小さい時など、それでも重なってしまうケースが出てしまうと思いますが、
* 十分な行高さがある時には、書籍のような一定の行送り
* 十分な行高さがない時には、ルビのある行だけを高くする(現行IE挙動)
という切替をカバーし、重なってしまうケースは現実にはそれほど多くないのではないかと思っています。

CSS3 line box仕様が今後進めば、この挙動をautoとして定義し、製作者がより厳密に定めたい時にはinclude-rubyあるいはexclude-rubyを指定すれば切り替えることが可能になりますし、それまでの間、および製作者が指定しない時にはline-heightが切り替えのスイッチになる、ということになります。この案で実装してくれるブラウザーが出て、それでルビが重なってしまった場合、CSS3 line boxが完成するまで切替はできないので、line-heightを増やすか、marginを入れて回避するか、ということになってしまいますが、それでも書籍のような一定の行送りのページがブラウザで実現できる、というのは大きなメリットになるのではないかと思います。

この案について、例えば
* line-heightで切り替える、というのは妥当かどうか。
* 150%という数字は妥当かどうか。ルビ付きの文章は普通150%なんて狭い行間は使いません、ということでしたら、より大きい数字にすれば重なるリスクを減らせます。
といった点が特に気になっていますが、それ以外でもどんなことでもいいので、ご質問、ご意見、お気づきになられたことがありましたら、フィードバックいただけると助かります。

よろしくお願いいたします。


グルーソフトウェア株式会社
石井宏治

Received on Wednesday, 8 December 2010 15:53:15 UTC