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

Google Fonts QA report #1

Open
m4rc1e opened this issue Jan 13, 2020 · 0 comments
Open

Google Fonts QA report #1

m4rc1e opened this issue Jan 13, 2020 · 0 comments

Comments

@m4rc1e
Copy link

m4rc1e commented Jan 13, 2020

Fontbakery report

Fontbakery version: 0.7.15

[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/master/prebuilt/workarounds/ftxvalidator/ssh-implementation/ftxvalidator


  • WARN ftxvalidator is not available.

[10] VioletSans-Regular.ttf
🔥 FAIL: License URL matches License text on name table?
🔥 FAIL: Copyright notices match canonical pattern in fonts
  • com.google.fonts/check/font_copyright

  • 🔥 FAIL Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)"
    But instead we have got:
    "Copyright 2019 Violet Sans Calvin Waterman " [code: bad-notice-format]

  • 🔥 FAIL Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)"
    But instead we have got:
    "Copyright 2019 Violet Sans Calvin Waterman " [code: bad-notice-format]

🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 FAIL: Name table records must not have trailing spaces.
  • com.google.fonts/check/name/trailing_spaces

  • 🔥 FAIL Name table record with key = (1, 0, 0, 0) has trailing spaces that must be removed: 'Copyright [...] Waterman '

  • 🔥 FAIL Name table record with key = (3, 1, 1033, 0) has trailing spaces that must be removed: 'Copyright [...] Waterman '

WARN: Checking OS/2 achVendID.
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 value 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.

Another acceptable value is 2000. Since TT outlines are all integers (no
floats), then instances in a VF suffer rounding compromises, and therefore a
1000 UPM is to small because it forces too many such compromises.

Therefore 2000 is a good 'new VF standard', because 2000 is a simple 2x
conversion from existing fonts drawn on a 1000 UPM, and anyone who knows what
10 units can do for 1000 UPM will know what 20 units does too.

Additionally, values above 2048 would result in filesize increases with not
much added benefit.


  • WARN Even though unitsPerEm (1000) in this font is reasonable. It is strongly advised to consider changing it to 2000, since it will likely improve the quality of Variable Fonts by avoiding excessive rounding of coordinates on interpolations. [code: legacy-value]
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

Glyph name: uni1E9E Contours detected: 2 Expected: 1
Glyph name: uni1E9E Contours detected: 2 Expected: 1 [code: contour-count]

WARN: Are there caret positions declared for every ligature?
--- Rationale ---

All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.


  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---

Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).


  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • i + l
    • r + a
    • a + f

    [code: lacks-kern-info]

WARN: Checking Vertical Metric Linegaps.

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 4 7 73 7 70 0
0% 2% 4% 45% 4% 43% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

Diff images: violetsans.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant