This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 16228 - Font matching algorithm should explain cluster-based matching
Summary: Font matching algorithm should explain cluster-based matching
Status: RESOLVED FIXED
Alias: None
Product: CSS
Classification: Unclassified
Component: Fonts (show other bugs)
Version: unspecified
Hardware: All All
: P2 normal
Target Milestone: ---
Assignee: John Daggett
QA Contact: public-css-bugzilla
URL: http://dev.w3.org/csswg/css3-fonts/#f...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-03-04 15:45 UTC by Masatoshi Kimura
Modified: 2013-01-30 02:24 UTC (History)
0 users

See Also:


Attachments

Description Masatoshi Kimura 2012-03-04 15:45:26 UTC
Mozilla is going to implement cluster-based font matching. The spec should be updated accordingly.
Comment 1 John Daggett 2012-03-05 00:35:27 UTC
(In reply to comment #0)
> Mozilla is going to implement cluster-based font matching. The spec should be
> updated accordingly.

The right way to term this is that the CSS3 Fonts spec needs to clearly define font fallback behavior for character clusters, so that user agents can implement this in a consistent way.

There are several relevant issues here:

- exact definition of a "cluster" in this case
- priority of base + combining character vs. precomposed characters
- role of normalization and specifying this in a way that does *not* normalize characters like CJK compatibility ideographs.
Comment 2 John Daggett 2012-03-05 00:52:51 UTC
One additional issue, how exactly to do font matching of clusters involving IVS sequences.  This is similar but slightly different from the base + combining character vs. precomposed character issue, so I think it will require explicit handling instructions.
Comment 3 John Daggett 2012-03-05 05:17:25 UTC
In terms of normalization, the more I look at this I think we probably need to use only the "Canonical Composition Algorithm", defined within the definition of Unicode normalization forms.  

Using NFC means that as part of the canonical decomposition ==> canonical composition, there are many singleton codepoints which will be transformed (CJK Compatibility codepoints, symbols like Angstrom and Kelvin, etc.) and "lost" as part of the recomposition.

Using only the composition step allows authors to control precisely the rendering of characters via the combination of codepoints + font, something the usage of NFC does not permit.
Comment 4 John Daggett 2012-09-11 07:30:56 UTC
Resolved by the addition of explicit rules for font matching of clusters.

http://dev.w3.org/csswg/css3-fonts/#cluster-matching