- From: Christoph Päper <christoph.paeper@crissov.de>
- Date: Wed, 22 Feb 2012 21:28:27 +0100
- To: www-style list <www-style@w3.org>
Christopher Slye (2012-02-18 02:13):
> … the font attributes should convey features in high level, technology-agnostic terms, not with the lower level wiring of OpenType feature tags. The current draft follows this spirit well enough.
I still disagree. The current WD and ED has
‘common-ligatures’ ⇔ ‘liga’ := 1
‘no-common-ligatures’ ⇔ ‘liga’ := 0
‘discretionary-ligatures’ ⇔ ‘dlig’ := 1
‘no-discretionary-ligatures’ ⇔ ‘dlig’ := 0
‘historical-ligatures’ ⇔ ‘hlig’ := 1
‘no-historical-ligatures’ ⇔ ‘hlig’ := 0
John Daggett wants to change it to
‘common-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 0, ‘hlig’ = 0
‘discretionary-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 1, ‘hlig’ = 0
‘all-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 1, ‘hlig’ = 1
and forgets, I guess, ‘none’ or ‘no-ligatures’. Other keywords for common combinations could be added (now or later).
It probably merits discussion whether it should rather use default values like ‘normal’
‘common-ligatures’ ⇔ ‘liga’ := 1
‘discretionary-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 1
‘all-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 1, ‘hlig’ = 1
> I think it's better to pretend that font-feature-settings doesn't exist and design the primary attributes to include and control font features as they should ideally be.
I agree, but “font features” to be controlled in this context should be abstracted from Open Type, because OT features are all but perfect. They are neither designed in a coherent manner nor with authors in focus. CSS properties and values should be both.
> I prefer to think of font-feature-settings as a way to have access to OpenType features that are too obscure or specialized to have a place among the regular font attributes (…).
Yes, or for rare combinations of features.
> You're worried about the current syntax being verbose, but your example
> seems unlikely because common-ligatures will be on by default,
Not necessarily: the initial value ‘normal’ relies on the default settings inside the font.
> They have the benefit of being switches directly associated with distinct categories (default, discretionary, historical).
These categories (or their names) are all but distinct.
> Also, common-ligatures is more likely to be enabled across sections of (…) text, but discretionary ligatures might (…) be better applied situationally, i.e. with a span.
That is
:root {font-variant-ligatures: common-ligatures;}
span {font-variant-ligatures: discretionary-ligatures;}
instead of
:root {font-variant-ligatures: common-ligatures
no-discretionary-ligatures
no-historical-ligatures;}
span {font-variant-ligatures: common-ligatures /* ‘no-…’?*/
discretionary-ligatures
no-historical-ligatures;}
(The current draft doesn’t seem to say whether features that are not set explicitly are inherited or fall back to their font-specific default, as in ‘normal’.)
> Your proposed syntax merges the two and blurs this distinction,
When or where would you want ‘dlig’ to be on, but not ‘liga’?
Would you like ‘additional-ligatures’ or ‘optional-ligatures’ better?
‘discretionary-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 1, ‘hlig’ = 1
‘discretionary-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 1, ‘hlig’ = 0
‘discretionary-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 1, ‘hlig’ = i
‘discretionary-ligatures’ ⇔ ‘liga’ := 1, ‘dlig’ = 1, ‘hlig’ = d
‘discretionary-ligatures’ ⇔ ‘liga’ := 0, ‘dlig’ = 1, ‘hlig’ = 1
‘discretionary-ligatures’ ⇔ ‘liga’ := 0, ‘dlig’ = 1, ‘hlig’ = 0
‘discretionary-ligatures’ ⇔ ‘liga’ := 0, ‘dlig’ = 1, ‘hlig’ = i
‘discretionary-ligatures’ ⇔ ‘liga’ := 0, ‘dlig’ = 1, ‘hlig’ = d
‘discretionary-ligatures’ ⇔ ‘liga’ := i, ‘dlig’ = 1, ‘hlig’ = 1
‘discretionary-ligatures’ ⇔ ‘liga’ := i, ‘dlig’ = 1, ‘hlig’ = 0
‘discretionary-ligatures’ ⇔ ‘liga’ := i, ‘dlig’ = 1, ‘hlig’ = i
‘discretionary-ligatures’ ⇔ ‘liga’ := i, ‘dlig’ = 1, ‘hlig’ = d
‘discretionary-ligatures’ ⇔ ‘liga’ := d, ‘dlig’ = 1, ‘hlig’ = 1
‘discretionary-ligatures’ ⇔ ‘liga’ := d, ‘dlig’ = 1, ‘hlig’ = 0
‘discretionary-ligatures’ ⇔ ‘liga’ := d, ‘dlig’ = 1, ‘hlig’ = i
‘discretionary-ligatures’ ⇔ ‘liga’ := d, ‘dlig’ = 1, ‘hlig’ = d
Which one of the above would you prefer? (‘i’ means inherit, ‘d’ is font default.)
> and I think it would be more confusing to the average developer.
No, it wouldn’t, because the average (website) developer is not a font designer, too.
Received on Wednesday, 22 February 2012 20:28:50 UTC