W3C home > Mailing lists > Public > www-international@w3.org > January to March 2011

Re: [css3-fonts] font matching and grapheme clusters (was Re: [css3-fonts] font selection for Unicode Variation Selector)

From: Eric Muller <emuller@adobe.com>
Date: Mon, 28 Feb 2011 12:01:26 -0800
Message-ID: <4D6BFF16.4080705@adobe.com>
To: John Daggett <jdaggett@mozilla.com>
CC: Jonathan Kew <jonathan@jfkew.plus.com>, Asmus Freytag <asmusf@ix.netcom.com>, "www-style@w3.org" <www-style@w3.org>, John Hudson <tiro@tiro.com>, "public-i18n-cjk@w3.org" <public-i18n-cjk@w3.org>, "www-international@w3.org" <www-international@w3.org>, Koji Ishii <kojiishi@gluesoft.co.jp>
On 2/27/2011 11:25 PM, John Daggett wrote:
>
> Given a grapheme, for each font in the fontlist:
>
> 1. Test for cmap support of base + all combiners, stop if match
> 2. If can be normalized to precomposed character, test cmap for
>     precomposed character, stop if match
> 3. Match individual characters, fallback for unsupported characters

Almost what we have implemented in Flash's flash.text.engine:

1. same

2. same intent, but slightly different formulation:  if there is more 
than one code point in the cluster, and it is canonically equivalent to 
a single code point, test the cmap for that code point, use it if match 
(there are sequences which are canonically equivalent to a singe code 
point but do not normalize to that code point).

3. iterate 1,2 over all the fonts, either listed in the font-family, or 
in the user agent fallback list

4. if not found, just map the individual characters using the first font.


Also, we use a notion of grapheme clusters that makes <Cons1, Virama, 
Cons2> a single cluster (if Virama and Cons2 have the same script).


Eric.
Received on Monday, 28 February 2011 20:05:55 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 28 February 2011 20:05:57 GMT