- From: John Daggett <jdaggett@mozilla.com>
- Date: Thu, 22 Aug 2013 19:09:32 -0700 (PDT)
- To: Jonathan Kew <jfkthame@googlemail.com>
- Cc: www-style list <www-style@w3.org>
Jonathan Kew wrote: >>> # This means that explicitly disabling the kern feature will not >>> # affect the application of kerning data found in the ‘kern’ table >>> # (as opposed to kerning data associated with the kern feature in >>> # the ‘GPOS’ table). >>> >>> This sounds like it was describing a now-obsolete state of the >>> implementation in Firefox. For UAs that rely on HarfBuzz for text >>> shaping, this is not currently true: if the UA asks HarfBuzz to >>> disable the kern feature, this will disable *both* the kern feature >>> in the ‘GPOS’ table *and* the application of the ‘kern’ table data. >>> >>> The connection between ‘GPOS’ and ‘kern’ table kerning is a >>> low-level implementation detail; I'm not sure CSS Fonts needs to >>> deal with this, but the current text does not describe what >>> actually happens - at least for Gecko, but likely for other UAs as >>> well if they use the HarfBuzz shaping engine. >> >> While the 'font-kerning' property defines behavior that covers >> old-style kerning data (i.e. the 'kern' table), I explicitly did >> not extend the same behavior to 'font-feature-settings: "kern" on'. >> The 'font-feature-settings' property is a low-level way of passing >> down specific OpenType parameter settings, so defining "extra" >> behavior like this is sort of odd. >> >> I guess making an exception in this one case is okay but I >> definitely think CSS should *not* be extending the meaning of >> specific features by adding behavior to them ("let's have feature >> xxx mean .... when conditions yyy and zzz are true"). > > It looks like the current (19 August 2013) text here is unchanged, > which means Gecko (and likely any other harfbuzz-based engine) will > be non-compliant with this section. Were you going to include some > kind of exception to reflect the real-world behavior we have here, > or are you expecting the implementation to change? I think my resistance here is because I don't want CSS specs defining overrides for OpenType functionality. But I think in this case, I would be okay with optional behavior, defined as something that an OpenType layout engine does (which directly covers the Harfbuzz case): Current spec: # Feature tags not present in the font are ignored; a user agent must # not attempt to synthesize fallback behavior based on these feature # tags. # # This means that explicitly disabling the kern feature will not # affect the application of kerning data found in the ‘kern’ table (as # opposed to kerning data associated with the kern feature in the # ‘GPOS’ table). Authors should use the ‘font-kerning’ property to # explictly enable or disable kerning since this property affects both # types of kerning. Proposed change: # Feature tags not present in the font are ignored; a user agent must # not attempt to synthesize fallback behavior based on these feature # tags. The one exception is that user agents may synthetically support # the 'kern' feature with fonts that contain kerning data # in the form of a 'kern' table but lack 'kern' feature support in the # 'GPOS' table. # # In general, authors should use the ‘font-kerning’ property to # explictly enable or disable kerning since this property always # affects both types of kerning. Does this work for you? Regards, John Daggett
Received on Friday, 23 August 2013 02:09:59 UTC