[css3-fonts] small caps fallback

The current draft of the CSS3 Fonts spec contains this description of
fallback for small-caps variants:

  For backwards compatibility with CSS 2.1, if ‘small-caps’ or
  ‘all-small-caps’ is specified but small-caps glyphs are not
  available for a given font, user agents should simulate a
  small-caps font, for example by taking a normal font and
  replacing the lowercase letters by scaled uppercase characters
  (and also uppercase letters in the case of ‘all-small-caps’). 

This makes the fallback decision based on whether a font supports the
small-caps feature or not.  It doesn't guarantee that the coverage in
the font precisely matches the set of glyphs which would be
synthesized if the font lacks the feature altogether.  In general, I
don't think this is a problem but I do want to point it out.  Since
OpenType fonts support features on a per-script basis, I want to tweak
this a bit to allow user agents to make the fallback decision on a
per-script basis so that if a font supports small caps glyphs for
Latin but not for Cyrillic, it can fallback selectively.

There's also no mention of the exact details of which characters are
considered lowercase or uppercase, so I think we should just piggyback
on the definition used in text-transform.

Proposed additional wording:

  In the case of OpenType fonts, for which features are defined
  per-script, user agents may make the fallback decision on a
  per-script basis.  When small-caps glyphs are synthesized, the
  set of characters affected match the set of characters that
  would be affected by the casing values of the 'text-transform'
  property.

Regards,

John Daggett

Received on Wednesday, 9 May 2012 11:52:15 UTC