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

Updating Inter to 3.019 #3781

Merged
merged 1 commit into from
Sep 29, 2021
Merged

Updating Inter to 3.019 #3781

merged 1 commit into from
Sep 29, 2021

Conversation

aaronbell
Copy link
Collaborator

PR to update based on the https://github.com/rsms/inter/releases/tag/v3.19 release (note, the release is tagged 3.19, but internal to the font is 3.019). I made minimal changes to generally follow the previous version.

There's a large number of changes between the 3.012 and 3.019 release (full list here: rsms/inter@v3.12...v3.19), but generally the diffs are pretty clean.

The only item that I note that is worth calling out is the "glyphs missing" set, which appears to have been moved / re-implemented, and are primarily PUA glyphs.
glyphs_missing

A couple other notes:

  • There are a large number of Fontbakery fails related to slnt axis (both in fvar and STAT). But this functionality follows the previous version of the font in GF.
  • While listed as problematic, the usWinAscent / usWinDescent match the previous version.

Includes updated STAT table, and other
@gf-bot
Copy link

gf-bot commented Sep 1, 2021

Fontbakery report

Fontbakery version: 0.8.1

[1] Family checks
WARN: Is the command `ftxvalidator` (Apple Font Tool Suite) available?
--- Rationale ---
There's no reasonable (and legal) way to run the command `ftxvalidator` of the
Apple Font Tool Suite on a non-macOS machine. I.e. on GNU+Linux or Windows etc.
If Font Bakery is not running on an OSX machine, the machine running Font Bakery
could access `ftxvalidator` on OSX, e.g. via ssh or a remote procedure call
(rpc).
There's an ssh example implementation at:
https://github.com/googlefonts/fontbakery/blob/main/prebuilt/workarounds
/ftxvalidator/ssh-implementation/ftxvalidator
  • WARN Could not find ftxvalidator. [code: ftxvalidator-available]

[18] Inter[slnt,wght].ttf
💔 ERROR: Font has old ttfautohint applied?
--- Rationale ---
This check finds which version of ttfautohint was used, by inspecting name table
entries and then finds which version of ttfautohint is currently installed in
the system.
  • 💔 ERROR ttfautohint is not available. [code: not-available]
🔥 FAIL: Check `Google Fonts Latin Core` glyph coverage.
--- Rationale ---
Google Fonts expects that fonts in its collection support at least the minimal
set of characters defined in the `GF-latin-core` glyph-set.
  • 🔥 FAIL Missing required codepoints: 0x2215 (DIVISION SLASH) [code: missing-codepoints]
🔥 FAIL: Ensure VFs do not contain slnt or ital axes.
--- Rationale ---
The 'ital' and 'slnt' axes are not supported yet in Google Chrome.
For the time being, we need to ensure that VFs do not contain either of these
axes. Once browser support is better, we can deprecate this check.
For more info regarding browser support, see:
https://arrowtype.github.io/vf-slnt-test/
  • 🔥 FAIL The "slnt" axis is not yet well supported on Google Chrome. [code: unsupported-slnt]
🔥 FAIL: Validate STAT particle names and values match the fallback names in GFAxisRegistry.
--- Rationale ---
Check that particle names and values on STAT table match the fallback names in
each axis entry at the Google Fonts Axis Registry, available at
https://github.com/google/fonts/tree/main/axisregistry
  • 🔥 FAIL On the font variation axis 'slnt', the name 'Italic' is not among the expected ones (Default) according to the Google Fonts Axis Registry. [code: invalid-name]
  • 🔥 FAIL On the font variation axis 'slnt', the name 'Regular' is not among the expected ones (Default) according to the Google Fonts Axis Registry. [code: invalid-name]
🔥 FAIL: Ensure variable fonts include an avar table.
--- Rationale ---
Most variable fonts should include an avar table to correctly define axes
progression rates.
For example, a weight axis from 0% to 100% doesn't map directly to 100 to 1000,
because a 10% progression from 0% may be too much to define the 200, while 90%
may be too little to define the 900.
If the progression rates of axes is linear, this check can be ignored. Fontmake
will also skip adding an avar table if the progression rates are linear.
However, we still recommend designers visually proof each instance is at the
desired weight, width etc.
  • 🔥 FAIL This variable font does not have an avar table. [code: missing-avar]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent.
--- Rationale ---
A font's winAscent and winDescent values should be greater than the head table's
yMax, abs(yMin) values. If they are less than these values, clipping can occur
on Windows platforms (https://github.com/RedHatBrand/Overpass/issues/33).
If the font includes tall/deep writing systems such as Arabic or Devanagari, the
winAscent and winDescent can be greater than the yMax and abs(yMin) to
accommodate vowel marks.
When the win Metrics are significantly greater than the upm, the linespacing can
appear too loose. To counteract this, enabling the OS/2 fsSelection bit 7
(Use_Typo_Metrics), will force Windows to use the OS/2 typo values instead. This
means the font developer can control the linespacing with the typo values,
whilst avoiding clipping by setting the win values to values greater than the
yMax and abs(yMin).
  • 🔥 FAIL OS/2.usWinAscent value should be equal or greater than 3072, but got 2728 instead [code: ascent]
  • 🔥 FAIL OS/2.usWinDescent value should be equal or greater than 900, but got 680 instead. [code: descent]
🔥 FAIL: Check correctness of STAT table strings
--- Rationale ---
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":
    ['nameID 280: Italic'] [code: bad-italic]
WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Stricter unitsPerEm criteria for Google Fonts.
--- Rationale ---
Even though the OpenType spec allows unitsPerEm to be any value between 16 and
16384, the Google Fonts project aims at a narrower set of reasonable values.
The spec suggests usage of powers of two in order to get some performance
improvements on legacy renderers, so those values are acceptable.
But values of 500 or 1000 are also acceptable, with the added benefit that it
makes upm math easier for designers, while the performance hit of not using a
power of two is most likely negligible nowadays.
Additionally, values above 2048 would likely result in unreasonable filesize
increases.
  • WARN Font em size (unitsPerEm) is 2816 which may be too large (causing filesize bloat), unless you are sure that the detail level in this font requires that much precision. [code: large-value]
WARN: A static fonts directory with at least two fonts must accompany variable fonts
--- Rationale ---
Variable font family directories kept in the google/fonts git repo may include a
static/ subdir containing static fonts.
These files are meant to be served for users that still lack support for
variable fonts in their web browsers.
  • WARN Please consider adding a subdirectory called "static/" and including in it static font files. [code: missing]
WARN: METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
--- Rationale ---
Google Fonts has a catalog of designers.
This check ensures that the online entries of the catalog can be found based on
the designer names listed on the METADATA.pb file.
It also validates the URLs and file formats are all correctly set.
  • WARN It seems that Rasmus Andersson is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]
WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table.
--- Rationale ---
The OpenType 'meta' table originated at Apple. Microsoft added it to OT with
just two DataMap records:
- dlng: comma-separated ScriptLangTags that indicate which scripts, or languages
and scripts, with possible variants, the font is designed for
- slng: comma-separated ScriptLangTags that indicate which scripts, or languages
and scripts, with possible variants, the font supports
The slng structure is intended to describe which languages and scripts the font
overall supports. For example, a Traditional Chinese font that also contains
Latin characters, can indicate Hant,Latn, showing that it supports Hant, the
Traditional Chinese variant of the Hani script, and it also supports the Latn
script
The dlng structure is far more interesting. A font may contain various glyphs,
but only a particular subset of the glyphs may be truly "leading" in the design,
while other glyphs may have been included for technical reasons. Such a
Traditional Chinese font could only list Hant there, showing that it’s designed
for Traditional Chinese, but the font would omit Latn, because the developers
don’t think the font is really recommended for purely Latin-script use.
The tags used in the structures can comprise just script, or also language and
script. For example, if a font has Bulgarian Cyrillic alternates in the locl
feature for the cyrl BGR OT languagesystem, it could also indicate in dlng
explicitly that it supports bul-Cyrl. (Note that the scripts and languages in
meta use the ISO language and script codes, not the OpenType ones).
This check ensures that the font has the meta table containing the slng and dlng
structures.
All families in the Google Fonts collection should contain the 'meta' table.
Windows 10 already uses it when deciding on which fonts to fall back to. The
Google Fonts API and also other environments could use the data for smarter
filtering. Most importantly, those entries should be added to the Noto fonts.
In the font making process, some environments store this data in external files
already. But the meta table provides a convenient way to store this inside the
font file, so some tools may add the data, and unrelated tools may read this
data. This makes the solution much more portable and universal.
  • WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
WARN: Font has **proper** whitespace glyph names?
--- Rationale ---
This check enforces adherence to recommended whitespace (codepoints 0020 and
00A0) glyph names according to the Adobe Glyph List.
  • WARN Glyph 0x0020 is called "uni0020": Change to "space" [code: not-recommended-0020]
WARN: Checking unitsPerEm value is reasonable.
--- Rationale ---
According to the OpenType spec:
The value of unitsPerEm at the head table must be a value between 16 and 16384.
Any value in this range is valid.
In fonts that have TrueType outlines, a power of 2 is recommended as this allows
performance optimizations in some rasterizers.
But 1000 is a commonly used value. And 2000 may become increasingly more common
on Variable Fonts.
  • WARN In order to optimize performance on some legacy renderers, the value of unitsPerEm at the head table should idealy be a power of between 16 to 16384. And values of 1000 and 2000 are also common and may be just fine as well. But we got 2816 instead. [code: suboptimal]
WARN: Does the font have a DSIG table?
--- Rationale ---
Microsoft Office 2013 and below products expect fonts to have a digital
signature declared in a DSIG table in order to implement OpenType features. The
EOL date for Microsoft Office 2013 products is 4/11/2023. This issue does not
impact Microsoft Office 2016 and above products.
As we approach the EOL date, it is now considered better to completely remove
the table.
But if you still want your font to support OpenType features on Office 2013,
then you may find it handy to add a fake signature on a dummy DSIG table by
running one of the helper scripts provided at
https://github.com/googlefonts/gftools
Reference: https://github.com/googlefonts/fontbakery/issues/1845
  • WARN This font has a digital signature (DSIG table) which is only required - even if only a dummy placeholder - on old programs like MS Office 2013 in order to work properly.
    The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
WARN: Check mark characters are in GDEF mark glyph class.
--- Rationale ---
Mark characters should be in the GDEF mark glyph class.
  • WARN The following mark characters could be in the GDEF mark glyph class:
    uni0302 (U+0302), uni0305 (U+0305), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308), uni0309 (U+0309), uni030A (U+030A), uni030B (U+030B), uni030D (U+030D), uni030E (U+030E), uni0310 (U+0310), uni0311 (U+0311), uni0312 (U+0312), uni0314 (U+0314), uni0316 (U+0316), uni0317 (U+0317), uni0318 (U+0318), uni0319 (U+0319), uni031A (U+031A), uni031B (U+031B), uni031C (U+031C), uni031D (U+031D), uni031E (U+031E), uni0321 (U+0321), uni0322 (U+0322), uni0323 (U+0323), uni0324 (U+0324), uni0325 (U+0325), uni0326 (U+0326), uni0327 (U+0327), uni0328 (U+0328), uni0329 (U+0329), uni032A (U+032A), uni032B (U+032B), uni032D (U+032D), uni032E (U+032E), uni032F (U+032F), uni0330 (U+0330), uni0331 (U+0331), uni0332 (U+0332), uni0333 (U+0333), uni0334 (U+0334), uni0335 (U+0335), uni0336 (U+0336), uni0337 (U+0337), uni0338 (U+0338), uni0339 (U+0339), uni033A (U+033A), uni033B (U+033B), uni033C (U+033C), uni033D (U+033D), uni033E (U+033E), uni033F (U+033F), uni0340 (U+0340), uni0341 (U+0341), uni0344 (U+0344), uni0345 (U+0345), uni0488 (U+0488), uni0489 (U+0489), uni20DD (U+20DD), uni20DE (U+20DE), uniFE20 (U+FE20), uniFE21 (U+FE21), uniFE27 (U+FE27) and uniFE28 (U+FE28) [code: mark-chars]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni00B3 (U+00B3): X=432.5,Y=2046.0 (should be at cap-height 2048?)
    • uni00C5 (U+00C5): X=806.0,Y=2729.0 (should be at ascender 2728?)
    • uni00C5 (U+00C5): X=1098.0,Y=2729.0 (should be at ascender 2728?)
    • uni016E (U+016E): X=898.0,Y=2729.0 (should be at ascender 2728?)
    • uni016E (U+016E): X=1190.0,Y=2729.0 (should be at ascender 2728?)
    • uni0198 (U+0198): X=1505.0,Y=2050.0 (should be at cap-height 2048?)
    • uni0199 (U+0199): X=459.5,Y=2049.0 (should be at cap-height 2048?)
    • uni01A3 (U+01A3): X=950.5,Y=-0.5 (should be at baseline 0?)
    • uni01A6 (U+01A6): X=152.0,Y=2050.0 (should be at cap-height 2048?)
    • uni01A6 (U+01A6): X=820.0,Y=2050.0 (should be at cap-height 2048?) and 37 more. [code: found-misalignments]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
1 6 12 48 8 138 0
0% 3% 6% 23% 4% 65% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@m4rc1e
Copy link
Collaborator

m4rc1e commented Sep 22, 2021

@RosaWagner do we care that this family has a slnt axis and it has an Italic AxisValue Record? everything else looks good.

@RosaWagner
Copy link
Contributor

I guess we don't really have a choice since the font was already like that before, let's merge, people will be happy to finally have an update

@RosaWagner RosaWagner merged commit b092864 into main Sep 29, 2021
@RosaWagner RosaWagner deleted the inter_update branch September 29, 2021 10:10
@rsms
Copy link

rsms commented Oct 2, 2021

@RosaWagner do we care that this family has a slnt axis and it has an Italic AxisValue Record? everything else looks good.

For the future, is there a place I can learn what this means, what impact it has and how to change it? Second, do you think it should be changed?

– Author

@aaronbell
Copy link
Collaborator Author

Google has a set of axis registries that describe how axis should work / be named. The intention is to standardize how these things work across different fonts.

In the case of Inter, the slnt axis uses names for the AxisValue Records that align more with how the axis registry states a ital axis should work (aka, with "Roman" and "Italic"), versus a slnt axis which uses "default" and then amount of slant.

This mismatch between Inter's implementation and Google's Axis Registry isn't necessarily a problem, and doesn't impact the functionality of the font (AFAIK), but unless you're planning to add a backslant, I'd suggest using ital for the axis name as it is more aligned with the intent of master arrangement. Additionally, my understanding is that there is more consistent support among web browsers for ital over slnt when stating font-style:italic, so users will have better results too. This can be done fairly easily (I think) in Glyphs by changing the axis name in the font info panel and adjusting the values to be positive rather than negative.

@RosaWagner RosaWagner added --- to_production I Small Fix bugs fixed but nothing added --- Live Font is visible on API and removed --- to_sandbox labels Nov 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
--- Live Font is visible on API I Small Fix bugs fixed but nothing added
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants