RE: [css3-fonts] font-size-adjust auto issue

On Sunday, August 25, 2013 12:52 PM Tab Atkins wrote:
> 
> On Sat, Aug 24, 2013 at 9:37 AM, Levantovsky, Vladimir
> <Vladimir.Levantovsky@monotype.com> wrote:
> > Does it mean that if I define
> >
> > font-family: Verdana, Futura, Times (with Times being also the default
> > font)
> > font-size-adjust: auto
> >
> > and I do have Verdana installed on my platform the font choice will be
> > Verdana but its aspect value will be adjusted to match Times? If this
> > is the case, this would be counter-productive since we would adjust
> > legible font to make the text less legible.
> 
> Yes, it does mean that it'll be adjusted to match Times.  Whether this
> makes the font less legible is up to individual interpretation, I
> suppose.  

Not so. According to the spec "the relative height of lowercase letters compared to their uppercase counterparts is a determining factor of legibility". Adjusting a font with larger x-height to match the lower x-height will harm the legibility.

> > This also supports my claim that the spec is misleading. It says:
> >
> > # Behaves just like <number>, except the number used is the aspect #
> > value calculated by user agents for the first font in the list of #
> > fonts defined for the initial value of the ‘font-family’ property.
> >
> > One may read "calculated by user agents for the first font in the
> list
> > of fonts" and assume that it will match the aspect value of Verdana
> if
> > it is present, but the reality and the outcome of defining
> > font-size-adjust: auto is way different. And the results will be
> > different for different users on different platforms. So, i am going
> > back to my question: why the <auto> value is needed?
> 
> Specs are indeed misleading if you regularly read only the first half
> of normative sentences.  The "defined for the initial value of the
> 'font-family' property" is a necessary part of that sentence which
> makes it clear what is meant - the "initial value" of a property is a
> term of art in CSS that is defined in the propdef tables.
> 

Agree, but there is also a second sentence there that says that "Effectively this is the default font used when ‘font-family’ is not otherwise specified." Since in my case (and also in Example 3) the font-family is specified, it "effectively" renders the second half of the normative sentence irrelevant, and the fact that Figure 19 also shows the result of the adjustment when every font in the font-family is adjusted to match the x-height of the first font Verdana visually reinforces the assumption that this is the expected behavior.

> The use-case for <auto> has been explained - it provides a useful
> number without the author having to take the time to measure things
> themselves, and there's a good chance that it matches the font
> currently being used, since most pages just uses the browser default
> fonts for most text.  The default font for the browser is presumably
> nicely legible, such that matching its x-height is acceptable. 

This "useful number" will vary from one platform to another, which makes its usability highly questionable, especially considering the very first sentence that says "For any given font size, the apparent size and legibility of text varies across fonts".

> Having all of your fonts match *some* reasonable x-height is useful all
> by itself; you don't need the ability to specify a specific x-height to
> make this functionality useful.
> 

Fonts are designed with different x-heights and varied proportions for a reason. And, as far as x-heights are concerned, what is reasonable for one typeface design may be not so for another. My objection to having <auto> value is because it encourages authors to use it blindly, not knowing (and having no chance to know precisely) what the effect will be on any given platform.

Cheers,
Vlad

Received on Tuesday, 27 August 2013 02:01:48 UTC