- From: Eric Muller <emuller@adobe.com>
- Date: Mon, 28 Feb 2011 12:01:26 -0800
- 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 UTC