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

>p {
>  font-family: "foo";
>  line-height: 1.2;
>  line-stacking-ruby: include-ruby;
>}

私の理解では、これはinclude-rubyの動作で、exclude-ruby動作を望む方が望まれる結果にはなりませんでした。サンプルを作って、添付しました。IE9, FF 3.6.12+Ruby Add-on, Safariで試しましたが、すべて「本文部分の行が一定間隔」ではなく、「ルビを含めてボックス間が一定」という結果になりました。

もしかしたら「一定」という定義の理解が共有されていないかもしれないと思いました。私の理解では
  include-ruby: ルビを含むボックスを行として定義し、その行と行の間隔を一定に保ちたい時に使用する
  exclude-ruby: ルビのあり、なしにかかわらず、本文のベースライン同士の間隔を一定に保ちたい時に使用する
という違いがあります。今日現在、exclude-rubyを実装しているブラウザーはありませんのでブラウザーでお見せすることはできませんが、WordやInDesign、一般出版物のほとんどはexclude-rubyの挙動です。WordやInDesignをお持ちでなければ、本棚からルビ付きの本を二、三冊取って、ベースライン同士(あるいはセンター同士、文字のエッジ同士でも構いません)の間隔を測っていただければ、exclude-rubyの望まれる挙動をご理解いただけるかと思います。

このinclude-rubyかexclude-rubyか、というのは好みなり状況によって切り替えるべき問題であり、例えば一條さんや中野さんはinclude-rubyを好まれ、またexclude-rubyを好む人も一定数いるので、切替を用意する、というのが現在のCSS3 Rubyの状況です。

ただ、このexclude-rubyの現在の動作規定によると、
  line-height: 1.2;
  line-stacking-ruby: exclude-ruby;
になった場合には重なってしまうので、重なる場合にはinclude-rubyと同じ挙動にフォールバックしましょう、というのが今回のご提案になります。

ちょっと繰り返しになってしまい申し訳ありませんが、中野さんのおっしゃるように、「重なることが事前に分かっていればその時はinclude-rubyにすればいい」というのは、製作者にとっては正しいメッセージですし、それを前提に現在のCSS3 Rubyは設計されています。

これに対し、font-size、line-height、あるいはルビのfont-sizeをユーザースタイルシートから(実際にはブラウザーのUIなどで補助して)可変とした場合、どこでexclude-rubyを止めてinclude-rubyに切り替えればいいか、という判断が付かないので、現在のexclude-ruby動作をもう少し賢く改良したい、というのが今回のご提案の趣旨です。

include-rubyの定義を変更するものではないので、その観点からすれば、既存のブラウザーの動作に変更が入ることはありません。ただ現在はこのプロパティそのものがまだきちんと定義されていないため、HTML Rubyを実装し、かつこのプロパティを実装していないブラウザーにおいて、ブラウザー実装者がexclude-rubyあるいは本提案の挙動をデフォルトに選んだ場合、ブラウザーによって動作が異なることは想定されます。それを最終的にはCSS3 Rubyで吸収していきますが、一時的にそういう状況が想定され、これが一條さんにご説明しようとした事柄になります。

趣旨をきちんとご説明できるまでに長くかかってしまったことは大変申し訳ありません。ちょっと私が置いていた前提条件が間違っていたため、ご説明の順序がおかしくなってしまいました。

非常に複雑な事柄なので、文章でどこまで伝えられているか、正直あまり自信がないのですが、少しお伝えできましたでしょうか?

Received on Wednesday, 22 December 2010 16:55:58 UTC