[css3-fonts] Font fallback for grapheme cluster and IVS

A Japanese blog page[1] inspired me on a good clarification of the issue.

First, as John Daggett said before in this ML, there are two separate issues; one for grapheme cluster and another for IVS.

The former is if the UA should use code point for font fallback, or grapheme cluster. My vote is to use grapheme cluster, but I'd like to wait for John's investigations.

IVS has yet another issue; IVS defines its fallback mechanism, and CSS3 Fonts defines its fallback mechanism too. The question is how these two fallback mechanisms should be combined to work together.

Here's an example. Author specified:
  font-family: A B;
and want to display "U+559D U+E0101" (U+E0101 is an IVS.)

Unicode allows "U+559D U+E0101" to fallback to "U+559D". CSS3 Fonts allows font A to fallback to font B, so here're possible combinations.

Option 1:
1. Search "U+559D U+E0101" in font A
2. Search "U+559D" in font A
3. Search "U+559D U+E0101" in font B
4. Search "U+559D" in font B

Option 2:
1. Search "U+559D U+E0101" in font A
2. Search "U+559D U+E0101" in font B
3. Search "U+559D" in font A
4. Search "U+559D" in font B

I think these two are reasonable options. The blog mentions that there's an implementation that behaves:

Option 3:
1. Search "U+559D U+E0101" in font A
2. Search "U+559D" in font A
3. Search "U+559D" in font B

This implementation is causing a real problem. CJK pages often have a style like this:
  font-family: Times, CJK_font
so that Latin letters are displayed using Times, while Japanese letters are displayed using CJK_font. This implementation, in combination with such style, makes IVS undisplayable.

My vote is option 2, and the blog author agrees with me, but I have to admit that option 1 is also a logically correct and reasonable option to take.

I hope this clarification leads our discussion to the correct answer.

[1] http://slashdot.jp/~yasuoka/journal/531917 (Japanese)


Regards,
Koji

Received on Thursday, 26 May 2011 11:26:04 UTC