huertatipografica / Andada-Pro

Andada is a text font with an organic-slab serif, hybrid style, a solid design of medium stroke contrast.
SIL Open Font License 1.1
29 stars 4 forks source link

Font Bakery report #7

Closed RosaWagner closed 3 years ago

RosaWagner commented 3 years ago

A part of it will be fixed by building with gftools. We need to pay attention to vertical metrics so there is no regression with previous version published on GF. Since the font doesn't have the same name for now, I can't diff it against previous version.

Fontbakery report

Fontbakery version: 0.7.34

[18] AndadahtOTVar-Bold.ttf
🔥 FAIL: Substitute copyright, registered and trademark symbols in name table entries. * [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
🔥 FAIL: Are there non-ASCII characters in ASCII-only NAME table entries? * [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---

The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).

For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.

Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.

* 🔥 **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]
🔥 FAIL: Copyright notices match canonical pattern in fonts * [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#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 by Carolina Giovagnoli. All rights reserved." [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 by Carolina Giovagnoli. All rights reserved." [code: bad-notice-format]
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries. * [com.google.fonts/check/name/familyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/familyname)
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.

* 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch] * 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch]
🔥 FAIL: Check name table: FULL_FONT_NAME entries. * [com.google.fonts/check/name/fullfontname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/fullfontname) * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var Bold" but got "Andada ht OTVar Bold". [code: bad-entry] * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var Bold" but got "Andada ht OTVar Bold". [code: bad-entry]
🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- 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: Are there caret positions declared for every ligature? * [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets)
--- 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.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_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).

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- 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 1092, but got 1060 instead [code: ascent] * 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 382, but got 290 instead. [code: descent]
🔥 FAIL: Description strings in the name table must not contain copyright info. * [com.google.fonts/check/name/no_copyright_on_description](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/no_copyright_on_description) * 🔥 **FAIL** Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.) [code: copyright-on-description]
🔥 FAIL: Space and non-breaking space have the same width? * [com.google.fonts/check/whitespace_widths](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hmtx.html#com.google.fonts/check/whitespace_widths) * 🔥 **FAIL** Space and non-breaking space have differing width: The space glyph named space is 199 font units wide, non-breaking space named (uni00A0) is 193 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width. [code: different-widths]
🔥 FAIL: Check glyphs do not have components which are themselves components. * [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412

* 🔥 **FAIL** The following glyphs have components which themselves are component glyphs: * Abreve * uni1EAE * uni1EB6 * uni1EB6 * uni1EB0 * uni1EB2 * uni1EB4 * uni1EA4 * uni1EAC * uni1EA6 and 233 more. [code: found-nested-components]
WARN: License URL matches License text on name table? * [com.google.fonts/check/name/license_url](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license_url)
--- 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=1, enc=0, name=13] [code: http-in-description] * ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=1, enc=0, 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=1, enc=0, 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=1, enc=0, name=14] [code: http-in-license-info] * ⚠ **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: Font has old ttfautohint applied? * [com.google.fonts/check/old_ttfautohint](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/old_ttfautohint)
--- 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.

* ⚠ **WARN** ttfautohint used in font = 1.8; installed = 1.8.3; Need to re-run with the newer version! [code: old-ttfa]
WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- 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: eth Contours detected: 1 Expected: 2 Glyph name: uni01E5 Contours detected: 4 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni01E9 Contours detected: 3 Expected: 2 Glyph name: uni01F5 Contours detected: 4 Expected: 3 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni200D Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 Glyph name: uni2076 Contours detected: 1 Expected: 2 Glyph name: uni2079 Contours detected: 1 Expected: 2 Glyph name: uni2086 Contours detected: 1 Expected: 2 Glyph name: uni2089 Contours detected: 1 Expected: 2 Glyph name: uni20A8 Contours detected: 2 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: eth Contours detected: 1 Expected: 2 Glyph name: fi Contours detected: 2 Expected: 3 Glyph name: fl Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: uni01E5 Contours detected: 4 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni01E9 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni200D Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 [code: contour-count]
WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** hhea lineGap is not equal to 0. [code: hhea]
WARN: Do outlines contain any jaggy segments? * [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.

* ⚠ **WARN** The following glyphs have jaggy segments: * uni20A6.sc: B<<502.0,514.0>-<547.0,511.0>-<541.0,512.0>>/L<<541.0,512.0>--<584.0,511.0>> = 8.130102354156005 [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines? * [com.google.fonts/check/outline_semi_vertical](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_semi_vertical)
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.

* ⚠ **WARN** The following glyphs have semi-vertical/semi-horizontal lines: * Eng: L<<689.0,527.0>--<688.0,0.0>> * N: L<<689.0,527.0>--<688.0,0.0>> * Nacute: L<<689.0,527.0>--<688.0,0.0>> * Ncaron: L<<689.0,527.0>--<688.0,0.0>> * Ntilde: L<<689.0,527.0>--<688.0,0.0>> * divide: L<<544.0,210.0>--<89.0,207.0>> * divide: L<<89.0,296.0>--<544.0,298.0>> * equal: L<<132.0,196.0>--<587.0,198.0>> * equal: L<<587.0,109.0>--<132.0,106.0>> * four.sc: L<<157.0,220.0>--<291.0,221.0>> and 46 more. [code: found-semi-vertical]

[16] AndadahtOTVar-BoldItalic.ttf
🔥 FAIL: Substitute copyright, registered and trademark symbols in name table entries. * [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
🔥 FAIL: Are there non-ASCII characters in ASCII-only NAME table entries? * [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---

The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).

For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.

Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.

* 🔥 **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]
🔥 FAIL: Copyright notices match canonical pattern in fonts * [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#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 by Carolina Giovagnoli. All rights reserved." [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 by Carolina Giovagnoli. All rights reserved." [code: bad-notice-format]
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries. * [com.google.fonts/check/name/familyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/familyname)
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.

* 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch] * 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch]
🔥 FAIL: Check name table: FULL_FONT_NAME entries. * [com.google.fonts/check/name/fullfontname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/fullfontname) * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var Bold Italic" but got "Andada ht OTVar Bold Italic". [code: bad-entry] * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var Bold Italic" but got "Andada ht OTVar Bold Italic". [code: bad-entry]
🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- 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: Are there caret positions declared for every ligature? * [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets)
--- 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.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_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).

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- 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 1092, but got 1060 instead [code: ascent] * 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 382, but got 290 instead. [code: descent]
🔥 FAIL: Description strings in the name table must not contain copyright info. * [com.google.fonts/check/name/no_copyright_on_description](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/no_copyright_on_description) * 🔥 **FAIL** Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.) [code: copyright-on-description]
🔥 FAIL: Check glyphs do not have components which are themselves components. * [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412

* 🔥 **FAIL** The following glyphs have components which themselves are component glyphs: * Abreve * uni1EAE * uni1EB6 * uni1EB6 * uni1EB0 * uni1EB2 * uni1EB4 * uni1EA4 * uni1EAC * uni1EA6 and 242 more. [code: found-nested-components]
WARN: License URL matches License text on name table? * [com.google.fonts/check/name/license_url](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license_url)
--- 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=1, enc=0, name=13] [code: http-in-description] * ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=1, enc=0, 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=1, enc=0, 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=1, enc=0, name=14] [code: http-in-license-info] * ⚠ **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: Font has old ttfautohint applied? * [com.google.fonts/check/old_ttfautohint](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/old_ttfautohint)
--- 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.

* ⚠ **WARN** ttfautohint used in font = 1.8; installed = 1.8.3; Need to re-run with the newer version! [code: old-ttfa]
WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- 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: numbersign Contours detected: 1 Expected: 2 Glyph name: hcircumflex Contours detected: 1 Expected: 2 Glyph name: uni01D5 Contours detected: 3 Expected: 4 Glyph name: uni01D6 Contours detected: 3 Expected: 4 Glyph name: uni01D7 Contours detected: 3 Expected: 4 Glyph name: uni01D8 Contours detected: 3 Expected: 4 Glyph name: uni01D9 Contours detected: 3 Expected: 4 Glyph name: uni01DA Contours detected: 3 Expected: 4 Glyph name: uni01DB Contours detected: 3 Expected: 4 Glyph name: uni01DC Contours detected: 3 Expected: 4 Glyph name: uni01DE Contours detected: 4 Expected: 5 Glyph name: uni01DF Contours detected: 4 Expected: 5 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni022A Contours detected: 4 Expected: 5 Glyph name: uni022B Contours detected: 4 Expected: 5 Glyph name: uni1E2E Contours detected: 3 Expected: 4 Glyph name: uni1E2F Contours detected: 3 Expected: 4 Glyph name: uni1E4E Contours detected: 4 Expected: 5 Glyph name: uni1E4F Contours detected: 4 Expected: 5 Glyph name: uni1E7A Contours detected: 3 Expected: 4 Glyph name: uni1E7B Contours detected: 3 Expected: 4 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 Glyph name: uni2076 Contours detected: 1 Expected: 2 Glyph name: uni2079 Contours detected: 1 Expected: 2 Glyph name: uni2086 Contours detected: 1 Expected: 2 Glyph name: uni2089 Contours detected: 1 Expected: 2 Glyph name: uni20A8 Contours detected: 2 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: fi Contours detected: 1 Expected: 3 Glyph name: fl Contours detected: 1 Expected: 2 Glyph name: hcircumflex Contours detected: 1 Expected: 2 Glyph name: numbersign Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: uni01D5 Contours detected: 3 Expected: 4 Glyph name: uni01D6 Contours detected: 3 Expected: 4 Glyph name: uni01D7 Contours detected: 3 Expected: 4 Glyph name: uni01D8 Contours detected: 3 Expected: 4 Glyph name: uni01D9 Contours detected: 3 Expected: 4 Glyph name: uni01DA Contours detected: 3 Expected: 4 Glyph name: uni01DB Contours detected: 3 Expected: 4 Glyph name: uni01DC Contours detected: 3 Expected: 4 Glyph name: uni01DE Contours detected: 4 Expected: 5 Glyph name: uni01DF Contours detected: 4 Expected: 5 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni022A Contours detected: 4 Expected: 5 Glyph name: uni022B Contours detected: 4 Expected: 5 Glyph name: uni1E2E Contours detected: 3 Expected: 4 Glyph name: uni1E2F Contours detected: 3 Expected: 4 Glyph name: uni1E4E Contours detected: 4 Expected: 5 Glyph name: uni1E4F Contours detected: 4 Expected: 5 Glyph name: uni1E7A Contours detected: 3 Expected: 4 Glyph name: uni1E7B Contours detected: 3 Expected: 4 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 [code: contour-count]
WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** hhea lineGap is not equal to 0. [code: hhea]
WARN: Do outlines contain any jaggy segments? * [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.

* ⚠ **WARN** The following glyphs have jaggy segments: * aogonek: L<<504.0,26.0>--<397.0,0.0>>/L<<397.0,0.0>--<399.0,0.0>> = 13.65764250581214 * b.caron: B<<256.0,-13.0>-<230.0,-13.0>-<163.0,0.0>>/B<<163.0,0.0>-<170.0,-1.0>-<137.0,4.0>> = 2.8505476560176177 * b: B<<255.0,-13.0>-<229.0,-13.0>-<162.0,0.0>>/B<<162.0,0.0>-<169.0,-1.0>-<136.0,4.0>> = 2.8505476560176177 * eng.sups: B<<199.0,592.0>-<189.0,559.0>-<178.0,509.0>>/B<<178.0,509.0>-<207.0,569.0>-<246.5,609.5>> = 13.388607967099192 * eth.sc: L<<149.0,297.0>--<165.0,402.0>>/B<<165.0,402.0>-<165.0,400.0>-<170.0,458.0>> = 8.664135433108044 * h.sups: B<<220.0,793.0>-<189.0,644.0>-<162.0,485.0>>/B<<162.0,485.0>-<192.0,561.0>-<233.5,605.5>> = 11.903437805607455 * iogonek: L<<288.0,26.0>--<176.0,0.0>>/L<<176.0,0.0>--<177.0,0.0>> = 13.069317896282163 * k.sups: B<<220.0,793.0>-<187.0,646.0>-<163.0,485.0>>/B<<163.0,485.0>-<193.0,559.0>-<236.0,604.5>> = 13.58934758884024 * k: B<<266.0,746.0>-<200.0,413.0>-<178.0,272.0>>/B<<178.0,272.0>-<224.0,381.0>-<289.5,446.0>> = 14.01237434321012 * kgreenlandic.sups: B<<190.5,469.5>-<169.0,419.0>-<160.0,367.0>>/L<<160.0,367.0>--<160.0,371.0>> = 9.819300638757893 and 39 more. [code: found-jaggy-segments]

[20] AndadahtOTVar-ExtraBold.ttf
🔥 FAIL: Substitute copyright, registered and trademark symbols in name table entries. * [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
🔥 FAIL: Are there non-ASCII characters in ASCII-only NAME table entries? * [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---

The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).

For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.

Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.

* 🔥 **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]
🔥 FAIL: Copyright notices match canonical pattern in fonts * [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#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 by Carolina Giovagnoli. All rights reserved." [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 by Carolina Giovagnoli. All rights reserved." [code: bad-notice-format]
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries. * [com.google.fonts/check/name/familyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/familyname)
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.

* 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch] * 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var ExtraBold" but got "Andada ht OTVar ExtraBold". [code: mismatch]
🔥 FAIL: Check name table: FULL_FONT_NAME entries. * [com.google.fonts/check/name/fullfontname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/fullfontname) * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var ExtraBold" but got "Andada ht OTVar ExtraBold". [code: bad-entry] * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var ExtraBold" but got "Andada ht OTVar ExtraBold". [code: bad-entry]
🔥 FAIL: Check name table: TYPOGRAPHIC_FAMILY_NAME entries. * [com.google.fonts/check/name/typographicfamilyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/typographicfamilyname) * 🔥 **FAIL** Entry [TYPOGRAPHIC_FAMILY_NAME(16):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: non-ribbi-bad-value]
🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- 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: Are there caret positions declared for every ligature? * [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets)
--- 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.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_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).

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- 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 1092, but got 1060 instead [code: ascent] * 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 382, but got 290 instead. [code: descent]
🔥 FAIL: Description strings in the name table must not contain copyright info. * [com.google.fonts/check/name/no_copyright_on_description](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/no_copyright_on_description) * 🔥 **FAIL** Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.) [code: copyright-on-description]
🔥 FAIL: Space and non-breaking space have the same width? * [com.google.fonts/check/whitespace_widths](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hmtx.html#com.google.fonts/check/whitespace_widths) * 🔥 **FAIL** Space and non-breaking space have differing width: The space glyph named space is 189 font units wide, non-breaking space named (uni00A0) is 183 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width. [code: different-widths]
🔥 FAIL: Check glyphs do not have components which are themselves components. * [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412

* 🔥 **FAIL** The following glyphs have components which themselves are component glyphs: * Abreve * uni1EAE * uni1EB6 * uni1EB6 * uni1EB0 * uni1EB2 * uni1EB4 * uni1EA4 * uni1EAC * uni1EA6 and 233 more. [code: found-nested-components]
WARN: License URL matches License text on name table? * [com.google.fonts/check/name/license_url](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license_url)
--- 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=1, enc=0, name=13] [code: http-in-description] * ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=1, enc=0, 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=1, enc=0, 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=1, enc=0, name=14] [code: http-in-license-info] * ⚠ **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: Font has old ttfautohint applied? * [com.google.fonts/check/old_ttfautohint](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/old_ttfautohint)
--- 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.

* ⚠ **WARN** ttfautohint used in font = 1.8; installed = 1.8.3; Need to re-run with the newer version! [code: old-ttfa]
WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- 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: eth Contours detected: 1 Expected: 2 Glyph name: uni01E5 Contours detected: 4 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni01E9 Contours detected: 3 Expected: 2 Glyph name: uni01F5 Contours detected: 4 Expected: 3 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni200D Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 Glyph name: uni2076 Contours detected: 1 Expected: 2 Glyph name: uni2079 Contours detected: 1 Expected: 2 Glyph name: uni2086 Contours detected: 1 Expected: 2 Glyph name: uni2089 Contours detected: 1 Expected: 2 Glyph name: uni20A8 Contours detected: 2 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: eth Contours detected: 1 Expected: 2 Glyph name: fi Contours detected: 2 Expected: 3 Glyph name: fl Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: uni01E5 Contours detected: 4 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni01E9 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni200D Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 [code: contour-count]
WARN: Combined length of family and style must not exceed 27 characters. * [com.google.fonts/check/name/family_and_style_max_length](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/family_and_style_max_length)
--- Rationale ---

According to a GlyphsApp tutorial [1], in order to make sure all versions of
Windows recognize it as a valid font file, we must make sure that the
concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and style
(NameID.FONT_SUBFAMILY_NAME) strings in the name table do not exceed 20
characters.

After discussing the problem in more detail at `FontBakery issue #2179 [2] we
decided that allowing up to 27 chars would still be on the safe side, though.

[1]
https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances
[2] https://github.com/googlefonts/fontbakery/issues/2179

* ⚠ **WARN** The combined length of family and style exceeds 27 chars in the following 'WINDOWS' entries: FONT_FAMILY_NAME = 'Andada ht OTVar ExtraBold' / SUBFAMILY_NAME = 'Regular' Please take a look at the conversation at https://github.com/googlefonts/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]
WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** hhea lineGap is not equal to 0. [code: hhea]
WARN: Do outlines contain any jaggy segments? * [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.

* ⚠ **WARN** The following glyphs have jaggy segments: * uni20AD.sc: B<<601.0,433.0>-<559.0,394.0>-<562.0,397.0>>/L<<562.0,397.0>--<478.0,287.0>> = 7.6333305872313115 and x.ss02: B<<158.0,430.0>-<150.0,441.0>-<128.0,465.0>>/B<<128.0,465.0>-<129.0,464.0>-<109.0,487.0>> = 2.489552921999128 [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines? * [com.google.fonts/check/outline_semi_vertical](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_semi_vertical)
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.

* ⚠ **WARN** The following glyphs have semi-vertical/semi-horizontal lines: * Eng: L<<699.0,521.0>--<698.0,0.0>> * N: L<<699.0,521.0>--<698.0,0.0>> * Nacute: L<<699.0,521.0>--<698.0,0.0>> * Ncaron: L<<699.0,521.0>--<698.0,0.0>> * Ntilde: L<<699.0,521.0>--<698.0,0.0>> * divide.numr: L<<61.0,502.0>--<358.0,501.0>> * divide.sups: L<<47.0,532.0>--<344.0,531.0>> * divide: L<<88.0,304.0>--<543.0,305.0>> * four.sc: L<<165.0,224.0>--<286.0,225.0>> * h.sc: L<<251.0,300.0>--<484.0,302.0>> and 48 more. [code: found-semi-vertical]

[18] AndadahtOTVar-ExtraBoldItalic.ttf
🔥 FAIL: Substitute copyright, registered and trademark symbols in name table entries. * [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
🔥 FAIL: Are there non-ASCII characters in ASCII-only NAME table entries? * [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---

The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).

For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.

Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.

* 🔥 **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]
🔥 FAIL: Copyright notices match canonical pattern in fonts * [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#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 by Carolina Giovagnoli. All rights reserved." [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 by Carolina Giovagnoli. All rights reserved." [code: bad-notice-format]
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries. * [com.google.fonts/check/name/familyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/familyname)
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.

* 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch] * 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var ExtraBold" but got "Andada ht OTVar ExtraBold". [code: mismatch]
🔥 FAIL: Check name table: FULL_FONT_NAME entries. * [com.google.fonts/check/name/fullfontname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/fullfontname) * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var ExtraBold Italic" but got "Andada ht OTVar ExtraBold Italic". [code: bad-entry] * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var ExtraBold Italic" but got "Andada ht OTVar ExtraBold Italic". [code: bad-entry]
🔥 FAIL: Check name table: TYPOGRAPHIC_FAMILY_NAME entries. * [com.google.fonts/check/name/typographicfamilyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/typographicfamilyname) * 🔥 **FAIL** Entry [TYPOGRAPHIC_FAMILY_NAME(16):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: non-ribbi-bad-value]
🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- 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: Are there caret positions declared for every ligature? * [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets)
--- 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.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_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).

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- 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 1092, but got 1060 instead [code: ascent] * 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 382, but got 290 instead. [code: descent]
🔥 FAIL: Description strings in the name table must not contain copyright info. * [com.google.fonts/check/name/no_copyright_on_description](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/no_copyright_on_description) * 🔥 **FAIL** Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.) [code: copyright-on-description]
🔥 FAIL: Check glyphs do not have components which are themselves components. * [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412

* 🔥 **FAIL** The following glyphs have components which themselves are component glyphs: * Abreve * uni1EAE * uni1EB6 * uni1EB6 * uni1EB0 * uni1EB2 * uni1EB4 * uni1EA4 * uni1EAC * uni1EA6 and 242 more. [code: found-nested-components]
WARN: License URL matches License text on name table? * [com.google.fonts/check/name/license_url](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license_url)
--- 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=1, enc=0, name=13] [code: http-in-description] * ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=1, enc=0, 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=1, enc=0, 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=1, enc=0, name=14] [code: http-in-license-info] * ⚠ **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: Font has old ttfautohint applied? * [com.google.fonts/check/old_ttfautohint](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/old_ttfautohint)
--- 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.

* ⚠ **WARN** ttfautohint used in font = 1.8; installed = 1.8.3; Need to re-run with the newer version! [code: old-ttfa]
WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- 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: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 Glyph name: uni2076 Contours detected: 1 Expected: 2 Glyph name: uni2079 Contours detected: 1 Expected: 2 Glyph name: uni2086 Contours detected: 1 Expected: 2 Glyph name: uni2089 Contours detected: 1 Expected: 2 Glyph name: uni20A8 Contours detected: 2 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: fi Contours detected: 1 Expected: 3 Glyph name: fl Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 [code: contour-count]
WARN: Combined length of family and style must not exceed 27 characters. * [com.google.fonts/check/name/family_and_style_max_length](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/family_and_style_max_length)
--- Rationale ---

According to a GlyphsApp tutorial [1], in order to make sure all versions of
Windows recognize it as a valid font file, we must make sure that the
concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and style
(NameID.FONT_SUBFAMILY_NAME) strings in the name table do not exceed 20
characters.

After discussing the problem in more detail at `FontBakery issue #2179 [2] we
decided that allowing up to 27 chars would still be on the safe side, though.

[1]
https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances
[2] https://github.com/googlefonts/fontbakery/issues/2179

* ⚠ **WARN** The combined length of family and style exceeds 27 chars in the following 'MACINTOSH' entries: FONT_FAMILY_NAME = 'Andada ht OTVar' / SUBFAMILY_NAME = 'ExtraBold Italic' Please take a look at the conversation at https://github.com/googlefonts/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long] * ⚠ **WARN** The combined length of family and style exceeds 27 chars in the following 'WINDOWS' entries: FONT_FAMILY_NAME = 'Andada ht OTVar ExtraBold' / SUBFAMILY_NAME = 'Italic' Please take a look at the conversation at https://github.com/googlefonts/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]
WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** hhea lineGap is not equal to 0. [code: hhea]
WARN: Do outlines contain any jaggy segments? * [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.

* ⚠ **WARN** The following glyphs have jaggy segments: * T_h: B<<758.0,487.0>-<732.0,352.0>-<717.0,257.0>>/B<<717.0,257.0>-<764.0,372.0>-<829.0,442.0>> = 13.256994476341381 * Th: B<<758.0,487.0>-<732.0,352.0>-<717.0,257.0>>/B<<717.0,257.0>-<764.0,372.0>-<829.0,442.0>> = 13.256994476341381 * a.sups: B<<235.0,355.0>-<260.0,431.0>-<269.0,472.0>>/B<<269.0,472.0>-<237.0,404.0>-<195.0,362.0>> = 12.820366716667863 * a: B<<329.0,118.5>-<344.0,169.0>-<353.0,217.0>>/B<<353.0,217.0>-<306.0,114.0>-<243.0,50.0>> = 13.908065204102954 * aacute: B<<329.0,118.5>-<344.0,169.0>-<353.0,217.0>>/B<<353.0,217.0>-<306.0,114.0>-<243.0,50.0>> = 13.908065204102954 * abreve: B<<329.0,118.5>-<344.0,169.0>-<353.0,217.0>>/B<<353.0,217.0>-<306.0,114.0>-<243.0,50.0>> = 13.908065204102954 * acircumflex: B<<329.0,118.5>-<344.0,169.0>-<353.0,217.0>>/B<<353.0,217.0>-<306.0,114.0>-<243.0,50.0>> = 13.908065204102954 * adieresis: B<<329.0,118.5>-<344.0,169.0>-<353.0,217.0>>/B<<353.0,217.0>-<306.0,114.0>-<243.0,50.0>> = 13.908065204102954 * agrave: B<<329.0,118.5>-<344.0,169.0>-<353.0,217.0>>/B<<353.0,217.0>-<306.0,114.0>-<243.0,50.0>> = 13.908065204102954 * amacron: B<<329.0,118.5>-<344.0,169.0>-<353.0,217.0>>/B<<353.0,217.0>-<306.0,114.0>-<243.0,50.0>> = 13.908065204102954 and 103 more. [code: found-jaggy-segments]

[16] AndadahtOTVar-Italic.ttf
🔥 FAIL: Substitute copyright, registered and trademark symbols in name table entries. * [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
🔥 FAIL: Are there non-ASCII characters in ASCII-only NAME table entries? * [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---

The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).

For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.

Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.

* 🔥 **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]
🔥 FAIL: Copyright notices match canonical pattern in fonts * [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#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 by Carolina Giovagnoli. All rights reserved." [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 by Carolina Giovagnoli. All rights reserved." [code: bad-notice-format]
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries. * [com.google.fonts/check/name/familyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/familyname)
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.

* 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch] * 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch]
🔥 FAIL: Check name table: FULL_FONT_NAME entries. * [com.google.fonts/check/name/fullfontname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/fullfontname) * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var Italic" but got "Andada ht OTVar Italic". [code: bad-entry] * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var Italic" but got "Andada ht OTVar Italic". [code: bad-entry]
🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- 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: Are there caret positions declared for every ligature? * [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets)
--- 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.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_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).

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- 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 1092, but got 1060 instead [code: ascent] * 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 382, but got 290 instead. [code: descent]
🔥 FAIL: Description strings in the name table must not contain copyright info. * [com.google.fonts/check/name/no_copyright_on_description](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/no_copyright_on_description) * 🔥 **FAIL** Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.) [code: copyright-on-description]
🔥 FAIL: Check glyphs do not have components which are themselves components. * [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412

* 🔥 **FAIL** The following glyphs have components which themselves are component glyphs: * Abreve * uni1EAE * uni1EB6 * uni1EB6 * uni1EB0 * uni1EB2 * uni1EB4 * uni1EA4 * uni1EAC * uni1EA6 and 242 more. [code: found-nested-components]
WARN: License URL matches License text on name table? * [com.google.fonts/check/name/license_url](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license_url)
--- 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=1, enc=0, name=13] [code: http-in-description] * ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=1, enc=0, 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=1, enc=0, 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=1, enc=0, name=14] [code: http-in-license-info] * ⚠ **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: Font has old ttfautohint applied? * [com.google.fonts/check/old_ttfautohint](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/old_ttfautohint)
--- 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.

* ⚠ **WARN** ttfautohint used in font = 1.8; installed = 1.8.3; Need to re-run with the newer version! [code: old-ttfa]
WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- 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: ampersand Contours detected: 4 Expected: 1, 2 or 3 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 Glyph name: uni2076 Contours detected: 1 Expected: 2 Glyph name: uni2079 Contours detected: 1 Expected: 2 Glyph name: uni2086 Contours detected: 1 Expected: 2 Glyph name: uni2089 Contours detected: 1 Expected: 2 Glyph name: uni20A8 Contours detected: 2 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: ampersand Contours detected: 4 Expected: 1, 2 or 3 Glyph name: fi Contours detected: 2 Expected: 3 Glyph name: fl Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 [code: contour-count]
WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** hhea lineGap is not equal to 0. [code: hhea]
WARN: Do outlines contain any jaggy segments? * [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.

* ⚠ **WARN** The following glyphs have jaggy segments: * Aogonek: L<<623.0,0.0>--<526.0,0.0>>/L<<526.0,0.0>--<531.0,-1.0>> = 11.309932474020195 * C.ss02: L<<577.0,51.0>--<538.0,42.0>>/L<<538.0,42.0>--<640.0,42.0>> = 12.994616791916512 * D.ss02: B<<540.5,113.0>-<480.0,62.0>-<399.0,42.0>>/L<<399.0,42.0>--<670.0,42.0>> = 13.869686438505045 * Q: B<<641.0,146.5>-<571.0,32.0>-<442.0,-2.0>>/L<<442.0,-2.0>--<446.0,-1.0>> = 0.7291796420016551 * Q: L<<374.0,-14.0>--<381.0,-13.0>>/B<<381.0,-13.0>-<351.0,-15.0>-<336.0,-15.0>> = 4.316027519865671 * ampersand: B<<176.0,259.0>-<210.0,266.0>-<240.0,274.0>>/L<<240.0,274.0>--<176.0,259.0>> = 1.7408064659305946 * ampersand: B<<450.0,415.0>-<450.0,373.0>-<382.0,324.0>>/B<<382.0,324.0>-<470.0,361.0>-<544.0,407.0>> = 12.97153724657358 * ampersand: L<<240.0,274.0>--<176.0,259.0>>/B<<176.0,259.0>-<210.0,266.0>-<240.0,274.0>> = 1.5569767132664136 * bracketleft.numr: B<<77.0,296.0>-<88.0,367.0>-<88.0,364.0>>/L<<88.0,364.0>--<124.0,658.0>> = 6.981057406829782 * bracketleft: L<<85.0,-83.0>--<103.0,20.0>>/B<<103.0,20.0>-<100.0,7.0>-<121.0,120.0>> = 3.0818653451926576 and 43 more. [code: found-jaggy-segments]

[20] AndadahtOTVar-Medium.ttf
🔥 FAIL: Substitute copyright, registered and trademark symbols in name table entries. * [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
🔥 FAIL: Are there non-ASCII characters in ASCII-only NAME table entries? * [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---

The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).

For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.

Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.

* 🔥 **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]
🔥 FAIL: Copyright notices match canonical pattern in fonts * [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#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 by Carolina Giovagnoli. All rights reserved." [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 by Carolina Giovagnoli. All rights reserved." [code: bad-notice-format]
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries. * [com.google.fonts/check/name/familyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/familyname)
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.

* 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch] * 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var Medium" but got "Andada ht OTVar Medium". [code: mismatch]
🔥 FAIL: Check name table: FULL_FONT_NAME entries. * [com.google.fonts/check/name/fullfontname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/fullfontname) * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var Medium" but got "Andada ht OTVar Medium". [code: bad-entry] * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var Medium" but got "Andada ht OTVar Medium". [code: bad-entry]
🔥 FAIL: Check name table: TYPOGRAPHIC_FAMILY_NAME entries. * [com.google.fonts/check/name/typographicfamilyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/typographicfamilyname) * 🔥 **FAIL** Entry [TYPOGRAPHIC_FAMILY_NAME(16):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: non-ribbi-bad-value]
🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- 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: Are there caret positions declared for every ligature? * [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets)
--- 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.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_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).

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- 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 1092, but got 1060 instead [code: ascent] * 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 382, but got 290 instead. [code: descent]
🔥 FAIL: Description strings in the name table must not contain copyright info. * [com.google.fonts/check/name/no_copyright_on_description](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/no_copyright_on_description) * 🔥 **FAIL** Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.) [code: copyright-on-description]
🔥 FAIL: Space and non-breaking space have the same width? * [com.google.fonts/check/whitespace_widths](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hmtx.html#com.google.fonts/check/whitespace_widths) * 🔥 **FAIL** Space and non-breaking space have differing width: The space glyph named space is 216 font units wide, non-breaking space named (uni00A0) is 210 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width. [code: different-widths]
🔥 FAIL: Check glyphs do not have components which are themselves components. * [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412

* 🔥 **FAIL** The following glyphs have components which themselves are component glyphs: * Abreve * uni1EAE * uni1EB6 * uni1EB6 * uni1EB0 * uni1EB2 * uni1EB4 * uni1EA4 * uni1EAC * uni1EA6 and 233 more. [code: found-nested-components]
WARN: License URL matches License text on name table? * [com.google.fonts/check/name/license_url](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license_url)
--- 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=1, enc=0, name=13] [code: http-in-description] * ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=1, enc=0, 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=1, enc=0, 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=1, enc=0, name=14] [code: http-in-license-info] * ⚠ **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: Font has old ttfautohint applied? * [com.google.fonts/check/old_ttfautohint](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/old_ttfautohint)
--- 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.

* ⚠ **WARN** ttfautohint used in font = 1.8; installed = 1.8.3; Need to re-run with the newer version! [code: old-ttfa]
WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- 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: eth Contours detected: 1 Expected: 2 Glyph name: uni01E5 Contours detected: 4 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni01E9 Contours detected: 3 Expected: 2 Glyph name: uni01F5 Contours detected: 4 Expected: 3 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni200D Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 Glyph name: uni2076 Contours detected: 1 Expected: 2 Glyph name: uni2079 Contours detected: 1 Expected: 2 Glyph name: uni2086 Contours detected: 1 Expected: 2 Glyph name: uni2089 Contours detected: 1 Expected: 2 Glyph name: uni20A8 Contours detected: 2 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: eth Contours detected: 1 Expected: 2 Glyph name: fi Contours detected: 2 Expected: 3 Glyph name: fl Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: uni01E5 Contours detected: 4 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni01E9 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni200D Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 [code: contour-count]
WARN: Combined length of family and style must not exceed 27 characters. * [com.google.fonts/check/name/family_and_style_max_length](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/family_and_style_max_length)
--- Rationale ---

According to a GlyphsApp tutorial [1], in order to make sure all versions of
Windows recognize it as a valid font file, we must make sure that the
concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and style
(NameID.FONT_SUBFAMILY_NAME) strings in the name table do not exceed 20
characters.

After discussing the problem in more detail at `FontBakery issue #2179 [2] we
decided that allowing up to 27 chars would still be on the safe side, though.

[1]
https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances
[2] https://github.com/googlefonts/fontbakery/issues/2179

* ⚠ **WARN** The combined length of family and style exceeds 27 chars in the following 'WINDOWS' entries: FONT_FAMILY_NAME = 'Andada ht OTVar Medium' / SUBFAMILY_NAME = 'Regular' Please take a look at the conversation at https://github.com/googlefonts/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]
WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** hhea lineGap is not equal to 0. [code: hhea]
WARN: Do outlines contain any jaggy segments? * [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.

* ⚠ **WARN** The following glyphs have jaggy segments: * C.ss02: L<<617.0,51.0>--<595.0,46.0>>/L<<595.0,46.0>--<736.0,46.0>> = 12.80426606528674 * C.ss02: L<<737.0,656.0>--<588.0,656.0>>/L<<588.0,656.0>--<608.0,651.0>> = 14.036243467926484 * c.ss02: L<<632.0,495.0>--<509.0,495.0>>/L<<509.0,495.0>--<513.0,494.0>> = 14.036243467926484 * eng.sups: L<<152.0,622.0>--<158.0,580.0>>/L<<158.0,580.0>--<158.0,581.0>> = 8.13010235415596 * uni2733: B<<657.0,570.0>-<614.0,533.0>-<616.0,535.0>>/B<<616.0,535.0>-<500.0,439.0>-<466.0,405.0>> = 5.389311759973354 and uniA78C.sups: L<<79.0,487.0>--<87.0,602.0>>/B<<87.0,602.0>-<87.0,601.0>-<79.0,661.0>> = 3.9793824526782355 [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines? * [com.google.fonts/check/outline_semi_vertical](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_semi_vertical)
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.

* ⚠ **WARN** The following glyphs have semi-vertical/semi-horizontal lines: * Eng: L<<672.0,536.0>--<671.0,0.0>> * N: L<<672.0,536.0>--<671.0,0.0>> * Nacute: L<<672.0,536.0>--<671.0,0.0>> * Napostrophe: L<<729.0,535.0>--<728.0,0.0>> * Ncaron: L<<672.0,536.0>--<671.0,0.0>> * Ntilde: L<<672.0,536.0>--<671.0,0.0>> * divide.numr: L<<348.0,429.0>--<64.0,427.0>> * divide.numr: L<<64.0,484.0>--<348.0,485.0>> * divide.sups: L<<334.0,459.0>--<50.0,457.0>> * divide.sups: L<<50.0,514.0>--<334.0,515.0>> and 46 more. [code: found-semi-vertical]

[18] AndadahtOTVar-MediumItalic.ttf
🔥 FAIL: Substitute copyright, registered and trademark symbols in name table entries. * [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
🔥 FAIL: Are there non-ASCII characters in ASCII-only NAME table entries? * [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---

The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).

For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.

Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.

* 🔥 **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]
🔥 FAIL: Copyright notices match canonical pattern in fonts * [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#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 by Carolina Giovagnoli. All rights reserved." [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 by Carolina Giovagnoli. All rights reserved." [code: bad-notice-format]
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries. * [com.google.fonts/check/name/familyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/familyname)
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.

* 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch] * 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var Medium" but got "Andada ht OTVar Medium". [code: mismatch]
🔥 FAIL: Check name table: FULL_FONT_NAME entries. * [com.google.fonts/check/name/fullfontname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/fullfontname) * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var Medium Italic" but got "Andada ht OTVar Medium Italic". [code: bad-entry] * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var Medium Italic" but got "Andada ht OTVar Medium Italic". [code: bad-entry]
🔥 FAIL: Check name table: TYPOGRAPHIC_FAMILY_NAME entries. * [com.google.fonts/check/name/typographicfamilyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/typographicfamilyname) * 🔥 **FAIL** Entry [TYPOGRAPHIC_FAMILY_NAME(16):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: non-ribbi-bad-value]
🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- 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: Are there caret positions declared for every ligature? * [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets)
--- 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.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_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).

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- 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 1092, but got 1060 instead [code: ascent] * 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 382, but got 290 instead. [code: descent]
🔥 FAIL: Description strings in the name table must not contain copyright info. * [com.google.fonts/check/name/no_copyright_on_description](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/no_copyright_on_description) * 🔥 **FAIL** Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.) [code: copyright-on-description]
🔥 FAIL: Check glyphs do not have components which are themselves components. * [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412

* 🔥 **FAIL** The following glyphs have components which themselves are component glyphs: * Abreve * uni1EAE * uni1EB6 * uni1EB6 * uni1EB0 * uni1EB2 * uni1EB4 * uni1EA4 * uni1EAC * uni1EA6 and 242 more. [code: found-nested-components]
WARN: License URL matches License text on name table? * [com.google.fonts/check/name/license_url](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license_url)
--- 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=1, enc=0, name=13] [code: http-in-description] * ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=1, enc=0, 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=1, enc=0, 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=1, enc=0, name=14] [code: http-in-license-info] * ⚠ **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: Font has old ttfautohint applied? * [com.google.fonts/check/old_ttfautohint](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/old_ttfautohint)
--- 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.

* ⚠ **WARN** ttfautohint used in font = 1.8; installed = 1.8.3; Need to re-run with the newer version! [code: old-ttfa]
WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- 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: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 Glyph name: uni2076 Contours detected: 1 Expected: 2 Glyph name: uni2079 Contours detected: 1 Expected: 2 Glyph name: uni2086 Contours detected: 1 Expected: 2 Glyph name: uni2089 Contours detected: 1 Expected: 2 Glyph name: uni20A8 Contours detected: 2 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: fi Contours detected: 2 Expected: 3 Glyph name: fl Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 [code: contour-count]
WARN: Combined length of family and style must not exceed 27 characters. * [com.google.fonts/check/name/family_and_style_max_length](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/family_and_style_max_length)
--- Rationale ---

According to a GlyphsApp tutorial [1], in order to make sure all versions of
Windows recognize it as a valid font file, we must make sure that the
concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and style
(NameID.FONT_SUBFAMILY_NAME) strings in the name table do not exceed 20
characters.

After discussing the problem in more detail at `FontBakery issue #2179 [2] we
decided that allowing up to 27 chars would still be on the safe side, though.

[1]
https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances
[2] https://github.com/googlefonts/fontbakery/issues/2179

* ⚠ **WARN** The combined length of family and style exceeds 27 chars in the following 'MACINTOSH' entries: FONT_FAMILY_NAME = 'Andada ht OTVar' / SUBFAMILY_NAME = 'Medium Italic' Please take a look at the conversation at https://github.com/googlefonts/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long] * ⚠ **WARN** The combined length of family and style exceeds 27 chars in the following 'WINDOWS' entries: FONT_FAMILY_NAME = 'Andada ht OTVar Medium' / SUBFAMILY_NAME = 'Italic' Please take a look at the conversation at https://github.com/googlefonts/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]
WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** hhea lineGap is not equal to 0. [code: hhea]
WARN: Do outlines contain any jaggy segments? * [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.

* ⚠ **WARN** The following glyphs have jaggy segments: * C.ss02: L<<583.0,51.0>--<561.0,46.0>>/L<<561.0,46.0>--<651.0,46.0>> = 12.80426606528674 * eightspokedasterisk.sc: B<<35.0,311.0>-<110.0,302.0>-<103.0,303.0>>/B<<103.0,303.0>-<139.0,299.0>-<171.0,295.5>> = 1.7899106082458724 * h.sups: B<<207.0,780.0>-<173.0,611.0>-<153.0,492.0>>/B<<153.0,492.0>-<179.0,556.0>-<219.0,598.0>> = 12.569066538908992 * k.sups: B<<207.0,780.0>-<173.0,615.0>-<153.0,488.0>>/B<<153.0,488.0>-<182.0,557.0>-<222.5,598.5>> = 13.847063383733696 * kgreenlandic.sups: B<<186.5,585.5>-<176.0,553.0>-<166.0,500.0>>/B<<166.0,500.0>-<195.0,564.0>-<234.0,602.0>> = 13.691556216672062 * kgreenlandic: B<<220.0,277.5>-<184.0,207.0>-<165.0,123.0>>/L<<165.0,123.0>--<165.0,127.0>> = 12.74528947313286 * kgreenlandic: L<<165.0,123.0>--<165.0,127.0>>/L<<165.0,127.0>--<148.0,5.0>> = 7.932758314172071 * m.sups: B<<185.0,582.0>-<173.0,546.0>-<162.0,492.0>>/B<<162.0,492.0>-<189.0,552.0>-<228.5,596.0>> = 12.71391413346714 * m.sups: B<<361.0,588.0>-<361.0,561.0>-<349.0,518.0>>/B<<349.0,518.0>-<419.0,640.0>-<490.0,640.0>> = 14.253121010421017 * n.sups: B<<199.0,624.0>-<173.0,545.0>-<163.0,494.0>>/B<<163.0,494.0>-<190.0,554.0>-<229.5,597.0>> = 13.134022306396298 and 9 more. [code: found-jaggy-segments]

[18] AndadahtOTVar-Regular.ttf
🔥 FAIL: Substitute copyright, registered and trademark symbols in name table entries. * [com.google.fonts/check/name/unwanted_chars](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/unwanted_chars) * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars] * 🔥 **FAIL** NAMEID #0 contains symbols that should be replaced by '(c)'. [code: unwanted-chars]
🔥 FAIL: Are there non-ASCII characters in ASCII-only NAME table entries? * [com.google.fonts/check/name/ascii_only_entries](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/ascii_only_entries)
--- Rationale ---

The OpenType spec requires ASCII for the POSTSCRIPT_NAME (nameID 6).

For COPYRIGHT_NOTICE (nameID 0) ASCII is required because that string should be
the same in CFF fonts which also have this requirement in the OpenType spec.

Note:
A common place where we find non-ASCII strings is on name table entries with
NameID > 18, which are expressly for localising the ASCII-only IDs into Hindi /
Arabic / etc.

* 🔥 **FAIL** Bad string at [nameID 0, 'mac_roman']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright © 2019 by Carolina Giovagnoli. All rights reserved.'' [code: bad-string] * 🔥 **FAIL** There are 2 strings containing non-ASCII characters in the ASCII-only NAME table entries. [code: non-ascii-strings]
🔥 FAIL: Copyright notices match canonical pattern in fonts * [com.google.fonts/check/font_copyright](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#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 by Carolina Giovagnoli. All rights reserved." [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 by Carolina Giovagnoli. All rights reserved." [code: bad-notice-format]
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries. * [com.google.fonts/check/name/familyname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/familyname)
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.

* 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch] * 🔥 **FAIL** Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var" but got "Andada ht OTVar". [code: mismatch]
🔥 FAIL: Check name table: FULL_FONT_NAME entries. * [com.google.fonts/check/name/fullfontname](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/fullfontname) * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):MACINTOSH(1)] on the "name" table: Expected "Andadaht OT Var Regular" but got "Andada ht OTVar Regular". [code: bad-entry] * 🔥 **FAIL** Entry [FULL_FONT_NAME(4):WINDOWS(3)] on the "name" table: Expected "Andadaht OT Var Regular" but got "Andada ht OTVar Regular". [code: bad-entry]
🔥 FAIL: PPEM must be an integer on hinted fonts. * [com.google.fonts/check/integer_ppem_if_hinted](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/integer_ppem_if_hinted)
--- 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: Are there caret positions declared for every ligature? * [com.google.fonts/check/ligature_carets](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/ligature_carets)
--- 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.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_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).

* 🔥 **FAIL** Failed to lookup ligatures. This font file seems to be malformed. For more info, read: https://github.com/googlefonts/fontbakery/issues/1596 [code: malformed]
🔥 FAIL: Checking OS/2 usWinAscent & usWinDescent. * [com.google.fonts/check/family/win_ascent_and_descent](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/family/win_ascent_and_descent)
--- 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 1092, but got 1060 instead [code: ascent] * 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 382, but got 290 instead. [code: descent]
🔥 FAIL: Description strings in the name table must not contain copyright info. * [com.google.fonts/check/name/no_copyright_on_description](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/name.html#com.google.fonts/check/name/no_copyright_on_description) * 🔥 **FAIL** Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.) [code: copyright-on-description]
🔥 FAIL: Space and non-breaking space have the same width? * [com.google.fonts/check/whitespace_widths](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hmtx.html#com.google.fonts/check/whitespace_widths) * 🔥 **FAIL** Space and non-breaking space have differing width: The space glyph named space is 224 font units wide, non-breaking space named (uni00A0) is 218 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width. [code: different-widths]
🔥 FAIL: Check glyphs do not have components which are themselves components. * [com.google.fonts/check/glyf_nested_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_nested_components)
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412

* 🔥 **FAIL** The following glyphs have components which themselves are component glyphs: * Abreve * uni1EAE * uni1EB6 * uni1EB6 * uni1EB0 * uni1EB2 * uni1EB4 * uni1EA4 * uni1EAC * uni1EA6 and 233 more. [code: found-nested-components]
WARN: License URL matches License text on name table? * [com.google.fonts/check/name/license_url](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/license_url)
--- 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=1, enc=0, name=13] [code: http-in-description] * ⚠ **WARN** Please consider using HTTPS URLs at name table entry [plat=1, enc=0, 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=1, enc=0, 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=1, enc=0, name=14] [code: http-in-license-info] * ⚠ **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: Font has old ttfautohint applied? * [com.google.fonts/check/old_ttfautohint](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/old_ttfautohint)
--- 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.

* ⚠ **WARN** ttfautohint used in font = 1.8; installed = 1.8.3; Need to re-run with the newer version! [code: old-ttfa]
WARN: Check if each glyph has the recommended amount of contours. * [com.google.fonts/check/contour_count](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/contour_count)
--- 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: eth Contours detected: 1 Expected: 2 Glyph name: uni01E5 Contours detected: 4 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni01E9 Contours detected: 3 Expected: 2 Glyph name: uni01F5 Contours detected: 4 Expected: 3 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni200D Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 Glyph name: uni2076 Contours detected: 1 Expected: 2 Glyph name: uni2079 Contours detected: 1 Expected: 2 Glyph name: uni2086 Contours detected: 1 Expected: 2 Glyph name: uni2089 Contours detected: 1 Expected: 2 Glyph name: uni20A8 Contours detected: 2 Expected: 3 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: eth Contours detected: 1 Expected: 2 Glyph name: fi Contours detected: 2 Expected: 3 Glyph name: fl Contours detected: 1 Expected: 2 Glyph name: partialdiff Contours detected: 1 Expected: 2 Glyph name: uni01E5 Contours detected: 4 Expected: 2 Glyph name: uni01E8 Contours detected: 3 Expected: 2 Glyph name: uni01E9 Contours detected: 3 Expected: 2 Glyph name: uni200C Contours detected: 1 Expected: 0 Glyph name: uni200D Contours detected: 1 Expected: 0 Glyph name: uni2010 Contours detected: 2 Expected: 1 [code: contour-count]
WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** hhea lineGap is not equal to 0. [code: hhea]
WARN: Do outlines contain any jaggy segments? * [com.google.fonts/check/outline_jaggy_segments](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_jaggy_segments)
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.

* ⚠ **WARN** The following glyphs have jaggy segments: * C.ss02: L<<615.0,51.0>--<575.0,42.0>>/L<<575.0,42.0>--<729.0,42.0>> = 12.680383491819825 * C.ss02: L<<728.0,659.0>--<574.0,659.0>>/L<<574.0,659.0>--<606.0,651.0>> = 14.036243467926484 * D.ss02: B<<589.0,151.0>-<529.0,69.0>-<421.0,42.0>>/L<<421.0,42.0>--<752.0,42.0>> = 14.036243467926484 * ampersand.sc: B<<419.0,91.0>-<365.0,139.0>-<367.0,137.0>>/B<<367.0,137.0>-<292.0,202.0>-<237.0,253.0>> = 4.085616779974799 * c.ss02: L<<519.0,38.0>--<514.0,37.0>>/L<<514.0,37.0>--<625.0,37.0>> = 11.309932474020195 * c.ss02: L<<625.0,497.0>--<499.0,497.0>>/L<<499.0,497.0>--<511.0,494.0>> = 14.036243467926484 * iogonek: L<<282.0,0.0>--<184.0,1.0>>/L<<184.0,1.0>--<188.0,0.0>> = 13.451612947221276 and x.sups: L<<164.0,482.0>--<124.0,535.0>>/B<<124.0,535.0>-<126.0,533.0>-<77.0,588.0>> = 7.957525226917082 [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines? * [com.google.fonts/check/outline_semi_vertical](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/.html#com.google.fonts/check/outline_semi_vertical)
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.

* ⚠ **WARN** The following glyphs have semi-vertical/semi-horizontal lines: * Eng: L<<663.0,540.0>--<662.0,0.0>> * N: L<<663.0,540.0>--<662.0,0.0>> * Nacute: L<<663.0,540.0>--<662.0,0.0>> * Napostrophe: L<<738.0,541.0>--<737.0,0.0>> * Ncaron: L<<663.0,540.0>--<662.0,0.0>> * Ntilde: L<<663.0,540.0>--<662.0,0.0>> * braceleft.numr: L<<202.0,226.0>--<80.0,227.0>> * braceleft.sups: L<<234.0,266.0>--<113.0,267.0>> * braceright.numr: L<<166.0,227.0>--<45.0,226.0>> * braceright.sups: L<<199.0,268.0>--<78.0,267.0>> and 68 more. [code: found-semi-vertical]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 96 48 733 49 529 0
0% 7% 3% 50% 3% 36% 0%

Note: The following loglevels were omitted in this report: