unicode-org / text-rendering-tests

Unicode’s test suite for text rendering engines
Other
168 stars 37 forks source link

Variable fonts without a STAT table #91

Open wezm opened 12 months ago

wezm commented 12 months ago

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:

behdad commented 12 months ago
  • *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...

wezm commented 12 months ago

Yeah that's unfortunately the spec being too strict.

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

behdad commented 12 months ago

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.

HinTak commented 12 months ago

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

brawer commented 11 months ago

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.