Re: advanced font features in CSS

On Jun 29, 2009, at 9:28 AM, Tal Leming wrote:

>>  contextual: calt, clig (OT), not in AAT
>
> Contextual ligatures (clig) may be better grouped with ligatures. Most
> applications group these along with liga under a generic "Ligatures"
> option.
>
> Contextual alternates should be on by default. This feature is used by
> many fonts to ensure proper appearance. FWIW, the OT specification
> defines the default state of most, if not all, features. It would be
> best if these specifications are followed.

I don't personally see any reason to separate 'calt' and 'clig'. They  
are both on-by-default, contextually-applied alternates, and if there  
is any interest in grouping anything (as opposed to keeping every  
possible feature separate), these are good candidates for that. (And  
because 'liga' is also on by default, I could imagine all three being  
grouped, actually.)


>>  swash: swsh(number), cswh(number) (OT), AAT?
>
> As Thomas mentioned, most fonts use contextual forward and backward
> tracking to automatically insert the proper swash. In fact, I don't
> know that I've ever seen a font that uses GSUB lookup type 3 as the
> spec describes for swashes. I think it may be safer to allow users to
> activate swashes independent of a specific number.

I wouldn't be surprised if we have a 'swsh' feature in our library  
somewhere that uses LookupType 3. The 'swsh' feature has a sloppy  
history: It has sometimes been used as something like a stylistic set,  
meant to be activated all at once; it has been used as a simple  
alternate substitution, intended to be used discretely (only); and I  
think it has been done as a one-from-many substitution and as a  
contextual substitution. (This is speaking of the Adobe Type Library.  
I'm not sure what everyone else is doing.) It's hard to predict how  
it's going to be, I think.


>> alternates: salt(number) (OT), character alternatives = number (AAT)
>
> This is the same as the swsh(number) problem mentioned above. The salt
> implementation has been an area of debate for a long time.

Has it? I'm not aware of any long running debate. We customarily  
implement it as a LookupType 1 and LookupType 3. Either way, it's  
intended as a user-selected, discretionary feature. Or are you talking  
about how 'salt' is activated in the user interface? Yes, that is  
debatable. :)

-Christopher

Received on Tuesday, 30 June 2009 06:47:29 UTC