Re: Proposal: add a "small-caps" value to "font-synthesis"

From: John Daggett
Date: Wednesday, August 12, 2015 at 8:44 AM
To: Alan Stearns
Cc: "Myles C. Maxfield", www-style list, Ted O'Connor
Subject: Re: Proposal: add a "small-caps" value to "font-synthesis"

Alan Stearns wrote:

> >Thinking about this a little more, I don't think we should add
> >'small-caps' to the 'font-synthesis' property. The CSS Fonts spec
> >defines *required* fallback behavior when 'font-variant' is set to
> >'small-caps' and the font lacks small caps glyphs. This is different
> >from the way font selection works for the synthetic bold and italic
> >cases, those are basically *optional* features added by the user
> >agent.
> >>
> While it’s true that the specification uses different RFC 2119 terms
> (should versus may), I’m not sure it should have. Bold and italic
> synthesis are technically optional but in practice ubiquitous, to the
> point that font-synthesis is required to be able to opt out.

I think synthetic bolding and italics tends to often be a source of
problems related to fonts missing from a font family, especially in the
case of webfonts. But that's rarely the case with small-caps support,
either the font supports it or it doesn't, that's not generally a source
of errors.

If there was a way of applying small caps only if a particular font known to contain small caps was possible, then I’d be OK. But people will use small caps with a list of fallback fonts, see that it looks OK (maybe even in a bunch of browsers) on their test setups, and not notice the terrible synthetic small caps on someone else’s device that used a different font. So I do think this can be a source of errors we should allow people to avoid.

While I understand the logic behind what you and Myles are suggesting, I
don't think there's a strong use case to support this addition. I think
it's not a good idea to always introduce an escape for every font
feature related fallback that we define. That seems like a pattern that
will lead to lots of unneeded property values that no one uses.

Another way of avoiding this pattern (and I’m not saying it’s the only way) is to avoid introducing new fallback synthesis requirements. It looks like small caps synthesis was added as a backwards compatibility requirement. Perhaps it should have been softened to a “may” instead of a “should.”



Received on Wednesday, 12 August 2015 15:54:54 UTC