Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Be Vietnam Pro: Version 1.000 added #3456

Merged
merged 12 commits into from
Jul 15, 2021
Merged

Conversation

bettergui
Copy link
Contributor

@RosaWagner
Copy link
Contributor

Fontbakery report

Fontbakery version: 0.7.37

[12] BeVietnamPro-Black.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EAE: X=464.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EB0: X=331.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EAA: X=306.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=213.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=420.0,Y=1002.0 (should be at ascender 1000?)
    • Aring: X=274.0,Y=999.0 (should be at ascender 1000?)
    • Aring: X=518.0,Y=999.0 (should be at ascender 1000?)
    • Ccedilla: X=383.0,Y=-263.0 (should be at descender -265?)
    • Cdotaccent: X=408.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC4: X=238.0,Y=998.0 (should be at ascender 1000?) and 75 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Euro: L<<92.0,350.0>--<92.0,370.0>> -> L<<92.0,370.0>--<92.0,389.0>>
    • onehalf: L<<576.0,80.0>--<609.0,102.0>> -> L<<609.0,102.0>--<635.0,119.0>>
    • two.dnom: L<<-148.0,80.0>--<-115.0,102.0>> -> L<<-115.0,102.0>--<-89.0,119.0>>
    • two.numr: L<<-148.0,430.0>--<-115.0,452.0>> -> L<<-115.0,452.0>--<-89.0,469.0>>
    • uni00B2: L<<43.0,505.0>--<157.0,587.0>> -> L<<157.0,587.0>--<183.0,605.0>> and uni2082: L<<43.0,-110.0>--<157.0,-28.0>> -> L<<157.0,-28.0>--<183.0,-10.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • Aacute: L<<464.0,809.0>--<331.0,810.0>>
  • Agrave: L<<464.0,810.0>--<331.0,809.0>>
  • Cacute: L<<476.0,807.0>--<343.0,808.0>>
  • Eacute: L<<396.0,809.0>--<263.0,810.0>>
  • Egrave: L<<396.0,810.0>--<263.0,809.0>>
  • Iacute: L<<224.0,809.0>--<91.0,810.0>>
  • Igrave: L<<224.0,810.0>--<91.0,809.0>>
  • Lacute: L<<224.0,809.0>--<91.0,810.0>>
  • Nacute: L<<444.0,809.0>--<311.0,810.0>>
  • Oacute: L<<483.0,819.0>--<350.0,820.0>> and 81 more. [code: found-semi-vertical]

[11] BeVietnamPro-BlackItalic.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EAE: X=580.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EB0: X=435.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EA8: X=840.5,Y=999.5 (should be at ascender 1000?)
    • uni1EAA: X=411.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=318.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=533.5,Y=1001.5 (should be at ascender 1000?)
    • Aring: X=372.0,Y=999.0 (should be at ascender 1000?)
    • Aring: X=616.0,Y=999.0 (should be at ascender 1000?)
    • Ccedilla: X=313.0,Y=-263.0 (should be at descender -265?)
    • Cdotaccent: X=507.0,Y=998.0 (should be at ascender 1000?) and 76 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>>
    • ampersand: L<<379.0,152.0>--<264.0,295.0>> -> L<<264.0,295.0>--<250.0,313.0>>
    • logicalnot: L<<614.0,530.0>--<591.0,383.0>> -> L<<591.0,383.0>--<569.0,248.0>>
    • thorn: L<<-11.0,-195.0>--<19.0,0.0>> -> L<<19.0,0.0>--<44.0,159.0>>
    • thorn: L<<19.0,0.0>--<44.0,159.0>> -> L<<44.0,159.0>--<101.0,530.0>>
    • thorn: L<<44.0,159.0>--<101.0,530.0>> -> L<<101.0,530.0>--<137.0,760.0>>
    • two: L<<42.0,131.0>--<210.0,246.0>> -> L<<210.0,246.0>--<239.0,267.0>>
    • uni1EDA: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>>
    • uni1EDC: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>>
    • uni1EDE: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>>
    • uni1EE0: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>> and uni1EE2: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>> [code: found-colinear-vectors]

[12] BeVietnamPro-Bold.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EAE: X=330.0,Y=998.0 (should be at ascender 1000?)
    • uni1EB0: X=448.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=297.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=212.0,Y=1001.0 (should be at ascender 1000?)
    • Aring: X=268.5,Y=1000.5 (should be at ascender 1000?)
    • Aring: X=506.5,Y=1000.5 (should be at ascender 1000?)
    • uni1EC4: X=239.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=155.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=239.0,Y=1001.0 (should be at ascender 1000?)
    • J: X=40.0,Y=-1.0 (should be at baseline 0?) and 62 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • onehalf: L<<579.0,72.0>--<619.0,101.0>> -> L<<619.0,101.0>--<654.0,126.0>>
    • two.dnom: L<<-127.0,72.0>--<-87.0,101.0>> -> L<<-87.0,101.0>--<-52.0,126.0>>
    • two.numr: L<<-127.0,425.0>--<-87.0,454.0>> -> L<<-87.0,454.0>--<-52.0,479.0>> and uni2082: L<<54.0,-121.0>--<153.0,-47.0>> -> L<<153.0,-47.0>--<182.0,-26.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • Aacute: L<<447.0,812.0>--<330.0,813.0>>
  • Agrave: L<<449.0,813.0>--<331.0,812.0>>
  • Cacute: L<<467.0,811.0>--<349.0,812.0>>
  • Eacute: L<<390.0,812.0>--<272.0,813.0>>
  • Egrave: L<<391.0,813.0>--<274.0,812.0>>
  • Iacute: L<<211.0,812.0>--<93.0,813.0>>
  • Igrave: L<<212.0,813.0>--<95.0,812.0>>
  • Lacute: L<<213.0,812.0>--<96.0,813.0>>
  • Nacute: L<<435.0,812.0>--<318.0,813.0>>
  • Oacute: L<<474.0,822.0>--<357.0,823.0>> and 71 more. [code: found-semi-vertical]

[12] BeVietnamPro-BoldItalic.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: Check name table: TYPOGRAPHIC_FAMILY_NAME entries.
--- Rationale ---
Requirements for the TYPOGRAPHIC_FAMILY_NAME entries in the 'name' table.
  • 🔥 FAIL Font style is "BoldItalic" and, for that reason, it is not expected to have a [TYPOGRAPHIC_FAMILY_NAME(16):WINDOWS(3)] entry! [code: ribbi]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EAE: X=444.0,Y=998.0 (should be at ascender 1000?)
    • uni1EB0: X=545.0,Y=998.0 (should be at ascender 1000?)
    • uni1EA8: X=674.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=400.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=316.0,Y=1001.0 (should be at ascender 1000?)
    • Aring: X=356.5,Y=1000.5 (should be at ascender 1000?)
    • Aring: X=594.5,Y=1000.5 (should be at ascender 1000?)
    • Ccedilla: X=301.0,Y=-2.0 (should be at baseline 0?)
    • uni1EC2: X=614.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC4: X=339.0,Y=1001.0 (should be at ascender 1000?) and 55 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>>
    • hbar: L<<54.0,0.0>--<139.0,530.0>> -> L<<139.0,530.0>--<146.0,572.0>>
    • logicalnot: L<<615.0,530.0>--<595.0,403.0>> -> L<<595.0,403.0>--<571.0,255.0>>
    • ordfeminine: L<<309.0,614.0>--<310.0,620.0>> -> L<<310.0,620.0>--<311.0,629.0>>
    • two: L<<355.0,182.0>--<336.0,169.0>> -> L<<336.0,169.0>--<298.0,142.0>>
    • two: L<<43.0,112.0>--<222.0,242.0>> -> L<<222.0,242.0>--<251.0,263.0>>
    • uni1EDA: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>>
    • uni1EDC: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>>
    • uni1EDE: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>>
    • uni1EE0: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>> and uni1EE2: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>> [code: found-colinear-vectors]

[13] BeVietnamPro-Italic.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---
Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will only
differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.
However, a quotedbl should have 2 contours, unless the font belongs to a display
family.
This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.
  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

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

Glyph name: scaron Contours detected: 4 Expected: 2
Glyph name: scaron Contours detected: 4 Expected: 2 [code: contour-count]

WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=499.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=538.0,Y=1001.0 (should be at ascender 1000?)
    • Aring: X=433.0,Y=999.0 (should be at ascender 1000?)
    • uni1EC4: X=494.0,Y=1001.0 (should be at ascender 1000?)
    • K: X=560.0,Y=739.0 (should be at cap-height 740?)
    • K: X=688.0,Y=739.0 (should be at cap-height 740?)
    • Oacute: X=614.0,Y=1002.0 (should be at ascender 1000?)
    • Oacute: X=522.0,Y=1002.0 (should be at ascender 1000?)
    • uni1ED4: X=623.0,Y=999.0 (should be at ascender 1000?)
    • Ograve: X=335.0,Y=1002.0 (should be at ascender 1000?) and 55 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>>
    • logicalnot: L<<618.0,530.0>--<606.0,454.0>> -> L<<606.0,454.0>--<576.0,271.0>>
    • thorn: L<<11.0,-195.0>--<42.0,0.0>> -> L<<42.0,0.0>--<165.0,760.0>>
    • thorn: L<<149.0,92.0>--<134.0,0.0>> -> L<<134.0,0.0>--<102.0,-195.0>>
    • uni1EDA: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>>
    • uni1EDC: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>>
    • uni1EDE: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>>
    • uni1EE0: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>> and uni1EE2: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • scaron: L<<314.0,635.0>--<329.0,653.0>>/L<<329.0,653.0>--<314.0,633.0>> = 2.935673446421223
    • scaron: L<<366.0,704.0>--<403.0,741.0>>/L<<403.0,741.0>--<329.0,653.0>> = 4.9392155421262265 and scaron: L<<403.0,741.0>--<329.0,653.0>>/L<<329.0,653.0>--<366.0,704.0>> = 4.100267261228921 [code: found-jaggy-segments]

[13] BeVietnamPro-Light.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB4: X=366.0,Y=1000.5 (should be at ascender 1000?)
    • uni1EAA: X=408.0,Y=999.0 (should be at ascender 1000?)
    • uni1EC4: X=375.0,Y=999.0 (should be at ascender 1000?)
    • K: X=495.0,Y=739.0 (should be at cap-height 740?)
    • K: X=578.0,Y=739.0 (should be at cap-height 740?)
    • Oacute: X=536.0,Y=999.0 (should be at ascender 1000?)
    • Oacute: X=470.0,Y=999.0 (should be at ascender 1000?)
    • uni1ED4: X=546.0,Y=999.0 (should be at ascender 1000?)
    • Ograve: X=285.0,Y=999.0 (should be at ascender 1000?)
    • Ograve: X=351.0,Y=999.0 (should be at ascender 1000?) and 34 more. [code: found-misalignments]
WARN: Are any segments inordinately short?
--- Rationale ---
This check looks for outline segments which seem particularly short (less than
0.006%% of the overall path length).
This check is not run for variable fonts, as they may legitimately have short
segments. As this check is liable to generate significant numbers of false
positives, it will pass if there are more than 100 reported short segments.
  • WARN The following glyphs have segments which seem very short:
    • uni0162 contains a short segment L<<304.0,0.0>--<288.0,0.0>>
    • a contains a short segment L<<493.0,103.0>--<489.0,103.0>>
    • aacute contains a short segment L<<498.0,103.0>--<494.0,103.0>>
    • abreve contains a short segment L<<498.0,103.0>--<494.0,103.0>>
    • uni1EAF contains a short segment L<<498.0,103.0>--<494.0,103.0>>
    • uni1EB7 contains a short segment L<<498.0,103.0>--<494.0,103.0>>
    • uni1EB1 contains a short segment L<<498.0,103.0>--<494.0,103.0>>
    • uni1EB3 contains a short segment L<<498.0,103.0>--<494.0,103.0>>
    • uni1EB5 contains a short segment L<<498.0,103.0>--<494.0,103.0>>
    • acircumflex contains a short segment L<<498.0,103.0>--<494.0,103.0>> and 87 more. [code: found-short-segments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • onehalf: L<<545.0,35.0>--<617.0,100.0>> -> L<<617.0,100.0>--<646.0,125.0>>
    • two.dnom: L<<-56.0,35.0>--<15.0,100.0>> -> L<<15.0,100.0>--<46.0,127.0>>
    • two.numr: L<<-56.0,392.0>--<15.0,457.0>> -> L<<15.0,457.0>--<46.0,484.0>>
    • two: L<<334.0,222.0>--<297.0,187.0>> -> L<<297.0,187.0>--<162.0,58.0>>
    • two: L<<70.0,46.0>--<248.0,217.0>> -> L<<248.0,217.0>--<286.0,253.0>>
    • uni00B2: L<<69.0,467.0>--<147.0,538.0>> -> L<<147.0,538.0>--<176.0,563.0>> and uni2082: L<<69.0,-148.0>--<147.0,-77.0>> -> L<<147.0,-77.0>--<176.0,-52.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • asterisk: L<<223.0,571.0>--<222.0,740.0>>
  • exclam: L<<100.0,161.0>--<96.0,740.0>>
  • exclam: L<<156.0,740.0>--<154.0,161.0>>
  • exclamdown: L<<154.0,363.0>--<156.0,-216.0>>
  • exclamdown: L<<96.0,-216.0>--<100.0,363.0>>
  • four: L<<410.0,183.0>--<45.0,184.0>>
  • l: L<<86.0,0.0>--<87.0,760.0>>
  • lacute: L<<90.0,0.0>--<91.0,760.0>>
  • lcaron: L<<86.0,0.0>--<87.0,760.0>> and one: L<<173.0,613.0>--<49.0,612.0>> [code: found-semi-vertical]

[13] BeVietnamPro-LightItalic.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---
Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will only
differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.
However, a quotedbl should have 2 contours, unless the font belongs to a display
family.
This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.
  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

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

Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2 [code: contour-count]

WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EA8: X=682.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=527.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC2: X=629.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=475.0,Y=998.0 (should be at ascender 1000?)
    • J: X=6.0,Y=-2.0 (should be at baseline 0?)
    • J: X=6.0,Y=-2.0 (should be at baseline 0?)
    • K: X=561.0,Y=739.0 (should be at cap-height 740?)
    • K: X=648.0,Y=739.0 (should be at cap-height 740?)
    • uni1ED6: X=558.0,Y=1001.0 (should be at ascender 1000?)
    • uni1ECE: X=430.5,Y=999.0 (should be at ascender 1000?) and 44 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<443.0,750.0>--<444.0,750.0>> -> L<<444.0,750.0>--<602.0,750.0>>
    • ampersand: L<<303.0,402.0>--<312.0,389.0>> -> L<<312.0,389.0>--<474.0,173.0>>
    • ampersand: L<<439.0,125.0>--<273.0,348.0>> -> L<<273.0,348.0>--<250.0,380.0>>
    • hbar: L<<83.0,0.0>--<168.0,530.0>> -> L<<168.0,530.0>--<182.0,616.0>>
    • scaron: L<<303.0,642.0>--<295.0,633.0>> -> L<<295.0,633.0>--<275.0,607.0>>
    • thorn: L<<106.0,380.0>--<130.0,530.0>> -> L<<130.0,530.0>--<167.0,760.0>>
    • thorn: L<<14.0,-195.0>--<45.0,0.0>> -> L<<45.0,0.0>--<106.0,380.0>>
    • thorn: L<<229.0,760.0>--<192.0,530.0>> -> L<<192.0,530.0>--<177.0,437.0>>
    • thorn: L<<45.0,0.0>--<106.0,380.0>> -> L<<106.0,380.0>--<130.0,530.0>>
    • uni1EDA: L<<443.0,750.0>--<444.0,750.0>> -> L<<444.0,750.0>--<602.0,750.0>> and 4 more. [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • eth: B<<325.0,537.0>-<441.0,537.0>-<498.0,438.0>>/B<<498.0,438.0>-<458.0,580.0>-<317.0,683.0>> = 14.199507055400453
    • scaron: L<<303.0,642.0>--<390.0,740.0>>/L<<390.0,740.0>--<370.0,704.0>> = 12.542626129861114
    • uni2075: L<<219.0,762.0>--<189.0,641.0>>/L<<189.0,641.0>--<190.0,644.0>> = 4.510175602512516 and uni2085: L<<121.0,147.0>--<92.0,26.0>>/L<<92.0,26.0>--<93.0,29.0>> = 4.957126069680521 [code: found-jaggy-segments]

[12] BeVietnamPro-Medium.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro Medium' / SUBFAMILY_NAME = 'Regular'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • onehalf: L<<584.0,59.0>--<635.0,100.0>> -> L<<635.0,100.0>--<674.0,131.0>>
    • two.dnom: L<<-92.0,59.0>--<-41.0,100.0>> -> L<<-41.0,100.0>--<-2.0,131.0>>
    • two.numr: L<<-92.0,417.0>--<-41.0,458.0>> -> L<<-41.0,458.0>--<-2.0,489.0>>
    • two: L<<351.0,198.0>--<329.0,179.0>> -> L<<329.0,179.0>--<246.0,104.0>>
    • uni00B2: L<<72.0,477.0>--<147.0,537.0>> -> L<<147.0,537.0>--<181.0,564.0>> and uni2082: L<<72.0,-138.0>--<147.0,-78.0>> -> L<<147.0,-78.0>--<181.0,-51.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • four: L<<411.0,165.0>--<51.0,166.0>>
  • l: L<<76.0,0.0>--<77.0,760.0>>
  • lacute: L<<84.0,0.0>--<85.0,760.0>>
  • lcaron: L<<76.0,0.0>--<77.0,760.0>>
  • one: L<<181.0,559.0>--<41.0,558.0>>
  • uni2074: L<<256.0,492.0>--<61.0,493.0>> and uni2084: L<<246.0,-123.0>--<51.0,-122.0>> [code: found-semi-vertical]

[11] BeVietnamPro-MediumItalic.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<448.0,750.0>--<451.0,750.0>> -> L<<451.0,750.0>--<626.0,750.0>>
    • ampersand: L<<413.0,134.0>--<264.0,329.0>> -> L<<264.0,329.0>--<247.0,352.0>>
    • hbar: L<<286.0,583.0>--<274.0,513.0>> -> L<<274.0,513.0>--<265.0,453.0>>
    • logicalnot: L<<618.0,530.0>--<603.0,437.0>> -> L<<603.0,437.0>--<575.0,266.0>>
    • ordfeminine: L<<318.0,613.0>--<319.0,622.0>> -> L<<319.0,622.0>--<320.0,632.0>>
    • thorn: L<<274.0,760.0>--<237.0,530.0>> -> L<<237.0,530.0>--<225.0,457.0>>
    • thorn: L<<37.0,0.0>--<98.0,380.0>> -> L<<98.0,380.0>--<122.0,530.0>>
    • thorn: L<<6.0,-195.0>--<37.0,0.0>> -> L<<37.0,0.0>--<98.0,380.0>>
    • thorn: L<<98.0,380.0>--<122.0,530.0>> -> L<<122.0,530.0>--<159.0,760.0>>
    • two: L<<46.0,81.0>--<244.0,235.0>> -> L<<244.0,235.0>--<278.0,261.0>> and 5 more. [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • scaron: L<<368.0,707.0>--<414.0,744.0>>/L<<414.0,744.0>--<322.0,632.0>> = 11.787955299762132 [code: found-jaggy-segments]

[14] BeVietnamPro-Regular.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EAA: X=433.0,Y=1002.0 (should be at ascender 1000?)
    • Aring: X=256.0,Y=1001.0 (should be at ascender 1000?)
    • Aring: X=474.0,Y=1001.0 (should be at ascender 1000?)
    • Aring: X=365.0,Y=999.0 (should be at ascender 1000?)
    • uni1EC4: X=400.0,Y=1002.0 (should be at ascender 1000?)
    • K: X=498.0,Y=739.0 (should be at cap-height 740?)
    • K: X=620.0,Y=739.0 (should be at cap-height 740?)
    • uni1E9E: X=173.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=81.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=494.5,Y=738.0 (should be at cap-height 740?) and 39 more. [code: found-misalignments]
WARN: Are any segments inordinately short?
--- Rationale ---
This check looks for outline segments which seem particularly short (less than
0.006%% of the overall path length).
This check is not run for variable fonts, as they may legitimately have short
segments. As this check is liable to generate significant numbers of false
positives, it will pass if there are more than 100 reported short segments.
  • WARN The following glyphs have segments which seem very short:
    • a contains a short segment L<<479.0,86.0>--<473.0,86.0>>
    • aacute contains a short segment L<<484.0,86.0>--<478.0,86.0>>
    • abreve contains a short segment L<<484.0,86.0>--<478.0,86.0>>
    • uni1EAF contains a short segment L<<484.0,86.0>--<478.0,86.0>>
    • uni1EB7 contains a short segment L<<484.0,86.0>--<478.0,86.0>>
    • uni1EB1 contains a short segment L<<484.0,86.0>--<478.0,86.0>>
    • uni1EB3 contains a short segment L<<484.0,86.0>--<478.0,86.0>>
    • uni1EB5 contains a short segment L<<484.0,86.0>--<478.0,86.0>>
    • acircumflex contains a short segment L<<484.0,86.0>--<478.0,86.0>>
    • uni1EA5 contains a short segment L<<484.0,86.0>--<478.0,86.0>> and 89 more. [code: found-short-segments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • onehalf: L<<581.0,52.0>--<639.0,100.0>> -> L<<639.0,100.0>--<679.0,133.0>>
    • two.dnom: L<<-75.0,52.0>--<-18.0,100.0>> -> L<<-18.0,100.0>--<22.0,133.0>>
    • two.numr: L<<-75.0,411.0>--<-18.0,460.0>> -> L<<-18.0,460.0>--<18.0,489.0>>
    • two: L<<363.0,218.0>--<324.0,183.0>> -> L<<324.0,183.0>--<219.0,85.0>>
    • two: L<<80.0,66.0>--<244.0,219.0>> -> L<<244.0,219.0>--<295.0,266.0>>
    • uni00B2: L<<78.0,470.0>--<144.0,526.0>> -> L<<144.0,526.0>--<178.0,554.0>> and uni2082: L<<78.0,-145.0>--<144.0,-89.0>> -> L<<144.0,-89.0>--<178.0,-61.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • eogonek: B<<476.0,50.0>-<430.0,2.0>-<353.0,-8.0>>/L<<353.0,-8.0>--<354.0,-8.0>> = 7.399594659887074 [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • asterisk: L<<285.0,740.0>--<284.0,582.0>>
  • exclam: L<<96.0,188.0>--<92.0,740.0>>
  • exclamdown: L<<92.0,-216.0>--<96.0,336.0>>
  • four: L<<416.0,173.0>--<54.0,174.0>>
  • l: L<<81.0,0.0>--<82.0,760.0>>
  • lacute: L<<90.0,0.0>--<91.0,760.0>>
  • lcaron: L<<81.0,0.0>--<82.0,760.0>>
  • one: L<<178.0,579.0>--<41.0,578.0>>
  • uni2074: L<<253.0,495.0>--<63.0,496.0>> and uni2084: L<<244.0,-120.0>--<54.0,-119.0>> [code: found-semi-vertical]

[14] BeVietnamPro-SemiBold.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro SemiBold' / SUBFAMILY_NAME = 'Regular'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EA8: X=664.5,Y=1000.5 (should be at ascender 1000?)
    • uni1EA8: X=542.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=450.0,Y=998.0 (should be at ascender 1000?)
    • Aring: X=494.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EC2: X=617.5,Y=1000.5 (should be at ascender 1000?)
    • uni1EC2: X=495.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC4: X=403.0,Y=998.0 (should be at ascender 1000?)
    • J: X=40.0,Y=-2.0 (should be at baseline 0?)
    • J: X=40.0,Y=-2.0 (should be at baseline 0?)
    • K: X=490.0,Y=739.0 (should be at cap-height 740?) and 36 more. [code: found-misalignments]
WARN: Are any segments inordinately short?
--- Rationale ---
This check looks for outline segments which seem particularly short (less than
0.006%% of the overall path length).
This check is not run for variable fonts, as they may legitimately have short
segments. As this check is liable to generate significant numbers of false
positives, it will pass if there are more than 100 reported short segments.
  • WARN The following glyphs have segments which seem very short:
    • Scedilla contains a short segment B<<328.0,-45.0>-<342.0,-43.0>-<352.0,-43.0>>
    • uni0162 contains a short segment L<<405.0,0.0>--<397.0,0.0>>
    • a contains a short segment L<<457.0,74.0>--<451.0,74.0>>
    • aacute contains a short segment L<<460.0,74.0>--<454.0,74.0>>
    • abreve contains a short segment L<<460.0,74.0>--<454.0,74.0>>
    • uni1EAF contains a short segment L<<460.0,74.0>--<454.0,74.0>>
    • uni1EB7 contains a short segment L<<460.0,74.0>--<454.0,74.0>>
    • uni1EB1 contains a short segment L<<460.0,74.0>--<454.0,74.0>>
    • uni1EB3 contains a short segment L<<460.0,74.0>--<454.0,74.0>>
    • uni1EB5 contains a short segment L<<460.0,74.0>--<454.0,74.0>> and 89 more. [code: found-short-segments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • two: L<<66.0,94.0>--<205.0,217.0>> -> L<<205.0,217.0>--<265.0,268.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • ae: L<<261.0,312.0>--<394.0,313.0>>
  • four: L<<406.0,158.0>--<47.0,159.0>>
  • l: L<<72.0,0.0>--<73.0,760.0>>
  • lacute: L<<78.0,0.0>--<79.0,760.0>>
  • lcaron: L<<72.0,0.0>--<73.0,760.0>>
  • uni2074: L<<256.0,491.0>--<57.0,492.0>> and uni2084: L<<246.0,-124.0>--<47.0,-123.0>> [code: found-semi-vertical]

[12] BeVietnamPro-SemiBoldItalic.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro' / SUBFAMILY_NAME = 'SemiBold Italic'

Please take a look at the conversation at fonttools/fontbakery#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 = 'Be Vietnam Pro SemiBold' / SUBFAMILY_NAME = 'Italic'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EA8: X=650.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=556.0,Y=998.0 (should be at ascender 1000?)
    • Aring: X=572.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EC2: X=597.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=504.0,Y=998.0 (should be at ascender 1000?)
    • K: X=557.0,Y=739.0 (should be at cap-height 740?)
    • K: X=735.0,Y=739.0 (should be at cap-height 740?)
    • Oacute: X=637.0,Y=999.0 (should be at ascender 1000?)
    • Oacute: X=511.0,Y=999.0 (should be at ascender 1000?)
    • uni1ED4: X=769.5,Y=999.5 (should be at ascender 1000?) and 50 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>>
    • hbar: L<<68.0,0.0>--<153.0,530.0>> -> L<<153.0,530.0>--<161.0,579.0>>
    • thorn: L<<2.0,-195.0>--<117.0,530.0>> -> L<<117.0,530.0>--<154.0,760.0>>
    • two: L<<45.0,94.0>--<235.0,238.0>> -> L<<235.0,238.0>--<263.0,259.0>>
    • uni1EDA: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>>
    • uni1EDC: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>>
    • uni1EDE: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>>
    • uni1EE0: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>> and uni1EE2: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>> [code: found-colinear-vectors]

[13] BeVietnamPro-Thin.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---
Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will only
differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.
However, a quotedbl should have 2 contours, unless the font belongs to a display
family.
This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.
  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

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

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

WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=340.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EAA: X=233.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=203.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=200.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=170.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=200.0,Y=1001.0 (should be at ascender 1000?)
    • K: X=492.0,Y=739.0 (should be at cap-height 740?)
    • K: X=542.0,Y=739.0 (should be at cap-height 740?)
    • f: X=274.0,Y=739.0 (should be at cap-height 740?)
    • scaron: X=120.0,Y=739.0 (should be at cap-height 740?) and 34 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • onehalf: L<<514.0,21.0>--<598.0,100.0>> -> L<<598.0,100.0>--<619.0,120.0>>
    • onehalf: L<<645.0,100.0>--<628.0,84.0>> -> L<<628.0,84.0>--<568.0,28.0>>
    • two.dnom: L<<-40.0,21.0>--<44.0,100.0>> -> L<<44.0,100.0>--<65.0,120.0>>
    • two.dnom: L<<91.0,100.0>--<74.0,84.0>> -> L<<74.0,84.0>--<14.0,28.0>>
    • two.numr: L<<-40.0,376.0>--<44.0,455.0>> -> L<<44.0,455.0>--<65.0,475.0>>
    • two.numr: L<<91.0,455.0>--<74.0,439.0>> -> L<<74.0,439.0>--<14.0,383.0>>
    • two: L<<311.0,226.0>--<274.0,190.0>> -> L<<274.0,190.0>--<116.0,35.0>>
    • two: L<<62.0,28.0>--<252.0,215.0>> -> L<<252.0,215.0>--<286.0,248.0>>
    • uni00B2: L<<194.0,551.0>--<177.0,535.0>> -> L<<177.0,535.0>--<108.0,469.0>>
    • uni00B2: L<<62.0,465.0>--<150.0,549.0>> -> L<<150.0,549.0>--<173.0,571.0>>
    • uni2082: L<<194.0,-64.0>--<177.0,-80.0>> -> L<<177.0,-80.0>--<108.0,-146.0>> and uni2082: L<<62.0,-150.0>--<150.0,-66.0>> -> L<<150.0,-66.0>--<173.0,-44.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • exclam: L<<103.0,138.0>--<99.0,740.0>>
  • exclamdown: L<<99.0,-216.0>--<103.0,386.0>>
  • four: L<<405.0,191.0>--<38.0,192.0>>
  • l: L<<90.0,0.0>--<91.0,760.0>>
  • lacute: L<<90.0,0.0>--<91.0,760.0>>
  • lcaron: L<<90.0,0.0>--<91.0,760.0>> and uni00B5: L<<71.0,-199.0>--<72.0,530.0>> [code: found-semi-vertical]

[13] BeVietnamPro-ThinItalic.ttf
🔥 FAIL: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---
Hinted fonts must have head table flag bit 3 set.
Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.
Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;
  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

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

create virtualenv

python3 -m venv venv

activate virtualenv

source venv/bin/activate

install gftools

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

WARN: Check copyright namerecords match license file.
--- Rationale ---
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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 For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---
A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.
The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is available with a FAQ at: https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.
When in doubt, please choose OFL for new font projects.
  • WARN Please consider using HTTPS URLs at name table entry [plat=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: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---
Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will only
differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.
However, a quotedbl should have 2 contours, unless the font belongs to a display
family.
This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.
  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

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

Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2 [code: contour-count]

WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Lam Bao is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Tony Le is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

  • WARN It seems that Vietanh Nguyen is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=465.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EAA: X=363.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=332.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=302.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=271.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=302.0,Y=1001.0 (should be at ascender 1000?)
    • K: X=563.0,Y=739.0 (should be at cap-height 740?)
    • K: X=614.0,Y=739.0 (should be at cap-height 740?)
    • uni1ED6: X=556.0,Y=999.0 (should be at ascender 1000?)
    • f: X=334.0,Y=739.0 (should be at cap-height 740?) and 36 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Uhorn: L<<568.0,263.0>--<640.0,711.0>> -> L<<640.0,711.0>--<645.0,740.0>>
    • ampersand: L<<284.0,408.0>--<307.0,374.0>> -> L<<307.0,374.0>--<473.0,148.0>>
    • ampersand: L<<452.0,120.0>--<279.0,355.0>> -> L<<279.0,355.0>--<252.0,395.0>>
    • hbar: L<<80.0,0.0>--<165.0,530.0>> -> L<<165.0,530.0>--<182.0,638.0>>
    • logicalnot: L<<614.0,530.0>--<609.0,496.0>> -> L<<609.0,496.0>--<575.0,285.0>>
    • onehalf: L<<521.0,23.0>--<622.0,105.0>> -> L<<622.0,105.0>--<639.0,119.0>>
    • thorn: L<<103.0,125.0>--<83.0,0.0>> -> L<<83.0,0.0>--<51.0,-195.0>>
    • thorn: L<<109.0,380.0>--<133.0,530.0>> -> L<<133.0,530.0>--<170.0,760.0>>
    • thorn: L<<17.0,-195.0>--<48.0,0.0>> -> L<<48.0,0.0>--<109.0,380.0>>
    • thorn: L<<204.0,760.0>--<168.0,530.0>> -> L<<168.0,530.0>--<151.0,426.0>> and 10 more. [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • eth: B<<446.0,504.5>-<490.0,469.0>-<513.0,418.0>>/B<<513.0,418.0>-<492.0,510.0>-<438.5,579.5>> = 11.416350961441253
    • nine: B<<502.0,218.5>-<550.0,305.0>-<566.0,404.0>>/B<<566.0,404.0>-<541.0,346.0>-<487.5,299.0>> = 14.137166429128895 and six: B<<184.0,519.5>-<136.0,432.0>-<121.0,333.0>>/B<<121.0,333.0>-<145.0,392.0>-<198.0,440.0>> = 13.519843693936245 [code: found-jaggy-segments]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 29 146 652 113 1721 0
0% 1% 5% 25% 4% 65% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@RosaWagner
Copy link
Contributor

Another notes:

  • all contours are compatible, why not proposing a variable fonts? You can build one using gftools builder. I just added instruction in that PR that you can use for yourself too: Regenerated fonts 1.002 displaay/Azeret#3
  • all contours are decomposed, is there a particular reason for not having accented letters made of components?

@RosaWagner RosaWagner linked an issue Jun 3, 2021 that may be closed by this pull request
@RosaWagner RosaWagner added the -- Needs confirmation from upstream or onboarder label Jun 3, 2021
@bettergui
Copy link
Contributor Author

All failed tests were fixed.

  • all contours are compatible, why not proposing a variable fonts? You can build one using gftools builder. I just added instruction in that PR that you can use for yourself too: Regenerated fonts 1.002 displaay/Azeret#3
    => It's a good idea, let's do that as a later version. We have spent great efforts testing these current files, so we would like to release them as it to our users as they have been waiting for this family.

  • all contours are decomposed, is there a particular reason for not having accented letters made of components?
    => Actually, this was because of a fontbakery test. We have looked into relevant suggestions at
    Check for nested components fonttools/fontbakery#2961 and Printing issues due to running TTF fonts through a PostScript 3 printer arrowtype/recursive#412 but neither were satisfactory solutions. Diacritics were crucial for us to be displayed correctly so we manually decomposed the components to prevent the issue and pass the test.

@RosaWagner
Copy link
Contributor

I made a PR bettergui/BeVietnamPro#7 upstream cause of other issues I found.

@RosaWagner RosaWagner added -- Needs Upstream Resolution Upstream fix required before moving forward and removed - Ready for Review -- Needs confirmation from upstream or onboarder labels Jun 4, 2021
@bettergui
Copy link
Contributor Author

Hi Rosa,
First, we really appreciate you making the PR with improvement for variable fonts; you even added the build instruction for us.

Nevertheless, we still want to release our first version "as it," without variable fonts. Our reasons are:

  • Our current version is too many design changes from when we had to decompose all. It would actually be easier for us to rework our current version into components and ignore the decomposed accents. We want to invest that time in version 1.001.
  • Variable font is not the main priority for this font family. We have worked closely with our users who have been waiting for this version. As we have already tested with them, we want to avoid further changes for the first release.

We hope you all are okay with this decision. We have always taken Google Font's feedback seriously, and we want to move forwards step by step.

@RosaWagner
Copy link
Contributor

@bettergui I don't mind shipping only static fonts, but I need to send the version contained in the PR I made upstream. Indeed, there were issues in the sources that was preventing the font from being published at the first place: there was inconsistencies between the binaries and the sources, there were not replicable build script, and some intermediate instances were missing. We are working really hard to unify the catalog under the same specifications to avoid repetitive errors and to make updates easier.

For the decomposed outlines: the family is not so big so it shouldn't increase the file size that much, but I prefer to confirm this with @davelab6 first.

@bettergui
Copy link
Contributor Author

@RosaWagner I have done these following tasks:

  • Merged your PR request with our newest local source file.
  • Fixed the sources file based on your feedback (v-metrics, ExtraLight, ExtraBold, orthogonal designspace)
  • Ran the gftools builder script
  • Ran fontbakery tests.
  • Did quick visual sanity check.
  • Pushed the newest Glyphs source file and outputs to both https://github.com/bettergui/BeVietnamPro and to this PR.

Let me know if there is any issue. Thanks.

@bettergui
Copy link
Contributor Author

We have fixed the weights. Please take another look.

@bettergui
Copy link
Contributor Author

Hello, everyone must be busy. I just want check whether there is anything else you need from us?

@bettergui
Copy link
Contributor Author

friendly ping @RosaWagner

@RosaWagner
Copy link
Contributor

@bettergui i come back from holidays next Thursday, thanks for your patience

@RosaWagner
Copy link
Contributor

Fontbakery report

Fontbakery version: 0.7.37

[1] Family checks
🔥 FAIL: Do we have the latest version of FontBakery installed?

[5] BeVietnamPro-Black.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • Aacute: L<<464.0,809.0>--<331.0,810.0>>
  • Agrave: L<<464.0,810.0>--<331.0,809.0>>
  • Cacute: L<<476.0,807.0>--<343.0,808.0>>
  • Eacute: L<<396.0,809.0>--<263.0,810.0>>
  • Egrave: L<<396.0,810.0>--<263.0,809.0>>
  • Iacute: L<<224.0,809.0>--<91.0,810.0>>
  • Igrave: L<<224.0,810.0>--<91.0,809.0>>
  • Lacute: L<<224.0,809.0>--<91.0,810.0>>
  • Nacute: L<<444.0,809.0>--<311.0,810.0>>
  • Oacute: L<<483.0,819.0>--<350.0,820.0>> and 81 more. [code: found-semi-vertical]

[5] BeVietnamPro-BlackItalic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<487.0,750.0>--<487.0,750.0>> -> L<<487.0,750.0>--<665.0,750.0>>
    • thorn: L<<5.0,0.0>--<77.0,345.0>> -> L<<77.0,345.0>--<115.0,530.0>>
    • uni1EDA: L<<487.0,750.0>--<487.0,750.0>> -> L<<487.0,750.0>--<665.0,750.0>>
    • uni1EDC: L<<487.0,750.0>--<487.0,750.0>> -> L<<487.0,750.0>--<665.0,750.0>>
    • uni1EDE: L<<487.0,750.0>--<487.0,750.0>> -> L<<487.0,750.0>--<665.0,750.0>>
    • uni1EE0: L<<487.0,750.0>--<487.0,750.0>> -> L<<487.0,750.0>--<665.0,750.0>> and uni1EE2: L<<487.0,750.0>--<487.0,750.0>> -> L<<487.0,750.0>--<665.0,750.0>> [code: found-colinear-vectors]

[6] BeVietnamPro-Bold.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EA8: X=574.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EAA: X=294.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EAA: X=212.0,Y=1002.0 (should be at ascender 1000?)
    • Aring: X=267.0,Y=1001.5 (should be at ascender 1000?)
    • Aring: X=502.5,Y=1001.5 (should be at ascender 1000?)
    • uni1EC2: X=520.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EC4: X=240.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EC4: X=158.0,Y=1002.0 (should be at ascender 1000?)
    • J: X=40.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=290.0,Y=-2.0 (should be at baseline 0?) and 81 more. [code: found-misalignments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • four: L<<400.0,151.0>--<42.0,152.0>>
  • lslash: L<<127.0,409.0>--<128.0,760.0>>
  • one: L<<185.0,530.0>--<42.0,529.0>>
  • uni2074: L<<257.0,490.0>--<52.0,491.0>> and uni2084: L<<247.0,-125.0>--<42.0,-124.0>> [code: found-semi-vertical]

[5] BeVietnamPro-BoldItalic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<475.0,750.0>--<475.0,750.0>> -> L<<475.0,750.0>--<653.0,750.0>>
    • hbar: L<<311.0,530.0>--<309.0,522.0>> -> L<<309.0,522.0>--<295.0,454.0>>
    • thorn: L<<15.0,0.0>--<62.0,225.0>> -> L<<62.0,225.0>--<126.0,530.0>>
    • uni1EDA: L<<475.0,750.0>--<475.0,750.0>> -> L<<475.0,750.0>--<653.0,750.0>>
    • uni1EDC: L<<475.0,750.0>--<475.0,750.0>> -> L<<475.0,750.0>--<653.0,750.0>>
    • uni1EDE: L<<475.0,750.0>--<475.0,750.0>> -> L<<475.0,750.0>--<653.0,750.0>>
    • uni1EE0: L<<475.0,750.0>--<475.0,750.0>> -> L<<475.0,750.0>--<653.0,750.0>> and uni1EE2: L<<475.0,750.0>--<475.0,750.0>> -> L<<475.0,750.0>--<653.0,750.0>> [code: found-colinear-vectors]

[6] BeVietnamPro-ExtraBold.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro ExtraBold' / SUBFAMILY_NAME = 'Regular'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • Aacute: L<<453.0,811.0>--<330.0,812.0>>
  • Agrave: L<<454.0,812.0>--<331.0,811.0>>
  • Cacute: L<<470.0,810.0>--<347.0,811.0>>
  • Eacute: L<<392.0,811.0>--<269.0,812.0>>
  • Egrave: L<<393.0,812.0>--<270.0,811.0>>
  • Iacute: L<<215.0,811.0>--<92.0,812.0>>
  • Igrave: L<<216.0,812.0>--<93.0,811.0>>
  • Lacute: L<<217.0,811.0>--<94.0,812.0>>
  • Nacute: L<<438.0,811.0>--<315.0,812.0>>
  • Oacute: L<<477.0,821.0>--<354.0,822.0>> and 80 more. [code: found-semi-vertical]

[6] BeVietnamPro-ExtraBoldItalic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro ExtraBold' / SUBFAMILY_NAME = 'Italic'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<481.0,750.0>--<481.0,750.0>> -> L<<481.0,750.0>--<659.0,750.0>>
    • hbar: L<<320.0,530.0>--<316.0,514.0>> -> L<<316.0,514.0>--<304.0,455.0>>
    • thorn: L<<10.0,0.0>--<71.0,290.0>> -> L<<71.0,290.0>--<121.0,530.0>>
    • uni1EDA: L<<481.0,750.0>--<481.0,750.0>> -> L<<481.0,750.0>--<659.0,750.0>>
    • uni1EDC: L<<481.0,750.0>--<481.0,750.0>> -> L<<481.0,750.0>--<659.0,750.0>>
    • uni1EDE: L<<481.0,750.0>--<481.0,750.0>> -> L<<481.0,750.0>--<659.0,750.0>>
    • uni1EE0: L<<481.0,750.0>--<481.0,750.0>> -> L<<481.0,750.0>--<659.0,750.0>> and uni1EE2: L<<481.0,750.0>--<481.0,750.0>> -> L<<481.0,750.0>--<659.0,750.0>> [code: found-colinear-vectors]

[7] BeVietnamPro-ExtraLight.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro ExtraLight' / SUBFAMILY_NAME = 'Regular'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=324.5,Y=1001.5 (should be at ascender 1000?)
    • uni1EB4: X=362.5,Y=998.5 (should be at ascender 1000?)
    • uni1EAA: X=403.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=403.0,Y=998.0 (should be at ascender 1000?)
    • Aring: X=266.5,Y=999.0 (should be at ascender 1000?)
    • Aring: X=414.5,Y=999.0 (should be at ascender 1000?)
    • uni1EC4: X=370.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC4: X=370.0,Y=998.0 (should be at ascender 1000?)
    • K: X=494.0,Y=739.0 (should be at cap-height 740?)
    • K: X=570.0,Y=739.0 (should be at cap-height 740?) and 50 more. [code: found-misalignments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • asterisk: L<<225.0,568.0>--<224.0,740.0>>
  • exclam: L<<101.0,156.0>--<97.0,740.0>>
  • exclam: L<<151.0,740.0>--<149.0,156.0>>
  • exclamdown: L<<149.0,368.0>--<151.0,-216.0>>
  • exclamdown: L<<97.0,-216.0>--<101.0,368.0>>
  • four: L<<409.0,185.0>--<44.0,186.0>>
  • l: L<<87.0,0.0>--<88.0,760.0>>
  • lacute: L<<90.0,0.0>--<91.0,760.0>>
  • lcaron: L<<87.0,0.0>--<88.0,760.0>>
  • lslash: L<<160.0,0.0>--<161.0,354.0>> and 3 more. [code: found-semi-vertical]

[8] BeVietnamPro-ExtraLightItalic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro ExtraLight' / SUBFAMILY_NAME = 'Italic'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB4: X=529.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=566.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=566.0,Y=998.0 (should be at ascender 1000?)
    • Aring: X=400.5,Y=999.0 (should be at ascender 1000?)
    • Aring: X=549.5,Y=999.0 (should be at ascender 1000?)
    • uni1EC4: X=504.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC4: X=504.0,Y=998.0 (should be at ascender 1000?)
    • J: X=-3.0,Y=-2.0 (should be at baseline 0?)
    • K: X=584.0,Y=739.0 (should be at cap-height 740?)
    • K: X=664.0,Y=739.0 (should be at cap-height 740?) and 79 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<455.0,750.0>>
    • Ohorn: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<612.0,750.0>>
    • hbar: L<<239.0,530.0>--<238.0,525.0>> -> L<<238.0,525.0>--<218.0,431.0>>
    • uni1EDA: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<455.0,750.0>>
    • uni1EDA: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<612.0,750.0>>
    • uni1EDC: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<455.0,750.0>>
    • uni1EDC: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<612.0,750.0>>
    • uni1EDE: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<455.0,750.0>>
    • uni1EDE: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<612.0,750.0>>
    • uni1EE0: L<<455.0,750.0>--<455.0,750.0>> -> L<<455.0,750.0>--<455.0,750.0>> and 3 more. [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • eth: B<<487.5,467.0>-<509.0,437.0>-<520.0,409.0>>/B<<520.0,409.0>-<508.0,475.0>-<479.5,527.5>> = 11.142889858339293 [code: found-jaggy-segments]

[5] BeVietnamPro-Italic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<456.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<458.0,750.0>>
    • Ohorn: L<<458.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<634.0,750.0>>
    • uni1EDA: L<<456.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<458.0,750.0>>
    • uni1EDA: L<<458.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<634.0,750.0>>
    • uni1EDC: L<<456.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<458.0,750.0>>
    • uni1EDC: L<<458.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<634.0,750.0>>
    • uni1EDE: L<<456.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<458.0,750.0>>
    • uni1EDE: L<<458.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<634.0,750.0>>
    • uni1EE0: L<<456.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<458.0,750.0>>
    • uni1EE0: L<<458.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<634.0,750.0>>
    • uni1EE2: L<<456.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<458.0,750.0>> and uni1EE2: L<<458.0,750.0>--<458.0,750.0>> -> L<<458.0,750.0>--<634.0,750.0>> [code: found-colinear-vectors]

[6] BeVietnamPro-Light.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • eogonek: B<<429.5,17.5>-<398.0,-1.0>-<353.0,-7.0>>/L<<353.0,-7.0>--<353.0,-7.0>> = 7.594643368591447 [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • asterisk: L<<218.0,576.0>--<217.0,740.0>>
  • asterisk: L<<279.0,740.0>--<278.0,576.0>>
  • exclam: L<<169.0,740.0>--<165.0,174.0>>
  • exclam: L<<98.0,174.0>--<94.0,740.0>>
  • exclamdown: L<<165.0,350.0>--<169.0,-216.0>>
  • exclamdown: L<<94.0,-216.0>--<98.0,350.0>>
  • four: L<<619.0,178.0>--<490.0,179.0>>
  • l: L<<83.0,0.0>--<84.0,760.0>>
  • lacute: L<<90.0,0.0>--<91.0,760.0>>
  • lcaron: L<<83.0,0.0>--<84.0,760.0>>
  • lslash: L<<157.0,410.0>--<158.0,760.0>> and one: L<<175.0,597.0>--<45.0,596.0>> [code: found-semi-vertical]

[6] BeVietnamPro-LightItalic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<455.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<457.0,750.0>>
    • Ohorn: L<<457.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<623.0,750.0>>
    • hbar: L<<262.0,530.0>--<261.0,526.0>> -> L<<261.0,526.0>--<244.0,442.0>>
    • uni1EDA: L<<455.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<457.0,750.0>>
    • uni1EDA: L<<457.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<623.0,750.0>>
    • uni1EDC: L<<455.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<457.0,750.0>>
    • uni1EDC: L<<457.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<623.0,750.0>>
    • uni1EDE: L<<455.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<457.0,750.0>>
    • uni1EDE: L<<457.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<623.0,750.0>>
    • uni1EE0: L<<455.0,750.0>--<457.0,750.0>> -> L<<457.0,750.0>--<457.0,750.0>> and 3 more. [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • eth: B<<475.5,476.0>-<497.0,451.0>-<508.0,426.0>>/B<<508.0,426.0>-<489.0,513.0>-<440.0,575.0>> = 11.43004923623014 [code: found-jaggy-segments]

[6] BeVietnamPro-Medium.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro Medium' / SUBFAMILY_NAME = 'Regular'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • four: L<<411.0,165.0>--<51.0,166.0>>
  • l: L<<76.0,0.0>--<77.0,760.0>>
  • lacute: L<<84.0,0.0>--<85.0,760.0>>
  • lcaron: L<<76.0,0.0>--<77.0,760.0>>
  • lslash: L<<144.0,0.0>--<145.0,322.0>>
  • one: L<<181.0,559.0>--<41.0,558.0>>
  • uni2074: L<<256.0,492.0>--<61.0,493.0>> and uni2084: L<<246.0,-123.0>--<51.0,-122.0>> [code: found-semi-vertical]

[5] BeVietnamPro-MediumItalic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<464.0,750.0>--<464.0,750.0>> -> L<<464.0,750.0>--<640.0,750.0>>
    • hbar: L<<294.0,530.0>--<293.0,526.0>> -> L<<293.0,526.0>--<278.0,453.0>>
    • thorn: L<<24.0,0.0>--<35.0,52.0>> -> L<<35.0,52.0>--<137.0,530.0>>
    • uni1EDA: L<<464.0,750.0>--<464.0,750.0>> -> L<<464.0,750.0>--<640.0,750.0>>
    • uni1EDC: L<<464.0,750.0>--<464.0,750.0>> -> L<<464.0,750.0>--<640.0,750.0>>
    • uni1EDE: L<<464.0,750.0>--<464.0,750.0>> -> L<<464.0,750.0>--<640.0,750.0>>
    • uni1EE0: L<<464.0,750.0>--<464.0,750.0>> -> L<<464.0,750.0>--<640.0,750.0>>
    • uni1EE2: L<<464.0,750.0>--<464.0,750.0>> -> L<<464.0,750.0>--<640.0,750.0>> and yen: L<<370.0,259.0>--<370.0,259.0>> -> L<<370.0,259.0>--<561.0,259.0>> [code: found-colinear-vectors]

[6] BeVietnamPro-Regular.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • eogonek: B<<433.5,17.0>-<401.0,-2.0>-<353.0,-8.0>>/L<<353.0,-8.0>--<354.0,-8.0>> = 7.125016348901757 [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • asterisk: L<<286.0,740.0>--<285.0,583.0>>
  • exclam: L<<96.0,192.0>--<92.0,740.0>>
  • exclamdown: L<<92.0,-216.0>--<96.0,332.0>>
  • four: L<<417.0,172.0>--<55.0,173.0>>
  • l: L<<80.0,0.0>--<81.0,760.0>>
  • lacute: L<<90.0,0.0>--<91.0,760.0>>
  • lcaron: L<<80.0,0.0>--<81.0,760.0>>
  • one: L<<179.0,574.0>--<40.0,573.0>>
  • uni2074: L<<256.0,493.0>--<65.0,494.0>> and uni2084: L<<246.0,-122.0>--<55.0,-121.0>> [code: found-semi-vertical]

[7] BeVietnamPro-SemiBold.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro SemiBold' / SUBFAMILY_NAME = 'Regular'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EA8: X=542.0,Y=998.0 (should be at ascender 1000?)
    • uni1EA8: X=664.0,Y=999.0 (should be at ascender 1000?)
    • uni1EAA: X=450.0,Y=998.0 (should be at ascender 1000?)
    • uni1EAA: X=450.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC2: X=495.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC2: X=617.0,Y=999.0 (should be at ascender 1000?)
    • uni1EC4: X=403.0,Y=998.0 (should be at ascender 1000?)
    • uni1EC4: X=403.0,Y=998.0 (should be at ascender 1000?)
    • J: X=40.0,Y=-2.0 (should be at baseline 0?)
    • K: X=490.0,Y=739.0 (should be at cap-height 740?) and 51 more. [code: found-misalignments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • ae: L<<261.0,312.0>--<394.0,313.0>>
  • four: L<<406.0,158.0>--<47.0,159.0>>
  • l: L<<72.0,0.0>--<73.0,760.0>>
  • lacute: L<<78.0,0.0>--<79.0,760.0>>
  • lcaron: L<<72.0,0.0>--<73.0,760.0>>
  • uni2074: L<<256.0,491.0>--<57.0,492.0>> and uni2084: L<<246.0,-124.0>--<47.0,-123.0>> [code: found-semi-vertical]

[7] BeVietnamPro-SemiBoldItalic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Combined length of family and style must not exceed 27 characters.
--- 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 = 'Be Vietnam Pro SemiBold' / SUBFAMILY_NAME = 'Italic'

Please take a look at the conversation at fonttools/fontbakery#2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EA8: X=681.0,Y=999.0 (should be at ascender 1000?)
    • uni1EA2: X=599.0,Y=1002.0 (should be at ascender 1000?)
    • Aogonek: X=517.0,Y=1.0 (should be at baseline 0?)
    • uni1EC2: X=626.0,Y=999.0 (should be at ascender 1000?)
    • uni1EBA: X=544.0,Y=1002.0 (should be at ascender 1000?)
    • J: X=-9.0,Y=1.0 (should be at baseline 0?)
    • K: X=579.0,Y=739.0 (should be at cap-height 740?)
    • K: X=760.0,Y=739.0 (should be at cap-height 740?)
    • uni1ED4: X=687.0,Y=999.0 (should be at ascender 1000?)
    • uni1ECE: X=605.0,Y=1002.0 (should be at ascender 1000?) and 76 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • Ohorn: L<<470.0,750.0>--<470.0,750.0>> -> L<<470.0,750.0>--<646.0,750.0>>
    • hbar: L<<303.0,530.0>--<302.0,524.0>> -> L<<302.0,524.0>--<287.0,454.0>>
    • thorn: L<<19.0,0.0>--<51.0,147.0>> -> L<<51.0,147.0>--<132.0,530.0>>
    • uni1EDA: L<<470.0,750.0>--<470.0,750.0>> -> L<<470.0,750.0>--<646.0,750.0>>
    • uni1EDC: L<<470.0,750.0>--<470.0,750.0>> -> L<<470.0,750.0>--<646.0,750.0>>
    • uni1EDE: L<<470.0,750.0>--<470.0,750.0>> -> L<<470.0,750.0>--<646.0,750.0>>
    • uni1EE0: L<<470.0,750.0>--<470.0,750.0>> -> L<<470.0,750.0>--<646.0,750.0>> and uni1EE2: L<<470.0,750.0>--<470.0,750.0>> -> L<<470.0,750.0>--<646.0,750.0>> [code: found-colinear-vectors]

[7] BeVietnamPro-Thin.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---
Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will only
differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.
However, a quotedbl should have 2 contours, unless the font belongs to a display
family.
This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.
  • WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

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

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

WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=340.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EA8: X=533.0,Y=999.0 (should be at ascender 1000?)
    • uni1EAA: X=233.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=203.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC2: X=500.0,Y=999.0 (should be at ascender 1000?)
    • uni1EC4: X=200.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=170.0,Y=1001.0 (should be at ascender 1000?)
    • K: X=492.0,Y=739.0 (should be at cap-height 740?)
    • K: X=542.0,Y=739.0 (should be at cap-height 740?)
    • uni1E9E: X=444.0,Y=741.5 (should be at cap-height 740?) and 46 more. [code: found-misalignments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---
This check 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 check is disabled for italic styles, which often contain nearly-upright
lines.
  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • exclam: L<<103.0,138.0>--<99.0,740.0>>
  • exclamdown: L<<99.0,-216.0>--<103.0,386.0>>
  • four: L<<405.0,191.0>--<38.0,192.0>>
  • l: L<<90.0,0.0>--<91.0,760.0>>
  • lacute: L<<90.0,0.0>--<91.0,760.0>>
  • lcaron: L<<90.0,0.0>--<91.0,760.0>> and uni00B5: L<<71.0,-199.0>--<72.0,530.0>> [code: found-semi-vertical]

[7] BeVietnamPro-ThinItalic.ttf
WARN: Checking OS/2 achVendID.
--- Rationale ---
Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is stored
in the achVendID field of the OS/2 table.
Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:
https://docs.microsoft.com/en-us/typography/vendors/
This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.
Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.
  • WARN OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Are there caret positions declared for every ligature?
--- Rationale ---
All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.
If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names
starting with 'caret_'. These can be compiled with fontmake as of version
v2.4.0.
  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Is there kerning info for non-ligated sequences?
--- Rationale ---
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
  • WARN GPOS table lacks kerning info for the following non-ligated sequences:

    • f + f
    • f + i
    • i + f
    • colon + s
    • s + t
    • t + a
    • a + r
    • r + colon
    • colon + b
    • b + e
    • e + colon
    • colon + d
    • d + d
    • d + colon

    [code: lacks-kern-info]

WARN: Ensure Stylistic Sets have description.
--- Rationale ---
Stylistic sets should provide description text. Programs such as InDesign,
TextEdit and Inkscape use that info to display to the users so that they know
what a given stylistic set offers.
  • WARN The stylistic set ss01 lacks a description string on the 'name' table. [code: missing-description]
WARN: Are there any misaligned on-curve points?
--- Rationale ---
This check heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, here we also check for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.
Not all such misaligned curve points are a mistake, and sometimes the design may
call for points in locations near the boundaries. As this check is liable to
generate significant numbers of false positives, it will pass if there are more
than 100 reported misalignments.
  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=507.0,Y=1002.0 (should be at ascender 1000?)
    • uni1EAA: X=406.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EAA: X=375.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=336.0,Y=1001.0 (should be at ascender 1000?)
    • uni1EC4: X=305.0,Y=1001.0 (should be at ascender 1000?)
    • K: X=586.0,Y=739.0 (should be at cap-height 740?)
    • K: X=638.0,Y=739.0 (should be at cap-height 740?)
    • uni1ED6: X=430.0,Y=1001.0 (should be at ascender 1000?)
    • uni1ED6: X=399.0,Y=1001.0 (should be at ascender 1000?)
    • uni1E9E: X=546.0,Y=741.5 (should be at cap-height 740?) and 49 more. [code: found-misalignments]
WARN: Do any segments have colinear vectors?
--- Rationale ---
This check looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.
This check is not run for variable fonts, as they may legitimately have colinear
vectors.
  • WARN The following glyphs have colinear vectors:
    • hbar: L<<215.0,530.0>--<214.0,525.0>> -> L<<214.0,525.0>--<192.0,420.0>> and thorn: L<<-8.0,-195.0>--<138.0,489.0>> -> L<<138.0,489.0>--<196.0,760.0>> [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---
This check 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:
    • H: L<<561.0,406.0>--<561.0,405.0>>/L<<561.0,405.0>--<632.0,740.0>> = 11.966212814885358
    • Hbar: L<<617.0,406.0>--<617.0,405.0>>/L<<617.0,405.0>--<663.0,622.0>> = 11.968475651583807
    • eth: B<<500.5,455.0>-<522.0,420.0>-<531.0,389.0>>/B<<531.0,389.0>-<521.0,465.0>-<491.0,524.0>> = 8.693348617297032
    • nine: B<<529.0,263.0>-<562.0,330.0>-<577.0,401.0>>/B<<577.0,401.0>-<568.0,381.0>-<551.0,355.5>> = 12.29842314071583 and six: B<<172.0,477.0>-<139.0,410.0>-<124.0,339.0>>/B<<124.0,339.0>-<133.0,359.0>-<150.0,384.5>> = 12.29842314071583 [code: found-jaggy-segments]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 1 110 1774 109 1423 0
0% 0% 3% 52% 3% 42% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

you can add the flag `--no-source` when you use gftools packager to avoid this.
@RosaWagner RosaWagner merged commit 659c177 into google:main Jul 15, 2021
@RosaWagner RosaWagner added --- to_sandbox and removed -- Needs Upstream Resolution Upstream fix required before moving forward labels Jul 15, 2021
@RosaWagner
Copy link
Contributor

WinAscent is inferior to Y-min, I asked the designer to correct it.

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

Successfully merging this pull request may close these issues.

Update Be Vietnam family
3 participants