[css3-fonts] IVS の font fallback

安岡さんがちょうどブログを書かれていて、この問題の整理方法として秀逸と思いましたので、紹介させていただきます。

http://slashdot.jp/~yasuoka/journal/531917

安岡さんとメールで質問させていただいて、英語MLにも投げました[1]。ちょっと英語の表現がよくなかったようで「分からない」という返事もいただいてしまったので、フォローが必要そうなところがちょっと失敗してしまいましたが。

問題は、複数の代替表示方法をどう組み合わせるかが既定されていないことにあるのではないかと思います。
●"U+559D U+E0101" のようなIVS文字の場合、Unicode で "U+559D" を代替表示することが許されています。
●CSSでは、フォントが複数指定されていて、最初のフォントにない文字であれば、次のフォントを使って代替表示することが許されています。

そうすると、CSSでIVSを表示する場合、例えば
  font-family: A, B;
のスタイルで "U+559D U+E0101" を表示しようとすると、規格的には、以下のいずれも許されることになっていると解釈できます。

Option 1:
1. "U+559D U+E0101" をフォントAから探す
2. "U+559D" をフォントAから探す
3. "U+559D U+E0101" をフォントBから探す
4. "U+559D" をフォントBから探す

Option 2:
1. "U+559D U+E0101" をフォントAから探す
2. "U+559D U+E0101" をフォントBから探す
3. "U+559D" をフォントAから探す
4. "U+559D" をフォントBから探す

また、実装によっては以下の挙動をするものもあるそうで

Option 3:
1. "U+559D U+E0101" をフォントAから探す
2. "U+559D" をフォントAから探す
3. "U+559D" をフォントBから探す

これが規格上許された挙動かどうかは微妙ですが、規格の読み方によってはこれも正しいのかもしれません。

私は安岡さんと同意見で、Option 2が正しいと思っていますが、この件はCSS WG内はもちろん、国内技術者の間でも意見が割れているようで、議論が必要そうです。

ご意見のある方、いらっしゃいましたら、ぜひお聞かせください。

[1] http://lists.w3.org/Archives/Public/www-style/2011May/0646.html

Received on Thursday, 26 May 2011 17:23:17 UTC