Submission Request to W3C from Vivliostyleについての若干の感想

Current Status of Japanese Typography Using Web Technologies(Submission Request to W3C from Vivliostyle)日本語訳

という文書が1月27日付けで発表されているので、ざっと見てみた。以下に若干の感想を記す。

まず、この文書の中で一番重要なポイントは「Implementations that support pagination, such as EPUB readers or PDF formatters, do need to support such features.」(日本語訳「EPUBリーダーやPDFフォーマッタなどのページネーションをサポートする実装は、そのような機能をサポートする必要があります。」)という点だろう。

もともとJLReqは、紙に印刷する書籍の組版に関して整理したものである。従って、JLReqを議論の前提にする以上、縦横の大きさをもつページの概念が必須である。ページの概念を無視すれはかなりの部分が意味を失ってしまう。

一方において、ブラウザは画面に高速に表示することを目的としている。そしてページサイズの概念はブラウザには必要ない。このため、CSSの勧告仕様または勧告候補だけでは、まだページの大きさを指定できない。CSS Paged Media Module Level 3という仕様にページの大きさを規定する方法があるが、これはまだWorking Draftの段階であり[1]、正式な仕様として参照できる状態ではない。

CSS Paged Media Moduleの歴史は古い。一番最初は1999年にHPのRobert Stevahn氏がWorking Draftを出している。その後、2004年に勧告候補まで行ったが、次の2006年版ではまたWorking Draftに戻ってしまった。CSSを紙への印刷に使おうとするとページの大きさの指定は必須であるのに、正式な仕様ではそれができない状態がもう長いこと続いているわけだ。

現在、リフローのEPUB3を表示するリーダーは、ページ捲りを実装しているものが多い。しかし、これらは各リーダーの独自実装である。ページ捲りの一つとして、例えば、章の見出しを画面の上下・左右中央に配置したいときは縦と横のサイズを指定して、その中央に置くのが素直なはずだ。しかし、CSSではそういう指定はできない。このため、日本語のEPUB3ではトリッキーな指定をせざるを得なくなってしまっている。

このように、紙に限らず、画面表示を前提とするEPUBリーダーやブラウザでページめくりをきちんと実装しようとすればCSS Paged Media Module Level3を実装することが必要になる。

そこまでの理屈は良いとして、CSS Paged Media Moduleがブラウザの世界で受け入れられるかどうかが問題である。なぜならば、CSSの仕様開発作業はブラウザベンダーの主導で進んでいて、ブラウザベンダー以外はほとんど影響力を持っていないからである。さらに言うならば、CSS2.0で勧告になった項目でさえも、ブラウザが実装していないことを理由にCSS 2.1で削除されてしまったものもある。その一例がここで問題にしているページの大きさである。CSS2には@pageというルールがあり、CSS2.0ではそこに’size’プロパティでページの大きさを指定できた。しかし、CSS 2.1では’size’プロパティは削除されてしまった。’size’はCSS Paged Media Moduleに移行した。こうした経緯を知っていれば、CSS Paged Media ModuleをCSS3の勧告にもっていくのが困難なことは予想に難くない。

CSSがサポートしないためにできないことがいろいろあるのは確かである。そしてこれに正面から取り組もうとすると、現状のCSSワーキンググループと長く熾烈な論争になるのは確実である。このサブミッションがどう受け止められるか、興味深いところである。

[1] CSS Paged Media Module Level 3 W3C Working Draft 14 March 2013