読者です 読者をやめる 読者になる 読者になる

電書協ガイドが微妙ではないかという話

あらすじのようなもの

ろすさん(@lost_and_found)と以前にTwitter上で、ウェブ上でepubのテストケースみたいなものないですかねえ?という感じでやりとりしていたところ、紹介されたのが電書ラボのリーダー表示テスト用epubファイル。しかし、Nightlyでたとえば文字・字形チェック用のepubをBiB/iを通して見てみると、縦書きにならない*1

原因を探るべくepubの中身を覗いてみると、style-standard.cssの中で

/* 縦組み用 */
.vrtl {
  -webkit-writing-mode: vertical-rl;
  -epub-writing-mode:   vertical-rl;
}

と、ベンダープレフィックス付きのプロパティーしか設定されていない。ベンダープレフィックスのないプロパティーも同時に設定すべきでは、と電書ラボに問い合わせたところ、電書協ガイドをそのまま使っているので電書ラボで拡張するつもりはない、との回答。
ぶっちゃけどうなんでしょうか。

ベンダープレフィックスに対するウェブの慣習

ベンダープレフィックスに関する明確な規定はCSS2に使うべきでない*2程度しか書いておらず、CSSWGからまとまった文書は現在のところ存在していない。ベストプラクティス的な慣習として例えばベンダープレフィックスの順序|Web Design KOJIKA17にあるように

.foo {
  -o-border-radius: 4px;
  -ms-border-radius: 4px;
  -moz-border-radius: 4px;
  -webkit-border-radius: 4px;
  border-radius: 4px;
}

とベンダープレフィックス付きのものを列挙して、ないものを最後に書くというのが通例ということになっている*3。このウェブの慣習にとかけ離れている電書協ガイドってどうなんでしょうか。

EPUB 3.0.1とその周辺の規定

あんまり読んだことがないのでこれで本当にあってるのかどうかは保証しませんが、注にはこうあります。

The EPUB 3 CSS Profile employs the usage of the -epub- prefix for a number of CSS3 property names, as detailed below. As the CSS3 modules that define these properties mature and stabilize, EPUB authoring guidelines may encourage authors to also include unprefixed equivalents of these properties in EPUB 3 Style Sheets.

EPUB Content Documents 3.0.1

参考訳:EPUB 3 CSS Profileは、以下に記述するように、多数のCSS3プロパティ名に対して-epub-接頭辞の利用を採用する。このプロパティで定義するCSS3モジュールが成熟し安定するにつれ、EPUBオーサリンガイドラインは、著者にEPUB 3 Style Sheetでこのプロパティのプレフィックスのない等価物を包めることを促してもよい。


Writing modeについては、CSS Writing Modes Level 3 W3C Candidate Recommendation, 20 March 2014と、勧告候補の状態である程度成熟しているわけですから、EPUB仕様に従ってベンダープレフィックスのないものを付け足す、つまり、

/* 縦組み用 */
.vrtl {
  -webkit-writing-mode: vertical-rl;
  -epub-writing-mode:   vertical-rl;
  writing-mode: vertical-rl;
}

としたほうがいいんじゃないでしょうか。参考までに電書協ガイドv1.1.3の9ページあたりを引いてみましょう。

「-epub-」接頭辞付き CSS プロパティの優先的解釈

未勧告の CSS3 から先行採用された CSS プロパティでは、原則として「-epub-」接頭辞付きのものが優先的に解釈されるものとする。ただし、現状の RS の仕様や、Webブラウザでの簡易チェックなどへの配慮として、「-epub-」接頭辞が必要なプロパティには「-webkit-」接頭辞も併記する。

※今後増えるであろうベンダーごとに接頭辞を追加しつづけるのは、大変困難な作業となる。また、WebKitCSS 記述方法や解釈が後日変更になったときに、「-webkit-」を優先的に解釈してしまう RS で不都合が起こらないともかぎらない。CSS ファイル内でどのような順で記載されていたとしても、RS は「-epub-」接頭辞付きプロパティを最優先で解釈することが望ましい。

なお、「-epub-」接頭辞が利用可能なプロパティは、EPUB 3.0.1 仕様中に記載されたものだけである。
ブラウザなどで「-webkit-」接頭辞で利用可能なプロパティを、単純に「-epub-」接頭辞に置き換えても意味がないので、利用者は注意すること。

プレフィックスなしのものについては一切言及されていないのはこの際さておき、なぜ-webkit-だけ付けるのか理解に苦しむ……リーディングシステムはwebkitしか存在しないのですかね……。

*1:ちなみに中の人にチラッと聞いたところ、次のバージョンから対応するつもりとのこと https://twitter.com/satorumurmur/status/574951368114368512

*2:http://dev.w3.org/csswg/css2/syndata.html#vendor-keywords

*3:まあborder-radiusを今時こういう風に書くことは無いですが