Fontbakery: Fail with STAT table with italic variable

Created on 18 Jun 2020  路  12Comments  路  Source: googlefonts/fontbakery

Observed behaviour

I have this Fontbakery fail :

Check correctness of STAT table strings
* [com.google.fonts/check/STAT_strings](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/STAT_strings)

On the STAT table, the _Italic_; keyword must not be used on AxisValues for
variation axes other than _ital_.

 **FAIL** The following AxisValue entries on the STAT table should not contain "Italic":
 ['Thin Italic', 'ExtraLight Italic', 'Light Italic', 'Italic', 'Medium Italic', 'SemiBold Italic', 'Bold Italic', 'ExtraBold Italic', 'Black Italic', 'Thin Italic', 'ExtraLight Italic', 'Light Italic', 'Italic', 'Medium Italic', 'SemiBold Italic', 'Bold Italic', 'ExtraBold Italic', 'Black Italic'] [code: bad-italic]

Expected behaviour

Uprights and italics are separated in 2 variable fonts. Therefore there is no _ital_ axis and the word 'italic' is only used to describe the instances name. But I have a poor experience with STAT table so I actually don't know if it is a bug from Fontbaky, from Fontmake or the build script.

Resources and exact process needed to replicate

Report and fonts can be found in this PR : Epilogue-PR12

P1 Quick dogma

Most helpful comment

I've nearly finished writing an update to our STAT table generator. Special thank you to @thlinard who has been reviewing the output.

All 12 comments

This is the issue where @davelab6 requested this check: #2863

Let us know if you think your use-case does not apply to what Dave wanted to enforce with the new check. I gotta be honest that I still do not understand it very well as well.

If we're able to clarify how it works, then it is yet another case in which we should craft a better rationale description for the check.

Which STAT Guru could we invoke for this matter?

@davelab6, last May 8th we had a "Samsa Review" video call in which, if I recall correctly, there's been some discussion about the STAT table and also some examples of Samsa being used to inspect a font with a properly setup STAT table. I also had the impression that a video recording of the call would be posted to youtube soon. Can you confirm that?

Other than the opentype spec itself, would you point us at any other place where we can find more info on the correct way of building this table?

Ideally you would have an ital axis in both fonts set to 0 in the Upright and 1 in the Italic. Like the check above says there shouldn't be 'Italic' in the axis value names of the Italic STAT table. They should have the same names as the Upright. 'Italic' should also be defined as the elidable name in the Italic STAT table. That way software that understands STAT tables can generate the proper name based on these settings.

I see this STAT table is coming from a hack in gftools to take the values from the fvar, but the information that can be shared with fvar is limited. The fvar should have instances named as users expect to see them in the named instance pulldown menu. STAT should only provide the building blocks for an application to synthesize a name on the fly and/or provide other information or UI elements which don't exist yet. For now I suggest creating a ttx STAT stub and inserting it in the build process. We have added STAT support to makeotf and are waiting for fontTools to also implement support for building off of a fea syntax file so we're getting there, but not quite yet.

I love the internet! :-D

I'll try to reuse some of this into a good rationale description for the check. Thanks for all the info, @punchcutter ;-)

(by the way, I see Tokyo on your profile. Did we have a chance to meet during ATypI last year? Your face looks somewhat familiar to me :-D)

@felipesanches Yes, I was at ATypI last year. I was the first speaker!

I'm in the middle of writing a bunch of STAT validation tests that I'm planning to submit to fontbakery soon.

Awesome! I'm glad to hear that ;-)

I've nearly finished writing an update to our STAT table generator. Special thank you to @thlinard who has been reviewing the output.

thanks, Marc!

Was this page helpful?
0 / 5 - 0 ratings