question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

New family check: No styles in a font family (or VF) should have Agrave bounds that exceed hhea.ascent

See original GitHub issue

Observed behaviour

For a long time, I struggled with https://github.com/arrowtype/recursive/issues/308, wherein just a few styles of Recursive were given unexpected default line heights on macOS.

image

Last week, I discovered that this was due to Latin Basic (single-accent) uppercase characters exceeding the hhea.ascent value. When this was the case – as it was in my Linear ExtraBold sources (and therefore styles nearby) – macOS disregards the specified hhea values, and instead seems to use yMin & yMax values to determine default line height. In turn, this negatively affects the font usability in programs like Keynote & Sketch.

Expected behaviour

FontBakery could use a check that:

  • Runs through all instances of a font
  • Checks whether the hhea.ascent is exceed by the yMax bound of any characters in Latin Basic

Something that might be challenging about this: how can we check for yMax in non-default instances of a variable font? Would this check have to calculate all deltas for instances? Is there any kind of quick way to do that?

Resources and exact process needed to replicate

This issue was discovered at v1.030 and existed up to v1.073. So, this can be reproduced with the variable and static fonts in any release of Recursive prior to v1.074, where it was fixed by making uppercase accents slightly shorter.

This issue exists on macOS Catalina (10.15) and to a slightly lesser extent macOS 11 Big Sur. (In Big Sur, it doesn’t happen in Sketch, but does occur in Keynote and presumably also other apps).

Issue Analytics

  • State:open
  • Created 3 years ago
  • Comments:8 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
RosaWagnercommented, Mar 23, 2021

I would like to take this as an opportunity to add more details to a v-metric check:

  • hheaAscent = typoAscent > y-max Agrave
  • hheaDescent = typoDescent
  • hheaLineGap = typoLinegap = 0
  • CAPS ARE CENTRED : capsHeight - typoAscent ~= - typoDescent
1reaction
RosaWagnercommented, Feb 17, 2021

From the tests I have done, Mac OS only looks at Agrave. So basically, the hheaAscent (and TypoAscent, since we want them equal), needs to be higher than yMax of Agrave.

Read more comments on GitHub >

github_iconTop Results From Across the Web

ascent-override - CSS: Cascading Style Sheets | MDN
The ascent-override CSS descriptor defines the ascent metric for the font. The ascent metric is the height above the baseline that CSS uses ......
Read more >
Glyphs 3 Handbook
Glyphs 3 is a professional Mac application for creating OpenType fonts. It allows you to draw, edit and test letter shapes in a...
Read more >
The 'hhea' table - TrueType Reference Manual
The table begins with a version number. It includes values which represent the design intentions of the font's designer (ascent, descent and linegap)...
Read more >
Untitled
Iphone 4 used price in faisalabad, Qm23 route, The new outer limits season 2, ... Aube thermostat programmable, Meet the family frenzal rhomb....
Read more >
Untitled
How to cite a brave new world, Steven jackson nfl draft, Brooke grady model, ... Hypochondriac blood test, Will ferrell family images, Bryant...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found