Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Check: STAT table has Axis Values #3090

Open
m4rc1e opened this issue Nov 18, 2020 · 9 comments
Open

New Check: STAT table has Axis Values #3090

m4rc1e opened this issue Nov 18, 2020 · 9 comments
Assignees
Labels
New check proposal We expect new check proposals to include a detailed rationale description and a suggested check-id P0 Urgent
Milestone

Comments

@m4rc1e
Copy link
Collaborator

m4rc1e commented Nov 18, 2020

Rosalie recently made a pull request for a VF family which didn't contain any STAT Axis Values. By default fontmake will export a STAT table but won't include any meaningful Axis Values. We need to make a check that will fail these fonts.

cc @RosaWagner

@RosaWagner
Copy link
Contributor

RosaWagner commented Nov 18, 2020

Few other possible related STAT checks:
(some may be already implemented)

<- weight axis ->

  • Regular is correctly linked to bold (when there are both styles)
  • Regular is elided
  • Values are correct according to axis registry
  • There is a value every 100

<- italic axis ->

  • There is an ital axis in both upright and italic fonts (when there is an italic font)
  • Upright : "Roman"
  • "Roman"=0
  • "Roman" is elided
  • "Roman" is linked to 1 ("Italic")
  • Italic: "Italic"
  • "Italic"=1

@chrissimpkins
Copy link
Member

By default fontmake will export a STAT table but won't include any meaningful Axis Values

Is that a better default than not adding a STAT table at all? I've wondered about this approach in the past too.

@davelab6
Copy link
Contributor

This is now urgent @felipesanches :)

@felipesanches felipesanches added this to the 0.8.5 milestone Nov 5, 2021
@felipesanches felipesanches added the New check proposal We expect new check proposals to include a detailed rationale description and a suggested check-id label Nov 5, 2021
@felipesanches felipesanches modified the milestones: 0.8.5, 0.8.7 Dec 15, 2021
@felipesanches felipesanches modified the milestones: 0.8.7, 0.8.8 Feb 18, 2022
@felipesanches felipesanches modified the milestones: 0.8.8, 0.8.9 Mar 14, 2022
@miguelsousa
Copy link
Contributor

@felipesanches Have you started working on this? If you haven't, please assign it to me.

@felipesanches
Copy link
Collaborator

Feel free to got for it! I have way too much on my plate now, so if you see issues in which I reasigned release milestone multiple times in succession, it simply means it is likely beyond my ability to address in time, so it is safe to request ownership of it for yourself if you want to work on them.

felipesanches pushed a commit that referenced this issue May 31, 2022
Added to the OpenType Profile
Validates that STAT table has Axis Value tables.
(issue #3090)
@felipesanches
Copy link
Collaborator

thanks, @miguelsousa!

@aaronbell
Copy link
Contributor

I have a question about this check. In a project I'm working on, I have an fvar location at 5 that is being flagged as "missing Axis Value for 'opsz' value".

However, the STAT table has a rangeMinValue set at 0, and rangeMaxValue set at 16 (and a nominalValue at 11). Wouldn't that indicate that the 5 location is covered by the STAT table? As far as I can tell, the check that @miguelsousa implemented only covers the nominalValue (or value) entry and ignores the min/max range.

@miguelsousa
Copy link
Contributor

@aaronbell I think you're right. It seems like format 2 is not being handled as well as it needs to.

@felipesanches felipesanches reopened this Jul 1, 2022
@felipesanches
Copy link
Collaborator

reopening this one to track progress. Thanks, @aaronbell & @miguelsousa

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New check proposal We expect new check proposals to include a detailed rationale description and a suggested check-id P0 Urgent
Projects
None yet
Development

No branches or pull requests

7 participants