| 💥 ERROR | 🔥 FAIL | ⚠️ WARN | ⏩ SKIP | ℹ️ INFO | ✔️ PASS |
|---|---|---|---|---|---|
| 0 | 49 | 22 | 463 | 28 | 333 |
| 0% | 6% | 3% | 59% | 4% | 42% |
Note: The following loglevels were omitted in this report: SKIP, INFO, PASS, DEBUG
In this font fsType is set to 8 meaning that: The font may be embedded but must only be installed temporarily on other systems.
No such DRM restrictions can be enabled on the Google Fonts collection, so the fsType field must be set to zero (Installable Embedding) instead. [code: drm]
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]
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]
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]
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]
Missing required codepoints:
- 0x0030 (DIGIT ZERO)
- 0x0031 (DIGIT ONE)
- 0x0032 (DIGIT TWO)
- 0x0033 (DIGIT THREE)
- 0x0034 (DIGIT FOUR)
- 0x0035 (DIGIT FIVE)
- 0x0036 (DIGIT SIX)
- 0x0037 (DIGIT SEVEN)
- 0x0038 (DIGIT EIGHT)
- 0x0039 (DIGIT NINE)
- And 321 more.
Use -F or --full-lists to disable shortening of long lists. [code: missing-codepoints]
Missing required codepoints:
- 0x0030 (DIGIT ZERO)
- 0x0031 (DIGIT ONE)
- 0x0032 (DIGIT TWO)
- 0x0033 (DIGIT THREE)
- 0x0034 (DIGIT FOUR)
- 0x0035 (DIGIT FIVE)
- 0x0036 (DIGIT SIX)
- 0x0037 (DIGIT SEVEN)
- 0x0038 (DIGIT EIGHT)
- 0x0039 (DIGIT NINE)
- And 321 more.
Use -F or --full-lists to disable shortening of long lists. [code: missing-codepoints]
Missing required codepoints:
- 0x0030 (DIGIT ZERO)
- 0x0031 (DIGIT ONE)
- 0x0032 (DIGIT TWO)
- 0x0033 (DIGIT THREE)
- 0x0034 (DIGIT FOUR)
- 0x0035 (DIGIT FIVE)
- 0x0036 (DIGIT SIX)
- 0x0037 (DIGIT SEVEN)
- 0x0038 (DIGIT EIGHT)
- 0x0039 (DIGIT NINE)
- And 321 more.
Use -F or --full-lists to disable shortening of long lists. [code: missing-codepoints]
Missing required codepoints:
- 0x0030 (DIGIT ZERO)
- 0x0031 (DIGIT ONE)
- 0x0032 (DIGIT TWO)
- 0x0033 (DIGIT THREE)
- 0x0034 (DIGIT FOUR)
- 0x0035 (DIGIT FIVE)
- 0x0036 (DIGIT SIX)
- 0x0037 (DIGIT SEVEN)
- 0x0038 (DIGIT EIGHT)
- 0x0039 (DIGIT NINE)
- And 321 more.
Use -F or --full-lists to disable shortening of long lists. [code: missing-codepoints]
First line in license file is:
"copyright 20** the noto project authors (https://github.com/notofonts/noto-project-template)"
which does not match the expected format, similar to:
"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]
First line in license file is:
"copyright 20** the noto project authors (https://github.com/notofonts/noto-project-template)"
which does not match the expected format, similar to:
"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]
First line in license file is:
"copyright 20** the noto project authors (https://github.com/notofonts/noto-project-template)"
which does not match the expected format, similar to:
"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]
First line in license file is:
"copyright 20** the noto project authors (https://github.com/notofonts/noto-project-template)"
which does not match the expected format, similar to:
"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]
License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software." Must be changed to "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" [code: wrong]
License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software." Must be changed to "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" [code: wrong]
License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software." Must be changed to "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" [code: wrong]
License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software." Must be changed to "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" [code: wrong]
Font is missing the 'gasp' table. Try exporting the font with autohinting enabled. If you are dealing with an unhinted font, it can be fixed by running the fonts through the command 'gftools fix-nonhinting' GFTools is available at https://pypi.org/project/gftools/ [code: lacks-gasp]
Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright 2022 Google Inc. All Rights Reserved." [code: bad-notice-format]
Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright 2022 Google Inc. All Rights Reserved." [code: bad-notice-format]
Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright 2022 Google Inc. All Rights Reserved." [code: bad-notice-format]
Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright 2022 Google Inc. All Rights Reserved." [code: bad-notice-format]
The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script. [code: lacks-smart-dropout]
OS/2.sTypoLineGap is "200" it should be 0 [code: bad-OS/2.sTypoLineGap]
OS/2.sTypoLineGap is "200" it should be 0 [code: bad-OS/2.sTypoLineGap]
OS/2.sTypoLineGap is "200" it should be 0 [code: bad-OS/2.sTypoLineGap]
OS/2.sTypoLineGap is "200" it should be 0 [code: bad-OS/2.sTypoLineGap]
This variable font does not have an avar table. [code: missing-avar]
This variable font does not have an avar table. [code: missing-avar]
OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['fonts/NotoSerifTest/googlefonts/slim-variable-ttf/NotoSerifTest[wght].ttf', 'fonts/NotoSerifTest/googlefonts/ttf/NotoSerifTest-Bold.ttf', 'fonts/NotoSerifTest/googlefonts/ttf/NotoSerifTest-Regular.ttf', 'fonts/NotoSerifTest/googlefonts/variable-ttf/NotoSerifTest[wght].ttf']. [code: missing-os2-fsselection-bit7]
OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['fonts/NotoSerifTest/googlefonts/slim-variable-ttf/NotoSerifTest[wght].ttf', 'fonts/NotoSerifTest/googlefonts/ttf/NotoSerifTest-Bold.ttf', 'fonts/NotoSerifTest/googlefonts/ttf/NotoSerifTest-Regular.ttf', 'fonts/NotoSerifTest/googlefonts/variable-ttf/NotoSerifTest[wght].ttf']. [code: missing-os2-fsselection-bit7]
OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['fonts/NotoSerifTest/googlefonts/slim-variable-ttf/NotoSerifTest[wght].ttf', 'fonts/NotoSerifTest/googlefonts/ttf/NotoSerifTest-Bold.ttf', 'fonts/NotoSerifTest/googlefonts/ttf/NotoSerifTest-Regular.ttf', 'fonts/NotoSerifTest/googlefonts/variable-ttf/NotoSerifTest[wght].ttf']. [code: missing-os2-fsselection-bit7]
OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['fonts/NotoSerifTest/googlefonts/slim-variable-ttf/NotoSerifTest[wght].ttf', 'fonts/NotoSerifTest/googlefonts/ttf/NotoSerifTest-Bold.ttf', 'fonts/NotoSerifTest/googlefonts/ttf/NotoSerifTest-Regular.ttf', 'fonts/NotoSerifTest/googlefonts/variable-ttf/NotoSerifTest[wght].ttf']. [code: missing-os2-fsselection-bit7]
This font file does not have a 'meta' table. [code: lacks-meta-table]
This font file does not have a 'meta' table. [code: lacks-meta-table]
This font file does not have a 'meta' table. [code: lacks-meta-table]
This font file does not have a 'meta' table. [code: lacks-meta-table]
.notdef glyphs were found when attempting to render Noto Serif Test [code: render-own-name]
.notdef glyphs were found when attempting to render Noto Serif Test [code: render-own-name]
.notdef glyphs were found when attempting to render Noto Serif Test [code: render-own-name]
.notdef glyphs were found when attempting to render Noto Serif Test [code: render-own-name]
Not all fonts passed in the command line are in the same directory. This may lead to bad results as the tool will interpret all font files as belonging to a single font family. The detected directories are: ['fonts/NotoSerifTest/googlefonts/slim-variable-ttf', 'fonts/NotoSerifTest/googlefonts/ttf', 'fonts/NotoSerifTest/googlefonts/variable-ttf'] [code: single-directory]
OS/2 sTypoAscender (800) and hhea ascent (1000) must be equal. [code: ascender]
OS/2 sTypoAscender (800) and hhea ascent (1000) must be equal. [code: ascender]
OS/2 sTypoAscender (800) and hhea ascent (1000) must be equal. [code: ascender]
OS/2 sTypoAscender (800) and hhea ascent (1000) must be equal. [code: ascender]
Whitespace glyph missing for codepoint 0x00A0. [code: missing-whitespace-glyph-0x00A0]
Whitespace glyph missing for codepoint 0x00A0. [code: missing-whitespace-glyph-0x00A0]
Whitespace glyph missing for codepoint 0x00A0. [code: missing-whitespace-glyph-0x00A0]
Whitespace glyph missing for codepoint 0x00A0. [code: missing-whitespace-glyph-0x00A0]
On monospaced fonts, the value of post.isFixedPitch must be set to a non-zero value (meaning 'fixed width monospaced'), but got 0 instead. [code: mono-bad-post-isFixedPitch]
The PANOSE numbers are incorrect for a monospaced font. Note: Family Type is set to 0, which does not seem right. [code: mono-bad-panose]
Font is monospaced but 2 glyphs (66.67%) have a different width. You should check the widths of: ['space', 'uni0E70'] [code: mono-outliers]
On monospaced fonts, the value of post.isFixedPitch must be set to a non-zero value (meaning 'fixed width monospaced'), but got 0 instead. [code: mono-bad-post-isFixedPitch]
The PANOSE numbers are incorrect for a monospaced font. Note: Family Type is set to 0, which does not seem right. [code: mono-bad-panose]
Font is monospaced but 2 glyphs (66.67%) have a different width. You should check the widths of: ['space', 'uni0E70'] [code: mono-outliers]
On monospaced fonts, the value of post.isFixedPitch must be set to a non-zero value (meaning 'fixed width monospaced'), but got 0 instead. [code: mono-bad-post-isFixedPitch]
The PANOSE numbers are incorrect for a monospaced font. Note: Family Type is set to 0, which does not seem right. [code: mono-bad-panose]
Font is monospaced but 2 glyphs (66.67%) have a different width. You should check the widths of: ['space', 'uni0E70'] [code: mono-outliers]
On monospaced fonts, the value of post.isFixedPitch must be set to a non-zero value (meaning 'fixed width monospaced'), but got 0 instead. [code: mono-bad-post-isFixedPitch]
The PANOSE numbers are incorrect for a monospaced font. Note: Family Type is set to 0, which does not seem right. [code: mono-bad-panose]
Font is monospaced but 2 glyphs (66.67%) have a different width. You should check the widths of: ['space', 'uni0E70'] [code: mono-outliers]
OS/2 sTypoLineGap is not equal to 0. [code: OS/2]
OS/2 sTypoLineGap is not equal to 0. [code: OS/2]
OS/2 sTypoLineGap is not equal to 0. [code: OS/2]
OS/2 sTypoLineGap is not equal to 0. [code: OS/2]
GPOS table lacks kerning information. [code: lacks-kern-info]
GPOS table lacks kerning information. [code: lacks-kern-info]
GPOS table lacks kerning information. [code: lacks-kern-info]
GPOS table lacks kerning information. [code: lacks-kern-info]
'Regular' instance has the same coordinates as the default instance; its subfamilyNameID should be either 2 or 17, instead of 257. [code: invalid-default-instance-subfamily-nameid:257]
'Regular' instance has the same coordinates as the default instance; its postScriptNameID should be 6, instead of 259. [code: invalid-default-instance-postscript-nameid:259]
'Regular' instance has the same coordinates as the default instance; its subfamilyNameID should be either 2 or 17, instead of 263. [code: invalid-default-instance-subfamily-nameid:263]
The following glyphs have on-curve points which have potentially incorrect y coordinates:
* uni0E70 (U+0E70): X=428.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=428.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=898.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=898.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=740.0,Y=1.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=570.0,Y=1.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=162.0,Y=-1.5 (should be at baseline 0?)
* uni0E70 (U+0E70): X=128.0,Y=1.0 (should be at baseline 0?)
* And uni0E70 (U+0E70): X=128.0,Y=1.0 (should be at baseline 0?) [code: found-misalignments]
The following glyphs have on-curve points which have potentially incorrect y coordinates:
* uni0E70 (U+0E70): X=256.0,Y=-1.0 (should be at baseline 0?) [code: found-misalignments]
The following glyphs have on-curve points which have potentially incorrect y coordinates:
* uni0E70 (U+0E70): X=428.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=428.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=898.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=898.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=740.0,Y=1.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=570.0,Y=1.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=128.0,Y=1.0 (should be at baseline 0?)
* And uni0E70 (U+0E70): X=128.0,Y=1.0 (should be at baseline 0?) [code: found-misalignments]
The following glyphs have on-curve points which have potentially incorrect y coordinates:
* uni0E70 (U+0E70): X=428.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=428.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=898.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=898.0,Y=2.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=740.0,Y=1.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=570.0,Y=1.0 (should be at baseline 0?)
* uni0E70 (U+0E70): X=162.0,Y=-1.5 (should be at baseline 0?)
* uni0E70 (U+0E70): X=128.0,Y=1.0 (should be at baseline 0?)
* And uni0E70 (U+0E70): X=128.0,Y=1.0 (should be at baseline 0?) [code: found-misalignments]
The following glyphs have segments which seem very short:
* uni0E70 (U+0E70) contains a short segment B<<273.0,582.5>-<272.0,584.0>-<265.0,584.0>>
* uni0E70 (U+0E70) contains a short segment B<<106.0,352.0>-<110.0,352.0>-<110.5,354.0>>
* uni0E70 (U+0E70) contains a short segment B<<71.0,566.0>-<66.0,566.0>-<65.0,565.0>>
* uni0E70 (U+0E70) contains a short segment B<<197.5,564.5>-<197.0,566.0>-<192.0,566.0>>
* uni0E70 (U+0E70) contains a short segment B<<151.5,354.0>-<152.0,352.0>-<156.0,352.0>>
* uni0E70 (U+0E70) contains a short segment L<<314.0,502.0>--<314.0,502.0>>
* uni0E70 (U+0E70) contains a short segment L<<314.0,502.0>--<314.0,500.0>>
* And uni0E70 (U+0E70) contains a short segment L<<314.0,500.0>--<314.0,502.0>> [code: found-short-segments]
The following glyphs have segments which seem very short:
* uni0E70 (U+0E70) contains a short segment L<<236.0,330.0>--<236.0,337.0>>
* uni0E70 (U+0E70) contains a short segment L<<240.0,599.0>--<240.0,606.0>>
* uni0E70 (U+0E70) contains a short segment B<<283.0,496.0>-<283.0,491.0>-<282.0,488.0>>
* uni0E70 (U+0E70) contains a short segment L<<437.0,337.0>--<437.0,330.0>>
* uni0E70 (U+0E70) contains a short segment L<<318.0,337.0>--<318.0,330.0>>
* uni0E70 (U+0E70) contains a short segment L<<86.0,330.0>--<86.0,337.0>>
* uni0E70 (U+0E70) contains a short segment L<<226.0,535.0>--<219.0,535.0>>
* uni0E70 (U+0E70) contains a short segment L<<184.0,337.0>--<184.0,330.0>>
* And uni0E70 (U+0E70) contains a short segment L<<202.0,39.0>--<201.0,39.0>> [code: found-short-segments]
qa/shaping_tests/example.json: Expected and actual shaping not matching
Expected: uni0E70=0+1024
Got : uni0E70=0+1138
^^^
Got: Expected: