text-rendering-tests icon indicating copy to clipboard operation
text-rendering-tests copied to clipboard

Variable fonts without a STAT table

Open wezm opened this issue 1 year ago • 5 comments

I've been working on hooking up some recent variable fonts work to the test suite and noticed that several of the test fonts used for variable font tests are lacking a STAT table. However, the OpenType spec says:

Two tables are required in all variable fonts:

  • A font variations ('fvar') table is required to describe the variations supported by the font.
  • A style attributes (STAT) table is required and is used to establish relationships between different fonts belonging to a family and to provide some degree of compatibility with legacy applications by allowing platforms to project variation instances involving many axes into older font-family models that assume a limited set of axes.

I imagine this is not a major issue since it's perfectly possible to apply variations without a STAT table but figured it was worth mentioning.

Examples include:

  • fonts/TestGVAROne.ttf
  • fonts/TestGVARTwo.ttf
  • fonts/TestGVARThree.ttf

wezm avatar Nov 14 '23 07:11 wezm

  • *A style attributes (STAT) table is required and is used to establish relationships between different fonts belonging to a family and to provide some degree of compatibility with legacy applications by allowing platforms to project variation instances involving many axes into older font-family models that assume a limited set of axes.

Yeah that's unfortunately the spec being too strict. Webfonts for example wouldn't need STAT table at all...

behdad avatar Nov 14 '23 15:11 behdad

Yeah that's unfortunately the spec being too strict.

Do you think I should open an issue on the OpenType docs instead then?

wezm avatar Nov 14 '23 23:11 wezm

Yeah that's unfortunately the spec being too strict.

Do you think I should open an issue on the OpenType docs instead then?

What can I say. It's one of those things that @PeterConstable and I disagree on I think.

behdad avatar Nov 14 '23 23:11 behdad

FWIW, I think the spec should be strict, while implementation(s) can choose to be tolerant. That's the difference between what should be, and what's tolerated/work-arounded/ignored. So often, I hear that since something is tolerated by implementation X, therefore the specification must be loosen up... Cc @PeterConstable

HinTak avatar Nov 15 '23 01:11 HinTak

Fixing the test fonts in this repo to make them conform to the OpenType spec sounds good. Even if it may be arguable whether or not STAT should be required, the current spec mandates it. Feel free to change the test fonts, ttx is your friend. Pull requests welcome.

brawer avatar Nov 17 '23 16:11 brawer