google / fonts

Font files available from Google Fonts, and a public issue tracker for all things Google Fonts
https://fonts.google.com
17.82k stars 2.6k forks source link

Zain: Version 1.20; ttfautohint (v1.8.4) added #7890

Closed yanone closed 5 days ago

yanone commented 5 days ago

Taken from the upstream repo https://github.com/googlefonts/zain at commit https://github.com/googlefonts/zain/commit/38d5fc32498b9671ea3d4df29c8ad1ca0d4a6b73.

Resolves #7626

PR Checklist:

yanone commented 5 days ago

Updated

github-actions[bot] commented 5 days ago

FontBakery report

fontbakery version: 0.12.7

Experimental checks

These won't break the CI job for now, but will become effective after some time if nobody raises any concern.

[2] Zain-ExtraLight.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-Black.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-ExtraBold.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-Bold.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-Light.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-Regular.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]

All other checks

[22] Zain-ExtraLight.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni0652

- uniFC5E

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check glyphs in mark glyph class are non-spacing.
* ⚠️ **WARN**

The following spacing glyphs may be in the GDEF mark glyph class by mistake: uni06510652 (U+E121)

[code: spacing-mark-glyphs]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 388 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 450: greaterequal, lessequal, greater, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* exclam (U+0021): L<<60.0,124.0>--<59.0,553.0>>

* exclam (U+0021): L<<85.0,528.0>--<83.0,124.0>>

* exclam.ar (U+E103): L<<99.0,553.0>--<98.0,122.0>>

* exclamdown (U+00A1): L<<47.0,-204.0>--<49.0,224.0>>

* exclamdown (U+00A1): L<<73.0,200.0>--<74.0,-204.0>>

* uni06F4.tab (U+E137): L<<225.0,319.0>--<224.0,7.0>>

* uni06F4: L<<105.0,319.0>--<104.0,7.0>>
[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
* ⚠️ **WARN**

The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.

[code: missing-eof-linebreak]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-ExtraLight.ttf
Dehinted Size 120.6kb
Hinted Size 167.0kb
Increase 46.4kb
Change 38.5 %
[code: size-impact]
[22] Zain-Black.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni0652

- uniFC5E

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check glyphs in mark glyph class are non-spacing.
* ⚠️ **WARN**

The following spacing glyphs may be in the GDEF mark glyph class by mistake: uni06510652 (U+E121)

[code: spacing-mark-glyphs]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 432 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 462: lessequal, greater, less

Width = 467: greaterequal

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* uni0663.tab (U+E125): L<<45.0,14.0>--<44.0,451.0>>

* uni0663: L<<45.0,14.0>--<44.0,451.0>>

* uni0664.tab (U+E126): L<<501.0,221.0>--<366.0,222.0>>

* uni0664: L<<362.0,221.0>--<227.0,222.0>>

* uni06F3.tab (U+E136): L<<45.0,14.0>--<44.0,451.0>>

* uni06F3: L<<45.0,14.0>--<44.0,451.0>>

* uniFB7D (U+FB7D): L<<1.0,0.0>--<0.0,133.0>>

* uniFBFD (U+FBFD): L<<662.0,133.0>--<661.0,8.0>>

* uniFE8A (U+FE8A): L<<662.0,133.0>--<661.0,8.0>>

* uniFEA0 (U+FEA0): L<<1.0,0.0>--<0.0,133.0>>

* 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
* ⚠️ **WARN**

The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.

[code: missing-eof-linebreak]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-Black.ttf
Dehinted Size 121.0kb
Hinted Size 184.8kb
Increase 63.8kb
Change 52.8 %
[code: size-impact]
[23] Zain-Bold.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni0652

- uniFC5E

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check glyphs in mark glyph class are non-spacing.
* ⚠️ **WARN**

The following spacing glyphs may be in the GDEF mark glyph class by mistake: uni06510652 (U+E121)

[code: spacing-mark-glyphs]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 418 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 452: greaterequal, lessequal, greater, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do any segments have colinear vectors?
* ⚠️ **WARN**

The following glyphs have colinear vectors:

* uni0651064B.1 (U+E120): L<<94.0,816.0>--<146.0,817.0>> -> L<<146.0,817.0>--<183.0,817.0>>
[code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* uni0664.tab (U+E126): L<<488.0,236.0>--<360.0,237.0>>

* uni0664: L<<355.0,236.0>--<227.0,237.0>>
[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
* ⚠️ **WARN**

The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.

[code: missing-eof-linebreak]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-Bold.ttf
Dehinted Size 122.6kb
Hinted Size 180.0kb
Increase 57.4kb
Change 46.8 %
[code: size-impact]
[23] Zain-Light.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni0652

- uniFC5E

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check glyphs in mark glyph class are non-spacing.
* ⚠️ **WARN**

The following spacing glyphs may be in the GDEF mark glyph class by mistake: uni06510652 (U+E121)

[code: spacing-mark-glyphs]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 384 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 449: greaterequal, lessequal, greater, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do any segments have colinear vectors?
* ⚠️ **WARN**

The following glyphs have colinear vectors:

* uniFEBA (U+FEBA): L<<1186.0,177.0>--<1186.0,175.0>> -> L<<1186.0,175.0>--<1187.0,154.0>>

* uniFEBC (U+FEBC): L<<794.0,177.0>--<794.0,175.0>> -> L<<794.0,175.0>--<795.0,154.0>>

* uniFEBE (U+FEBE): L<<1186.0,177.0>--<1186.0,175.0>> -> L<<1186.0,175.0>--<1187.0,154.0>>

* uniFEC0 (U+FEC0): L<<794.0,177.0>--<794.0,175.0>> -> L<<794.0,175.0>--<795.0,154.0>>

* uniFEC2 (U+FEC2): L<<715.0,177.0>--<715.0,175.0>> -> L<<715.0,175.0>--<716.0,154.0>>

* uniFEC6 (U+FEC6): L<<715.0,177.0>--<715.0,175.0>> -> L<<715.0,175.0>--<716.0,154.0>>
[code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* exclam (U+0021): L<<47.0,141.0>--<45.0,549.0>>

* exclam.ar (U+E103): L<<111.0,551.0>--<108.0,141.0>>

* exclam.ar (U+E103): L<<62.0,141.0>--<59.0,504.0>>

* exclamdown (U+00A1): L<<47.0,-193.0>--<49.0,216.0>>

* uni0663.tab (U+E125): L<<67.0,8.0>--<66.0,504.0>>

* uni0663: L<<71.0,8.0>--<70.0,504.0>>

* uni06F3.tab (U+E136): L<<67.0,8.0>--<66.0,504.0>>

* uni06F3: L<<71.0,8.0>--<70.0,504.0>>

* uni06F4.tab (U+E137): L<<244.0,291.0>--<243.0,10.0>>

* uni06F4: L<<122.0,291.0>--<121.0,10.0>>
[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
* ⚠️ **WARN**

The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.

[code: missing-eof-linebreak]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-Light.ttf
Dehinted Size 123.4kb
Hinted Size 176.8kb
Increase 53.4kb
Change 43.3 %
[code: size-impact]
[22] Zain-ExtraBold.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni06510652

- uni0652

- 6 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 431 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 452: greaterequal, lessequal, greater, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do any segments have colinear vectors?
* ⚠️ **WARN**

The following glyphs have colinear vectors:

* uni0651064B.1 (U+E120): L<<95.0,728.0>--<151.0,729.0>> -> L<<151.0,729.0>--<185.0,729.0>>

* uni0651064B.1 (U+E120): L<<95.0,817.0>--<151.0,818.0>> -> L<<151.0,818.0>--<185.0,818.0>>

* uniFC5F (U+FC5F): L<<93.0,513.0>--<148.0,514.0>> -> L<<148.0,514.0>--<182.0,514.0>>

* uniFC5F (U+FC5F): L<<93.0,602.0>--<148.0,603.0>> -> L<<148.0,603.0>--<182.0,603.0>>
[code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* uni0662.tab (U+E124): L<<316.0,372.0>--<317.0,13.0>>

* uni0662: L<<160.0,372.0>--<161.0,13.0>>

* uni0663.tab (U+E125): L<<50.0,13.0>--<49.0,463.0>>

* uni0663: L<<47.0,13.0>--<46.0,463.0>>

* uni0666.tab (U+E128): L<<363.0,13.0>--<364.0,372.0>>

* uni0666: L<<208.0,13.0>--<209.0,372.0>>

* uni06F2.tab (U+E135): L<<316.0,372.0>--<317.0,13.0>>

* uni06F2: L<<160.0,372.0>--<161.0,13.0>>

* uni06F3.tab (U+E136): L<<50.0,13.0>--<49.0,463.0>>

* uni06F3: L<<47.0,13.0>--<46.0,463.0>>

* 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
* ⚠️ **WARN**

The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.

[code: missing-eof-linebreak]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-ExtraBold.ttf
Dehinted Size 121.2kb
Hinted Size 181.9kb
Increase 60.7kb
Change 50.1 %
[code: size-impact]
[22] Zain-Regular.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni06510652

- uni0652

- 6 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
* 🔥 **FAIL**

METADATA.pb font full_name = "Zain" does not match post_script_name = "Zain-Regular"

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 403 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 450: greaterequal, lessequal, greater, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* uni0666.tab (U+E128): L<<394.0,10.0>--<395.0,376.0>>

* uni0666: L<<238.0,10.0>--<239.0,376.0>>
[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
* ⚠️ **WARN**

The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.

[code: missing-eof-linebreak]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-Regular.ttf
Dehinted Size 120.8kb
Hinted Size 177.5kb
Increase 56.7kb
Change 46.9 %
[code: size-impact]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table.
* ℹ️ **INFO**

All of the fonts lack a STAT table.

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 13 85 368 49 883 0
0% 0% 1% 6% 26% 4% 63% 0%

Note: The following loglevels were omitted in this report:

emmamarichal commented 5 days ago

@yanone Should I block the 1.1 version in the Sandbox then? because it looked quite urgent. At least this update corrects a big bug or mistake?

yanone commented 5 days ago

Yes, it corrects a mistake. I don't know anymore how and when to release it. The contractor Jürgen Willrodt just told me that now they want the font publication to be delayed, which is of course the opposite of what they said earlier. I will write an email now to him and Chris and CC you. Maybe it's best to hold the release for now until this is resolved.

emmamarichal commented 5 days ago

@yanone Ok thanks, I'll block the first PR!

github-actions[bot] commented 5 days ago

FontBakery report

fontbakery version: 0.12.7

Experimental checks

These won't break the CI job for now, but will become effective after some time if nobody raises any concern.

[2] Zain-ExtraLight.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-Black.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-ExtraBold.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-Bold.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-Light.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]
[2] Zain-Regular.ttf
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
* ⚠️ **WARN**

Family metadata at ofl/zain does not have an article.

[code: lacks-article]
ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
* ℹ️ **INFO**

Please consider adding a family.minisite_url entry.

[code: lacks-minisite-url]

All other checks

[21] Zain-ExtraLight.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni0652

- uniFC5E

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check glyphs in mark glyph class are non-spacing.
* ⚠️ **WARN**

The following spacing glyphs may be in the GDEF mark glyph class by mistake: uni06510652 (U+E121)

[code: spacing-mark-glyphs]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 388 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 450: greaterequal, greater, lessequal, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* exclam (U+0021): L<<60.0,124.0>--<59.0,553.0>>

* exclam (U+0021): L<<85.0,528.0>--<83.0,124.0>>

* exclam.ar (U+E103): L<<99.0,553.0>--<98.0,122.0>>

* exclamdown (U+00A1): L<<47.0,-204.0>--<49.0,224.0>>

* exclamdown (U+00A1): L<<73.0,200.0>--<74.0,-204.0>>

* uni06F4.tab (U+E137): L<<225.0,319.0>--<224.0,7.0>>

* uni06F4: L<<105.0,319.0>--<104.0,7.0>>
[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-ExtraLight.ttf
Dehinted Size 120.6kb
Hinted Size 167.0kb
Increase 46.4kb
Change 38.5 %
[code: size-impact]
[21] Zain-Black.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni0652

- uniFC5E

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check glyphs in mark glyph class are non-spacing.
* ⚠️ **WARN**

The following spacing glyphs may be in the GDEF mark glyph class by mistake: uni06510652 (U+E121)

[code: spacing-mark-glyphs]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 432 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 462: greater, lessequal, less

Width = 467: greaterequal

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* uni0663.tab (U+E125): L<<45.0,14.0>--<44.0,451.0>>

* uni0663: L<<45.0,14.0>--<44.0,451.0>>

* uni0664.tab (U+E126): L<<501.0,221.0>--<366.0,222.0>>

* uni0664: L<<362.0,221.0>--<227.0,222.0>>

* uni06F3.tab (U+E136): L<<45.0,14.0>--<44.0,451.0>>

* uni06F3: L<<45.0,14.0>--<44.0,451.0>>

* uniFB7D (U+FB7D): L<<1.0,0.0>--<0.0,133.0>>

* uniFBFD (U+FBFD): L<<662.0,133.0>--<661.0,8.0>>

* uniFE8A (U+FE8A): L<<662.0,133.0>--<661.0,8.0>>

* uniFEA0 (U+FEA0): L<<1.0,0.0>--<0.0,133.0>>

* 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-Black.ttf
Dehinted Size 121.0kb
Hinted Size 184.8kb
Increase 63.8kb
Change 52.8 %
[code: size-impact]
[22] Zain-Bold.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni0652

- uniFC5E

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check glyphs in mark glyph class are non-spacing.
* ⚠️ **WARN**

The following spacing glyphs may be in the GDEF mark glyph class by mistake: uni06510652 (U+E121)

[code: spacing-mark-glyphs]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 418 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 452: greaterequal, greater, lessequal, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do any segments have colinear vectors?
* ⚠️ **WARN**

The following glyphs have colinear vectors:

* uni0651064B.1 (U+E120): L<<94.0,816.0>--<146.0,817.0>> -> L<<146.0,817.0>--<183.0,817.0>>
[code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* uni0664.tab (U+E126): L<<488.0,236.0>--<360.0,237.0>>

* uni0664: L<<355.0,236.0>--<227.0,237.0>>
[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-Bold.ttf
Dehinted Size 122.6kb
Hinted Size 180.0kb
Increase 57.4kb
Change 46.8 %
[code: size-impact]
[22] Zain-Light.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni0652

- uniFC5E

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check glyphs in mark glyph class are non-spacing.
* ⚠️ **WARN**

The following spacing glyphs may be in the GDEF mark glyph class by mistake: uni06510652 (U+E121)

[code: spacing-mark-glyphs]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 384 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 449: greaterequal, greater, lessequal, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do any segments have colinear vectors?
* ⚠️ **WARN**

The following glyphs have colinear vectors:

* uniFEBA (U+FEBA): L<<1186.0,177.0>--<1186.0,175.0>> -> L<<1186.0,175.0>--<1187.0,154.0>>

* uniFEBC (U+FEBC): L<<794.0,177.0>--<794.0,175.0>> -> L<<794.0,175.0>--<795.0,154.0>>

* uniFEBE (U+FEBE): L<<1186.0,177.0>--<1186.0,175.0>> -> L<<1186.0,175.0>--<1187.0,154.0>>

* uniFEC0 (U+FEC0): L<<794.0,177.0>--<794.0,175.0>> -> L<<794.0,175.0>--<795.0,154.0>>

* uniFEC2 (U+FEC2): L<<715.0,177.0>--<715.0,175.0>> -> L<<715.0,175.0>--<716.0,154.0>>

* uniFEC6 (U+FEC6): L<<715.0,177.0>--<715.0,175.0>> -> L<<715.0,175.0>--<716.0,154.0>>
[code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* exclam (U+0021): L<<47.0,141.0>--<45.0,549.0>>

* exclam.ar (U+E103): L<<111.0,551.0>--<108.0,141.0>>

* exclam.ar (U+E103): L<<62.0,141.0>--<59.0,504.0>>

* exclamdown (U+00A1): L<<47.0,-193.0>--<49.0,216.0>>

* uni0663.tab (U+E125): L<<67.0,8.0>--<66.0,504.0>>

* uni0663: L<<71.0,8.0>--<70.0,504.0>>

* uni06F3.tab (U+E136): L<<67.0,8.0>--<66.0,504.0>>

* uni06F3: L<<71.0,8.0>--<70.0,504.0>>

* uni06F4.tab (U+E137): L<<244.0,291.0>--<243.0,10.0>>

* uni06F4: L<<122.0,291.0>--<121.0,10.0>>
[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-Light.ttf
Dehinted Size 123.4kb
Hinted Size 176.8kb
Increase 53.4kb
Change 43.3 %
[code: size-impact]
[21] Zain-ExtraBold.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni06510652

- uni0652

- 6 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 431 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 452: greaterequal, greater, lessequal, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do any segments have colinear vectors?
* ⚠️ **WARN**

The following glyphs have colinear vectors:

* uni0651064B.1 (U+E120): L<<95.0,728.0>--<151.0,729.0>> -> L<<151.0,729.0>--<185.0,729.0>>

* uni0651064B.1 (U+E120): L<<95.0,817.0>--<151.0,818.0>> -> L<<151.0,818.0>--<185.0,818.0>>

* uniFC5F (U+FC5F): L<<93.0,513.0>--<148.0,514.0>> -> L<<148.0,514.0>--<182.0,514.0>>

* uniFC5F (U+FC5F): L<<93.0,602.0>--<148.0,603.0>> -> L<<148.0,603.0>--<182.0,603.0>>
[code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* uni0662.tab (U+E124): L<<316.0,372.0>--<317.0,13.0>>

* uni0662: L<<160.0,372.0>--<161.0,13.0>>

* uni0663.tab (U+E125): L<<50.0,13.0>--<49.0,463.0>>

* uni0663: L<<47.0,13.0>--<46.0,463.0>>

* uni0666.tab (U+E128): L<<363.0,13.0>--<364.0,372.0>>

* uni0666: L<<208.0,13.0>--<209.0,372.0>>

* uni06F2.tab (U+E135): L<<316.0,372.0>--<317.0,13.0>>

* uni06F2: L<<160.0,372.0>--<161.0,13.0>>

* uni06F3.tab (U+E136): L<<50.0,13.0>--<49.0,463.0>>

* uni06F3: L<<47.0,13.0>--<46.0,463.0>>

* 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-ExtraBold.ttf
Dehinted Size 121.2kb
Hinted Size 181.9kb
Increase 60.7kb
Change 50.1 %
[code: size-impact]
[21] Zain-Regular.ttf
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
* 🔥 **FAIL**

The following glyphs could not be attached to the dotted circle glyph:

- uni064B

- uni064C

- uni064D

- uni064E

- uni064F

- uni0650

- uni0651

- uni0651064B.1

- uni06510652

- uni0652

- 6 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
🔥 FAIL METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
* 🔥 **FAIL**

METADATA.pb font full_name = "Zain" does not match post_script_name = "Zain-Regular"

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets.
* 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
ar_Arab (Arabic) Shaper didn't attach uni0670 to None
^ Shaper didn't attach uni0653 to None
^ Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0655 to None
^ Shaper didn't attach uni0670 to space
^ Shaper didn't attach uni0653 to space
^ Shaper didn't attach uni0654 to space
^ Shaper didn't attach uni0655 to space
^ .medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=1+0
^ .init version of ARABIC LETTER ALEF MAKSURA; both buffers returned space=0+0
^ Shaper didn't attach uni0670 to uni0640
^ Shaper didn't attach uni0653 to uni0640
^ Shaper didn't attach uni0654 to uni0640
^ Shaper didn't attach uni0655 to uni0640
^ Shaper didn't attach uni064B to uni0640
^ Shaper didn't attach uni064C to uni0640
^ Shaper didn't attach uni064D to uni0640
^ Shaper didn't attach uni064E to uni0640
^ Shaper didn't attach uni064F to uni0640
^ Shaper didn't attach uni0650 to uni0640
^ Shaper didn't attach uni0651 to uni0640
^ Shaper didn't attach uni0652 to uni0640
[code: failed-language-shaping] * 🔥 **FAIL**

GF_Arabic_Core glyphset:

Language FAIL messages
fa_Arab (Persian) Shaper didn't attach uni0654 to None
^ Shaper didn't attach uni0654 to space
[code: failed-language-shaping]
⚠️ WARN Check mark characters are in GDEF mark glyph class.
* ⚠️ **WARN**

The following mark characters could be in the GDEF mark glyph class: smallv (U+065A), uni0653 (U+0653), uni0654 (U+0654), uni0655 (U+0655), uni0670 (U+0670) and uni06DB (U+06DB)

[code: mark-chars]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
* ⚠️ **WARN**

The following non-mark characters should not be in the GDEF mark glyph class: U+FC5E, U+FC5F, U+FC60, U+FC61, U+FC62 and U+FC63

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
* ⚠️ **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: uni00AD    Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12

- Glyph name: uni00AD   Contours detected: 1    Expected: 0

- Glyph name: uni25CC   Contours detected: 8    Expected: 16 or 12
[code: contour-count]
⚠️ WARN Check math signs have the same width.
* ⚠️ **WARN**

The most common width is 403 among a set of 7 math glyphs. The following math glyphs have a different width, though:

Width = 450: greaterequal, greater, lessequal, less

[code: width-outliers]
⚠️ WARN Does the font contain a soft hyphen?
* ⚠️ **WARN**

This font has a 'Soft Hyphen' character.

[code: softhyphen]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
* ⚠️ **WARN**

The following glyphs have semi-vertical/semi-horizontal lines:

* uni0666.tab (U+E128): L<<394.0,10.0>--<395.0,376.0>>

* uni0666: L<<238.0,10.0>--<239.0,376.0>>
[code: found-semi-vertical]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
* ⚠️ **WARN**

The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.

  • U+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: canadian-aboriginal, yi, tifinagh
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi 117 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, latin, menu

[code: unreachable-subsetting]
⚠️ WARN Is there kerning info for non-ligated sequences?
* ⚠️ **WARN**

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

- f + i

- f + l
[code: lacks-kern-info]
⚠️ WARN Are there caret positions declared for every ligature?
* ⚠️ **WARN**

This font lacks caret position values for ligature glyphs on its GDEF table.

[code: lacks-caret-pos]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table.
* ⚠️ **WARN**

This font file does not have a 'meta' table.

[code: lacks-meta-table]
⚠️ WARN Ensure Stylistic Sets have description.
* ⚠️ **WARN**

The stylistic set ss01 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss02 lacks a description string on the 'name' table.

[code: missing-description] * ⚠️ **WARN**

The stylistic set ss03 lacks a description string on the 'name' table.

[code: missing-description]
ℹ️ INFO List all superfamily filepaths
* ℹ️ **INFO**

ofl/zain

[code: family-path]
ℹ️ INFO Font contains all required tables?
* ℹ️ **INFO**

This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp
[code: optional-tables]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL?
* ℹ️ **INFO**

Found a git repo URL: https://github.com/googlefonts/zain

[code: url-found]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
* ℹ️ **INFO**

This font doesn't have an ARTICLE.en_us.html file.

[code: missing-article]
ℹ️ INFO EPAR table present in font?
* ℹ️ **INFO**

EPAR table not present in font. To learn more see https://github.com/fonttools/fontbakery/issues/818

[code: lacks-EPAR]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
* ℹ️ **INFO**

These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
ℹ️ INFO Show hinting filesize impact.
* ℹ️ **INFO**

Hinting filesize impact:

ofl/zain/Zain-Regular.ttf
Dehinted Size 120.8kb
Hinted Size 177.5kb
Increase 56.7kb
Change 46.9 %
[code: size-impact]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table.
* ℹ️ **INFO**

All of the fonts lack a STAT table.

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 13 79 368 49 889 0
0% 0% 1% 6% 26% 4% 64% 0%

Note: The following loglevels were omitted in this report:

emmamarichal commented 5 days ago

Context: here is the update: (glyphs added)

Screenshot 2024-06-27 at 14 23 35