Chinese font families

Hi Richard,

Thanks for pulling this page together.

I think there are two problems being stated here and they could be more clearly separated and defined:

First problem: CSS3 Fonts defines five generic font families: ‘serif’, ‘sans-serif’, ‘cursive’, ‘fantasy’, and ‘monospace’. For non-Latin-scripts (not just CJK, but for many non-Latin or non-alphabetic scripts), it is difficult to tell what font faces each of these produces. Browser/platform vendors need to provide fallbacks that are sensible and generally consistent in each. 

This problem is attacked in a number places such as "possible solutions" 3 and 4 (many of which are already handled inside of fonts and render stacks).

Second problem: The generic font-family names in CSS favor Latin typographic design. Other scripts, languages, and publishing traditions have different "generic" family requirements that are distinct from the five provided by CSS3 Fonts. Designers need a way to specify these culturally specific styles in cases where the named non-generic typeface is not installed. Web fonts are not a suitable or cost-effective workaround in all cases.

Following are some random thoughts on each.

For the first problem, conventions exist, of course, in existing implementation. For example, Song (and related or similar faces, such as Sung and Ming) is usually serif while Hei (et al) is sans-serif. In Japanese, 'serif' generally means a 'mincho' font, while 'sans-serif' means a 'gothic' font. 'cursive' usually is applied to faces such as Kai that have a more "hand-drawn" or "brushed" style, but can run to even more calligraphic styles ("grass" fonts similar to Cao, for example). But what should "fantasy" mean? How should "monospace" be handled?

The same questions can be applied to other scripts, such as Indic or Arabic. For example, while all Arabic scripts are "cursive", one supposes "cursive" doesn't mean Kufi?

Note that most fonts and rendering systems already classify fonts in the way suggested in "[4]" in the document.

So the first problem is to define for browser vendors (and inform users) what fonts to assign on various platforms to the predefined generic font family names. As noted, in most cases conventions already exist: if you say font-family:serif, you're unlikely to see Kai, even though that font is, in fact, considered to be a "serif" font. You'll instead see a system "serif" font, such as Song.

Note that other applications, such as closed captioning, define even more (and different) generic names (CEA-708 defines eight such). Some platforms, such as Java, define generic names that are different from those in HTML as well. So this is a common and extant issue for more system or browser vendors.

For the second problem, while it is common to associate fonts like Song with the serif style or Gothic with the sans-serif style, this leaves some stylistic variations that do not have exact associations out in the cold. For example, one site lists these styles for Chinese (I do not vouch for the accuracy/completeness):

"sans-serif" - such as Hei; system provided "sans-serif" font on many platforms
"serif" - such as Ming/Song/Sung, etc.; system provided "serif" font on many platforms
"regular script" - such as Kai; more calligraphic, second most common print style after Ming/Song
"semi-cursive" - such as Xing; somewhere in between Kai and Cao
"grass script" - such as Cao; free-flowing cursive
"clerical script"  - such as Li; old-fashioned but colorful and still pretty widely used
"seal script" - used on seals, not widely used for longer text but sometimes used for visual effect

There are many Chinese fonts--not as many as Latin fonts, but still a pretty wide profusion, that slot in and around the above. And even given a specific name like Kai or FangSong, it may be difficult to specify in your stylesheet, since the user's installed font is usually named something like KaiTi or FangSongXYZ.

This is not the same problem as having Baskerville, Palatino, Times New Roman, and Trebuchet all fall back on "serif"--because if your named "Kai" falls back on "serif" you'll almost surely get Song (or one of its friends) and not the Kai style at all. Even if you allow for Webfonts (and using smart subsetting and other tricks to make the download palatable), it horribly limits designers not to be able to say what they mean in their stylesheets.

Imagine if for Latin script we only provided "serif" and "fantasy". How would you get something that looked sort of like Helvetica?

Another example, as noted in the document, is Arabic, which has a profusion of different styles that don't map to the usual serif/sans-serif divide at all and which have their own traditional names.

So the problem is whether we should provide additional generic names for users of these scripts. These generic names, if added, have a specific implementation impact: vendors have to support resolving these generic names to some font (whether an appropriate typeface is installed or not). But not providing these names makes it difficult to style documents in these languages even when the exact typeface name isn't required. Thus, I tend to favor documenting and adding additional language- or script-specific generics, including providing pre-defined mappings to the existing generics (e.g. "clerical" -> "serif").


Addison Phillips
Globalization Architect (Amazon Lab126)
Chair (W3C I18N WG)

Internationalization is not a feature.
It is an architecture.



-----Original Message-----
From: Richard Ishida [mailto:ishida@w3.org] 
Sent: Wednesday, October 22, 2014 4:30 AM
To: member-i18n-core@w3.org
Subject: agenda+ Chinese font families

I have tried to summarise latest developments after discussions between Chinese folks. See the last section on the wiki page at https://www.w3.org/International/wiki/Chinese_font_families

I'd like to give us an opportunity to discuss anything necessary before I forward the conclusions to the CSS WG list.

ri

Received on Wednesday, 22 October 2014 17:21:07 UTC