Re: 縦書きにおける方向関連の議論のいったん整理

アンテナハウス村上です。

Ishii Koji <kojiishi@gluesoft.co.jp> wrote on 2010/07/19 13:53:56
> まず議論の開始地点の認識が共通となっていないように感じていますが、「縦書き・横書き・RTLにかかわらず、プロパティの意味は変わらない。例えば縦書きで字下げするならmargin-topを使う」というのが現在W3Cにおいて持たれている共通認識です。W3Cに対してまずはその認識を変えてもらうために、どういう話をすれば、興味を持ち、議論し、理解する姿勢を持ってもらえるか、というのが、私にとっての議論の開始地点です。

まず、「プロパティの意味は変わらない」という表現は、何にもとづく意味かで逆になるので避けたほうがよいと思います。論理的プロパティ margin-before や、論理方向モードでの margin-top のほうが、書字方向によらず「ブロックの前のアキ」という意味を変えないようにするものです。

W3C CSSWG内で合意されていることは、次のことです:
http://lists.w3.org/Archives/Public/www-style/2010Mar/0539.html
   - RESOLVED: Physical directions in CSS are absolute: margin-top is always
               the top margin even in other writing modes.

「CSSにおける物理方向は絶対的:margin-topは書字方向が変わっても常に上マージン」

この決まりだと、書字方向によって margin-top がブロックの前になったり字下げになったりと論理的な意味が変わって問題が起きるため、それをどうやって解決するかが議論されてきました。物理方向ではなくて論理方向を使う論理的プロパティ(margin-start など)の議論もそのひとつです。

論理方向モード(directional-mode: logical)の案は、「物理方向は常に絶対的」というのを見直そうというものです。論理方向モードにおいては、物理方向が、block-flow の方向を基準にしたものに変わるという考えです。小澤さんから指摘されていますが、block-flow-based のように呼んだほうが適切かもしれません。
(プロパティの名前や値のキーワードについては、今後の議論でいくらでも変えられます。他のCSS3プロパティでもドラフト仕様が更新されて変わっていくのは常です。ここではとりあえず directional-mode: logical を使いますが block-flow-based という意味です)

論理方向モードの利点は、CSS Level 2 における方向の記述のままで、縦書きが可能であることです。
ビューアを実装する側にとっては、このモードのほうが自然です。

論理的プロパティ案では、方向が関係するすべてのプロパティに論理的バージョンを定義するのは大変なので、margin/border/padding/width/height という基本的なプロパティに限って論理的バージョンを設けることを考えてましたが、論理方向モードではそのような制限なくすべてに適用できます。論理方向モードでは、個々のプロパティの意味が変わるのではなく、座標系が block-flow-based に変わるためです。

論理方向モードが実現するなら、論理的プロパティの必要性は薄れます。たぶん CSS3 Text Layout に両方を入れるのは無理です(機能がまったく同じわけではないけど重複するので)。今は論理方向モードをCSS仕様に入れることを優先するべきだと思っています。

横書きと縦書きの両方に対応するビューアの多くは、論理方向モードを使っています。
ボイジャーのT-Timeもそうです。T-Time において left と指定したものが縦書きでは上を指すことが、次の解説記事にあります:

T-Time 5.5 を活用するためのタグ解説
http://t-time.jp/T-Time/ttxtagbasic/expert.html

もしも、EPUB の縦書きが、物理方向は絶対的という物理方向モードを採用することになるならば、T-Time から EPUB への変換では、横書き用と縦書き用とで別のものに変換しなければならなくなります。
それは不自然なことです。

「IDPF は CSS 標準にないものを受け入れられない」と言われますが、writing-mode プロパティは、まだ CSS 標準になっていません。これから仕様が変わる可能性があります。いまの時点で、writing-mode プロパティを EPUB 仕様に入れるのことに私は反対です。

私が提案したい案は、EPUBのOPS(XHTML+CSS)では縦書きの指定をせず、パッケージ(OPF)のspine要素に基本となる組み方向と綴じ方向を属性として指定するというものです。ビューアはそれに従って表示することも、ユーザーが指定による方向で表示することもできることになるでしょう。
その提案をまとめたいと思います。

たとえ次期 EPUB 仕様に縦書きの指定方法が入らなくても、縦書き表示が可能な EPUB ビューアはいろいろ登場してきています。EPUB で縦書きは今でも出来ています。そのような現実の実装と互換性がなく、将来仕様が変わるかもしれない不便な物理方向モードだけの writing-mode プロパティを今 EPUB 仕様に入れるわけにはいかないと私は思います。

--
村上 真雄 (@MurakamiShinyu)
http://blog.antenna.co.jp/CSSPage/
Antenna House Formatter:
http://www.antenna.co.jp/AHF/
http://www.antennahouse.com

Received on Monday, 19 July 2010 08:08:31 UTC