Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Colorfonts description #8908

Open
wants to merge 21 commits into
base: main
Choose a base branch
from
Open

Colorfonts description #8908

wants to merge 21 commits into from

Conversation

emmamarichal
Copy link
Collaborator

This PR adds some precisions about what technology each color fonts is using.
see #8435

@m4rc1e

@emmamarichal emmamarichal requested a review from m4rc1e January 14, 2025 14:21
@emmamarichal emmamarichal linked an issue Jan 14, 2025 that may be closed by this pull request
Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[29] AmiriQuran-Regular.ttf
🔥 FAIL Check tabular widths don't have kerning. tabular_kerning
  • 🔥 FAIL

    Kerning between V and zero is -14, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between zero and V is -17, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between Y and zero is -18, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between zero and Y is -21, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between A and zero is -10, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between zero and A is -10, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between L and seven is -13, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between W and zero is -12, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between zero and W is -14, should be 0


    [code: has-tabular-kerning]

🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/amiri'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_TransLatin_Pinyin glyphset:

FAIL messages Languages
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍إٔ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍ؤٍّ' ar_Arab (Arabic)
Shaper didn't attach uni0670 to the base glyph when shaping the text '‍إٰ' ar_Arab (Arabic)
Shaper didn't attach uni0653 to the base glyph when shaping the text '‍إٓ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍إٔ' ar_Arab (Arabic)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍إً' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍إٌ' ar_Arab (Arabic)
Shaper didn't attach uni064E to the base glyph when shaping the text '‍إَ' ar_Arab (Arabic)
Shaper didn't attach uni064F to the base glyph when shaping the text '‍إُ' ar_Arab (Arabic)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍إّ' ar_Arab (Arabic)
Shaper didn't attach uni0652 to the base glyph when shaping the text '‍إْ' ar_Arab (Arabic)
Shaper didn't attach uni0651 to glyph00106 ar_Arab (Arabic)
Shaper didn't attach uni0651 to glyph00563 ar_Arab (Arabic)
Shaper didn't attach uni0651 to uni0650 ar_Arab (Arabic)
Shaper didn't attach uni0651 to uni064D ar_Arab (Arabic)
Shaper didn't attach uni0651 to glyph00546 ar_Arab (Arabic)
Shaper didn't attach uni0651 to glyph00552 ar_Arab (Arabic)
Shaper didn't attach uni0670 to the base glyph when shaping the text '‍آٰ' ar_Arab (Arabic)
Shaper didn't attach uni0653 to the base glyph when shaping the text '‍آٓ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍آٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0653 to the base glyph when shaping the text '‍إٓ' ar_Arab (Arabic)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍آً' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍آٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍آٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064E to the base glyph when shaping the text '‍آَ' ar_Arab (Arabic)
Shaper didn't attach uni064F to the base glyph when shaping the text '‍آُ' ar_Arab (Arabic)
Shaper didn't attach uni0650 to the base glyph when shaping the text '‍آِ' ar_Arab (Arabic)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍آّ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0652 to the base glyph when shaping the text '‍آْ' ar_Arab (Arabic)
Shaper didn't attach uni0650 to the base glyph when shaping the text '‍آِّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍آٍّ' ar_Arab (Arabic)
Shaper didn't attach uni0670 to the base glyph when shaping the text 'آٰ' ar_Arab (Arabic)
Shaper didn't attach uni0653 to the base glyph when shaping the text 'آٓ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'آٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'آً' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'آٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'آٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064E to the base glyph when shaping the text 'آَ' ar_Arab (Arabic)
Shaper didn't attach uni064F to the base glyph when shaping the text 'آُ' ar_Arab (Arabic)
Shaper didn't attach uni0650 to the base glyph when shaping the text 'آِ' ar_Arab (Arabic)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'آّ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0652 to the base glyph when shaping the text 'آْ' ar_Arab (Arabic)
Shaper didn't attach uni0650 to the base glyph when shaping the text 'آِّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text 'آٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍دٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍دٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text 'دٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'دٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍ذٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍ذٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text 'ذٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'ذٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍رٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍رٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍زٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍زٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to space ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍وٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍وٍّ' ar_Arab (Arabic)
Some base glyphs were missing: پ, چ, ژ, ک, گ fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍پً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍پٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍پٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍پّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍پٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to space fa_Arab (Persian)
Shaper didn't attach uni064C to space fa_Arab (Persian)
Shaper didn't attach uni0651 to space fa_Arab (Persian)
Shaper didn't attach uni0654 to space fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'پً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'پٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'پٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'پّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'پٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍چً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍چٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍چٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍چّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍چٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'چً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'چٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'چٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'چّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'چٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍ژً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍ژٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ژٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍ژّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍ژٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'ژً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'ژٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ژٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'ژّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'ژٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍کً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍کٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍کٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍کّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍کٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'کً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'کٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'کٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'کّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'کٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍گً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍گٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍گٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍گّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍گٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'گً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'گٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'گٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'گّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'گٔ' fa_Arab (Persian)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid127=0@180,68+0 gid644=0+369
Some base glyphs were missing: ٹ, پ, چ, ڈ, ڑ, ژ, ک, گ, ھ, ہ, ے ur_Arab (Urdu)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_TransLatin_Pinyin glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: پ, چ, ژ, ڜ, ڢ, ڤ, ڥ, ڧ, ڨ, ک, گ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٻ, ټ, ٽ, ۂ, ۃ ur_Arab (Urdu)
[code: warning-language-shaping]
🔥 FAIL Does DESCRIPTION file contain broken links? googlefonts/description/broken_links
  • 🔥 FAIL

    The following links are broken in the description file:
    http://amirifont.org (status code: 405)


    [code: broken-links]
🔥 FAIL Ensure font has the expected color font tables. googlefonts/colorfont_tables
  • 🔥 FAIL

    Font has a COLR v0 table, which is already widely supported, so the SVG table isn't needed.


    [code: drop-svg]
🔥 FAIL Check Google Fonts glyph coverage. googlefonts/glyph_coverage
  • 🔥 FAIL

    Missing required codepoints:

- 0x2122 (TRADE MARK SIGN)

[code: missing-codepoints]

🔥 FAIL Version format is correct in 'name' table? googlefonts/name/version_format
  • 🔥 FAIL

    The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000. The "Version " prefix is a recommendation given by the OpenType spec. Current version string is: "0.117-H1"


    [code: bad-version-strings]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if uppercase glyphs are vertically centered. caps_vertically_centered
  • ⚠️ WARN

    Uppercase glyphs are not vertically centered in the em box.


    [code: vertical-metrics-not-centered]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 480: less

Width = 551: equal

Width = 481: greater

Width = 453: multiply

Width = 584: divide

Width = 596: minus

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* uniFDFD (U+FDFD): B<<1852.0,143.0>-<1854.0,149.0>-<1858.0,149.0>> has the same coordinates as a previous segment.

* uniFDFD (U+FDFD): B<<1858.0,149.0>-<1863.0,149.0>-<1866.0,145.0>> has the same coordinates as a previous segment.

* uniFDFD (U+FDFD): B<<3283.0,54.0>-<3285.0,60.0>-<3289.0,60.0>> has the same coordinates as a previous segment.

* uniFDFD (U+FDFD): B<<3289.0,60.0>-<3294.0,60.0>-<3297.0,56.0>> has the same coordinates as a previous segment.

* uni0624 (U+0624): B<<198.0,161.0>-<223.0,133.0>-<260.0,157.0>> has the same coordinates as a previous segment.

* uni0648 (U+0648): B<<198.0,161.0>-<223.0,133.0>-<260.0,157.0>> has the same coordinates as a previous segment.

* uniFDFA (U+FDFA): B<<970.0,78.0>-<983.0,63.0>-<1004.0,75.0>> has the same coordinates as a previous segment.

* glyph00750: B<<344.0,161.0>-<369.0,133.0>-<406.0,157.0>> has the same coordinates as a previous segment.

* glyph01467: B<<198.0,161.0>-<223.0,133.0>-<260.0,157.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0305 COMBINING OVERLINE: try adding one of: gothic, math, glagolitic, elbasan, coptic
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+0325 COMBINING RING BELOW: try adding syriac
  • U+2000 EN QUAD: try adding symbols2
  • U+2001 EM QUAD: try adding symbols2
  • U+2003 EM SPACE: try adding nushu
  • U+2004 THREE-PER-EM SPACE: try adding symbols2
  • U+2005 FOUR-PER-EM SPACE: try adding symbols2
  • U+2006 SIX-PER-EM SPACE: try adding symbols2
  • U+2007 FIGURE SPACE: try adding symbols2 12 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 Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OTHER DEALINGS IN THE FONT SOFTWARE.\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Do any segments have colinear vectors? outline_colinear_vectors
  • ⚠️ WARN

    The following glyphs have colinear vectors:

* glyph01313: L<<27.0,356.0>--<229.0,356.0>> -> L<<229.0,356.0>--<270.0,358.0>>

* uniFDFA (U+FDFA): L<<194.0,202.0>--<184.0,304.0>> -> L<<184.0,304.0>--<184.0,305.0>>

* uniFDFA (U+FDFA): L<<201.0,114.0>--<201.0,122.0>> -> L<<201.0,122.0>--<199.0,144.0>>

[code: found-colinear-vectors]

⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* uni202C (U+202C) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* at (U+0040): B<<415.5,101.0>-<418.0,116.0>-<420.0,122.0>>/B<<420.0,122.0>-<413.0,109.0>-<398.5,87.5>> = 9.865806943084328

* glyph00753: B<<254.0,0.0>-<142.0,0.0>-<105.0,239.0>>/B<<105.0,239.0>-<97.0,113.0>-<40.0,50.0>> = 12.433148615868687

* glyph00762: B<<347.0,276.0>-<258.0,263.0>-<227.0,456.0>>/B<<227.0,456.0>-<222.0,332.0>-<106.0,257.0>> = 11.434071436961634

* glyph00888: B<<603.0,-11.0>-<543.0,1.0>-<516.0,83.0>>/L<<516.0,83.0>--<523.0,31.0>> = 10.558270849540243

* glyph00894: B<<573.5,1.5>-<564.0,26.0>-<559.0,57.0>>/B<<559.0,57.0>-<564.0,20.0>-<566.5,-24.5>> = 1.4662953237050957

* glyph00999: B<<254.0,0.0>-<142.0,0.0>-<105.0,239.0>>/B<<105.0,239.0>-<97.0,113.0>-<40.0,50.0>> = 12.433148615868687

* glyph01013: B<<347.0,276.0>-<258.0,263.0>-<227.0,456.0>>/B<<227.0,456.0>-<222.0,332.0>-<106.0,257.0>> = 11.434071436961634

* glyph01186: B<<603.0,-11.0>-<543.0,1.0>-<516.0,83.0>>/L<<516.0,83.0>--<523.0,31.0>> = 10.558270849540243

* glyph01192: B<<573.5,1.5>-<564.0,26.0>-<559.0,57.0>>/B<<559.0,57.0>-<564.0,20.0>-<566.5,-24.5>> = 1.4662953237050957

* uni06DD (U+06DD): B<<625.0,455.0>-<639.0,445.0>-<640.0,436.0>>/B<<640.0,436.0>-<641.0,446.0>-<654.0,455.0>> = 12.050784883409548

* 17 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* R (U+0052): L<<117.0,113.0>--<116.0,530.0>>

* R (U+0052): L<<201.0,529.0>--<202.0,325.0>>

* glyph00134: L<<305.0,149.0>--<63.0,151.0>>

* glyph00135: L<<305.0,149.0>--<63.0,151.0>>

* glyph00160: L<<305.0,149.0>--<63.0,151.0>>

* glyph00161: L<<305.0,149.0>--<63.0,151.0>>

* glyph00847: L<<305.0,149.0>--<63.0,151.0>>

* glyph00871: L<<305.0,149.0>--<63.0,151.0>>

* glyph01150: L<<305.0,149.0>--<63.0,151.0>>

* glyph01175: L<<305.0,149.0>--<63.0,151.0>>

* z (U+007A): L<<285.0,387.0>--<148.0,388.0>>

[code: found-semi-vertical]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. googlefonts/name/description_max_length
  • ⚠️ WARN

    A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries.


    [code: too-long]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/amiriquran


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/amiriquran/AmiriQuran-Regular.ttf
Dehinted Size 330.1kb
Hinted Size 330.1kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['0.117-H1']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 7 14 58 9 150 0
0% 0% 3% 6% 24% 4% 63% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Experimental checks

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

[1] ArefRuqaaInk-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. base_has_width
  • 🔥 FAIL

    The following glyphs had zero advance width:

  • uni0640 (U+0640)


    [code: zero-width-bases]
[1] ArefRuqaaInk-Bold.ttf
🔥 FAIL Check base characters have non-zero advance width. base_has_width
  • 🔥 FAIL

    The following glyphs had zero advance width:

  • uni0640 (U+0640)


    [code: zero-width-bases]

All other checks

[32] ArefRuqaaInk-Regular.ttf
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Ensure component transforms do not perform scaling or rotation. transformed_components
  • 🔥 FAIL

    The following glyphs had components with scaling or rotation
    or inverted outline direction:

  • glyph00409 (component uni060C)
  • glyph00410 (component uni061B)
[code: transformed-components]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/aref-ruqaa'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_TransLatin_Arabic glyphset:

FAIL messages Languages
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍جٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'جٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍حٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'حٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍خٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'خٕ' ar_Arab (Arabic)
Shaper didn't attach uni0670 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0653 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0654 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0655 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064B to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064C to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064D to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064E to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064F to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0650 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0651 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0652 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064E to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064B to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni0650 to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064D to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064F to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064C to uni0651 ar_Arab (Arabic)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid463=0@461,751+0 gid471=0+741
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_TransLatin_Arabic glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٺ, ٻ, ټ, ٽ, ۃ ur_Arab (Urdu)
[code: warning-language-shaping]
🔥 FAIL Check Google Fonts glyph coverage. googlefonts/glyph_coverage
  • 🔥 FAIL

    Missing required codepoints:

- 0x2122 (TRADE MARK SIGN)

[code: missing-codepoints]

⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks. opentype/gdef_non_mark_chars
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+0640


    [code: non-mark-chars]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if uppercase glyphs are vertically centered. caps_vertically_centered
  • ⚠️ WARN

    Uppercase glyphs are not vertically centered in the em box.


    [code: vertical-metrics-not-centered]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 710: less

Width = 823: equal

Width = 711: greater

Width = 777: logicalnot

Width = 763: plusminus

Width = 603: multiply

Width = 824: divide

Width = 892: minus

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* glyph00651: L<<320.0,210.0>--<324.0,211.0>> has the same coordinates as a previous segment.

* glyph00653: L<<562.0,201.0>--<566.0,203.0>> has the same coordinates as a previous segment.

* glyph00900: L<<259.0,177.0>--<259.0,176.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? googlefonts/metadata/designer_profiles
  • ⚠️ WARN

    It seems that Hermann Zapf is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, cherokee, tifinagh, coptic
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+0327 COMBINING CEDILLA: try adding math
  • U+2074 SUPERSCRIPT FOUR: try adding math
  • U+2118 SCRIPT CAPITAL P: try adding math
  • U+2126 OHM SIGN: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
  • U+2206 INCREMENT: try adding math

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

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- \n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development\n

+ of collaborative font projects, to support the font creation efforts of academic\n

+ and linguistic communities, and to provide a free and open framework in which\n

+ fonts may be shared and improved in partnership with others.\n

+ \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed\n

- redistributed freely as long as they are not sold by themselves. The\n

+ freely as long as they are not sold by themselves. The fonts, including any\n

+ derivative works, can be bundled, embedded, redistributed and/or sold with any\n

+ software provided that any reserved names are not used by derivative works. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

+ fonts and derivatives, however, cannot be released under any other type of license.\n

- requirement for fonts to remain under this license does not apply\n

+ The requirement for fonts to remain under this license does not apply to any\n

- to any document created using the fonts or their derivatives.\n

+ document created using the fonts or their derivatives.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under\n

+ this license and clearly marked as such. This may include source files, build\n

+ scripts and documentation.\n

+ \n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright\n

- copyright statement(s).\n

+ statement(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or\n

- or substituting -- in part or in whole -- any of the components of the\n

+ substituting -- in part or in whole -- any of the components of the Original Version,\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other\n

- writer or other person who contributed to the Font Software.\n

+ person who contributed to the Font Software.\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

- in Original or Modified Versions, may be sold by itself.\n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the\n

+ Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell\n

+ modified and unmodified copies of the Font Software, subject to the following\n

+ conditions:\n

+ 1) Neither the Font Software nor any of its individual components, in Original or\n

+ Modified Versions, may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed\n

+ and/or sold with any software, provided that each copy contains the above copyright\n

+ notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within\n

+ text or binary files as long as those fields can be easily viewed by the user.\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless\n

+ explicit written permission is granted by the corresponding Copyright Holder. This\n

+ restriction only applies to the primary font name as presented to the users.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall\n

+ not be used to promote, endorse or advertise any Modified Version, except to\n

+ acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with\n

+ their explicit written permission.\n

+ \n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed\n

+ entirely under this license, and must not be distributed under any other license. The\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

+ requirement for fonts to remain under this license does not apply to any document\n

- using the Font Software.\n

+ created using the Font Software.\n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n

+ PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER\n

+ RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

+ LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR\n

+ INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. googlefonts/metadata/reserved_font_name
  • ⚠️ WARN

    METADATA.pb: copyright field ("Copyright 2015-2022 The Aref Ruqaa Project Authors (https://github.com/aliftype/aref-ruqaa), with Reserved Font Name EURM10.") contains "Reserved Font Name". This is an error except in a few specific rare cases.


    [code: rfn]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Name table strings must not contain the string 'Reserved Font Name'. googlefonts/name/rfn
  • ⚠️ WARN

    Name table entry contains "Reserved Font Name" for a family name (EURM10) that differs from the currently used family name (ArefRuqaaInk), which is fine.


    [code: legacy-familyname]
⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Do any segments have colinear vectors? outline_colinear_vectors
  • ⚠️ WARN

    The following glyphs have colinear vectors:

* W (U+0057): L<<716.0,146.0>--<796.0,316.0>> -> L<<796.0,316.0>--<905.0,558.0>>

* glyph00022: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00037: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00049: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00050: L<<55.0,-120.0>--<62.0,-105.0>> -> L<<62.0,-105.0>--<63.0,-103.0>>

* glyph00050: L<<62.0,-105.0>--<63.0,-103.0>> -> L<<63.0,-103.0>--<122.0,12.0>>

* glyph00082: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00096: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00097: L<<164.0,187.0>--<181.0,190.0>> -> L<<181.0,190.0>--<207.0,194.0>>

* glyph00110: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* 44 more.

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

[code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph00409 has a counter-clockwise outer contour

* glyph00410 has a counter-clockwise outer contour

* glyph00410 has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* Z (U+005A): B<<234.0,186.0>-<187.0,113.0>-<153.0,61.0>>/L<<153.0,61.0>--<159.0,68.0>> = 7.42278298561167

* glyph00061: L<<5.0,-157.0>--<59.0,-91.0>>/L<<59.0,-91.0>--<58.0,-93.0>> = 12.724355685422335

* glyph00221: L<<333.0,125.0>--<333.0,124.0>>/L<<333.0,124.0>--<332.0,135.0>> = 5.1944289077348

* glyph00221: L<<343.0,0.0>--<333.0,125.0>>/L<<333.0,125.0>--<333.0,124.0>> = 4.573921259900818

* glyph00336: B<<556.0,110.5>-<557.0,113.0>-<558.0,114.0>>/B<<558.0,114.0>-<540.0,101.0>-<527.0,95.0>> = 9.162347045721665

* glyph00337: L<<365.0,271.0>--<365.0,270.0>>/B<<365.0,270.0>-<366.0,287.0>-<360.0,310.0>> = 3.3664606634298315

* glyph00565: L<<603.0,279.0>--<529.0,221.0>>/B<<529.0,221.0>-<541.0,235.0>-<538.5,240.5>> = 11.309932474020227

* glyph00571: B<<820.5,482.0>-<830.0,497.0>-<838.0,510.0>>/B<<838.0,510.0>-<824.0,479.0>-<829.5,458.5>> = 7.302952980312182

* glyph00607: B<<610.5,230.0>-<647.0,257.0>-<657.0,287.0>>/B<<657.0,287.0>-<649.0,246.0>-<628.5,207.0>> = 7.394008642598206

* glyph00609: L<<714.0,253.0>--<640.0,222.0>>/B<<640.0,222.0>-<655.0,230.0>-<655.0,246.0>> = 5.34275485590833

* 30 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* E (U+0045): L<<8.0,681.0>--<156.0,682.0>>

* Eacute (U+00C9): L<<8.0,681.0>--<156.0,682.0>>

* Ecircumflex (U+00CA): L<<8.0,681.0>--<156.0,682.0>>

* Edieresis (U+00CB): L<<8.0,681.0>--<156.0,682.0>>

* Egrave (U+00C8): L<<8.0,681.0>--<156.0,682.0>>

* OE (U+0152): L<<518.0,681.0>--<635.0,682.0>>

[code: found-semi-vertical]

⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x02 - Use grayscale rendering

[code: ranges]
  • ⚠️ WARN

    The gasp range 0xFFFF value 0x02 should be set to 0x0F.


    [code: unset-flags]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/arefruqaaink


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/arefruqaaink/ArefRuqaaInk-Regular.ttf
Dehinted Size 554.7kb
Hinted Size 554.7kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.005']


    [code: version-not-detected]
[32] ArefRuqaaInk-Bold.ttf
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Ensure component transforms do not perform scaling or rotation. transformed_components
  • 🔥 FAIL

    The following glyphs had components with scaling or rotation
    or inverted outline direction:

  • glyph00408 (component uni060C)
  • glyph00409 (component uni061B)
[code: transformed-components]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/aref-ruqaa'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_TransLatin_Arabic glyphset:

FAIL messages Languages
Shaper didn't attach uni0670 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0653 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0654 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0655 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064B to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064C to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064D to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064E to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064F to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0650 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0651 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0652 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064E to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064B to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni0650 to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064D to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064F to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064C to uni0651 ar_Arab (Arabic)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid464=0@461,751+0 gid471=0+741
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_TransLatin_Arabic glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٺ, ٻ, ټ, ٽ, ۃ ur_Arab (Urdu)
[code: warning-language-shaping]
🔥 FAIL Check Google Fonts glyph coverage. googlefonts/glyph_coverage
  • 🔥 FAIL

    Missing required codepoints:

- 0x2122 (TRADE MARK SIGN)

[code: missing-codepoints]

⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks. opentype/gdef_non_mark_chars
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+0640


    [code: non-mark-chars]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if uppercase glyphs are vertically centered. caps_vertically_centered
  • ⚠️ WARN

    Uppercase glyphs are not vertically centered in the em box.


    [code: vertical-metrics-not-centered]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 430: less

Width = 734: equal

Width = 405: greater

Width = 868: logicalnot

Width = 893: plusminus

Width = 623: multiply

Width = 878: divide

Width = 1003: minus

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* glyph00611: L<<847.0,204.0>--<861.0,212.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? googlefonts/metadata/designer_profiles
  • ⚠️ WARN

    It seems that Hermann Zapf is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, cherokee, tifinagh, coptic
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+0327 COMBINING CEDILLA: try adding math
  • U+2074 SUPERSCRIPT FOUR: try adding math
  • U+2118 SCRIPT CAPITAL P: try adding math
  • U+2126 OHM SIGN: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
  • U+2206 INCREMENT: try adding math

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

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- \n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development\n

+ of collaborative font projects, to support the font creation efforts of academic\n

+ and linguistic communities, and to provide a free and open framework in which\n

+ fonts may be shared and improved in partnership with others.\n

+ \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed\n

- redistributed freely as long as they are not sold by themselves. The\n

+ freely as long as they are not sold by themselves. The fonts, including any\n

+ derivative works, can be bundled, embedded, redistributed and/or sold with any\n

+ software provided that any reserved names are not used by derivative works. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

+ fonts and derivatives, however, cannot be released under any other type of license.\n

- requirement for fonts to remain under this license does not apply\n

+ The requirement for fonts to remain under this license does not apply to any\n

- to any document created using the fonts or their derivatives.\n

+ document created using the fonts or their derivatives.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under\n

+ this license and clearly marked as such. This may include source files, build\n

+ scripts and documentation.\n

+ \n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright\n

- copyright statement(s).\n

+ statement(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or\n

- or substituting -- in part or in whole -- any of the components of the\n

+ substituting -- in part or in whole -- any of the components of the Original Version,\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other\n

- writer or other person who contributed to the Font Software.\n

+ person who contributed to the Font Software.\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

- in Original or Modified Versions, may be sold by itself.\n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the\n

+ Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell\n

+ modified and unmodified copies of the Font Software, subject to the following\n

+ conditions:\n

+ 1) Neither the Font Software nor any of its individual components, in Original or\n

+ Modified Versions, may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed\n

+ and/or sold with any software, provided that each copy contains the above copyright\n

+ notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within\n

+ text or binary files as long as those fields can be easily viewed by the user.\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless\n

+ explicit written permission is granted by the corresponding Copyright Holder. This\n

+ restriction only applies to the primary font name as presented to the users.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall\n

+ not be used to promote, endorse or advertise any Modified Version, except to\n

+ acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with\n

+ their explicit written permission.\n

+ \n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed\n

+ entirely under this license, and must not be distributed under any other license. The\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

+ requirement for fonts to remain under this license does not apply to any document\n

- using the Font Software.\n

+ created using the Font Software.\n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n

+ PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER\n

+ RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

+ LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR\n

+ INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. googlefonts/metadata/reserved_font_name
  • ⚠️ WARN

    METADATA.pb: copyright field ("Copyright 2015-2022 The Aref Ruqaa Project Authors (https://github.com/aliftype/aref-ruqaa), with Reserved Font Name EURM10.") contains "Reserved Font Name". This is an error except in a few specific rare cases.


    [code: rfn]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Name table strings must not contain the string 'Reserved Font Name'. googlefonts/name/rfn
  • ⚠️ WARN

    Name table entry contains "Reserved Font Name" for a family name (EURM10) that differs from the currently used family name (ArefRuqaaInk), which is fine.


    [code: legacy-familyname]
⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Do any segments have colinear vectors? outline_colinear_vectors
  • ⚠️ WARN

    The following glyphs have colinear vectors:

* glyph00024: L<<294.0,91.0>--<282.0,88.0>> -> L<<282.0,88.0>--<276.0,87.0>>

* glyph00029: L<<355.0,229.0>--<350.0,217.0>> -> L<<350.0,217.0>--<295.0,98.0>>

* glyph00047: L<<432.0,350.0>--<410.0,314.0>> -> L<<410.0,314.0>--<400.0,297.0>>

* glyph00054: L<<366.0,337.0>--<376.0,340.0>> -> L<<376.0,340.0>--<380.0,341.0>>

* glyph00063: L<<112.0,41.0>--<86.0,23.0>> -> L<<86.0,23.0>--<57.0,5.0>>

* glyph00118: L<<445.0,152.0>--<448.0,152.0>> -> L<<448.0,152.0>--<462.0,153.0>>

* glyph00119: L<<445.0,152.0>--<448.0,152.0>> -> L<<448.0,152.0>--<462.0,153.0>>

* glyph00122: L<<448.0,135.0>--<437.0,132.0>> -> L<<437.0,132.0>--<425.0,128.0>>

* glyph00124: L<<204.0,186.0>--<204.0,188.0>> -> L<<204.0,188.0>--<183.0,502.0>>

* glyph00128: L<<295.0,333.0>--<295.0,335.0>> -> L<<295.0,335.0>--<274.0,649.0>>

* 83 more.

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

[code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph00408 has a counter-clockwise outer contour

* glyph00409 has a counter-clockwise outer contour

* glyph00409 has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* glyph00027: B<<182.5,26.0>-<170.0,39.0>-<175.0,66.0>>/B<<175.0,66.0>-<175.0,65.0>-<172.0,65.0>> = 10.491477012331599

* glyph00042: B<<225.0,404.5>-<203.0,403.0>-<183.0,400.0>>/L<<183.0,400.0>--<184.0,400.0>> = 8.530765609948139

* glyph00042: L<<183.0,400.0>--<184.0,400.0>>/B<<184.0,400.0>-<164.0,396.0>-<156.5,408.0>> = 11.309932474020195

* glyph00051: L<<61.0,9.0>--<62.0,10.0>>/L<<62.0,10.0>--<53.0,3.0>> = 7.1250163489018075

* glyph00051: L<<82.0,22.0>--<61.0,9.0>>/L<<61.0,9.0>--<62.0,10.0>> = 13.24051991518721

* glyph00052: L<<221.0,320.0>--<222.0,320.0>>/B<<222.0,320.0>-<206.0,323.0>-<207.0,337.0>> = 10.61965527615514

* glyph00055: L<<134.0,13.0>--<134.0,12.0>>/L<<134.0,12.0>--<137.0,28.0>> = 10.61965527615514

* glyph00087: L<<117.0,343.0>--<115.0,344.0>>/B<<115.0,344.0>-<125.0,341.0>-<125.0,330.0>> = 9.865806943084328

* glyph00096: L<<179.0,208.0>--<205.0,211.0>>/L<<205.0,211.0>--<204.0,211.0>> = 6.581944655178027

* glyph00096: L<<205.0,211.0>--<204.0,211.0>>/L<<204.0,211.0>--<314.0,234.0>> = 11.809882957028252

* 90 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* I (U+0049): L<<243.0,618.0>--<242.0,367.0>>

* Iacute (U+00CD): L<<243.0,618.0>--<242.0,367.0>>

* Icircumflex (U+00CE): L<<243.0,618.0>--<242.0,367.0>>

* Idieresis (U+00CF): L<<243.0,618.0>--<242.0,367.0>>

* Igrave (U+00CC): L<<243.0,618.0>--<242.0,367.0>>

* d (U+0064): L<<491.0,436.0>--<490.0,143.0>>

* glyph00861: L<<427.0,280.0>--<428.0,445.0>>

* glyph00871: L<<939.0,254.0>--<940.0,419.0>>

* mu (U+00B5): L<<432.0,116.0>--<433.0,255.0>>

[code: found-semi-vertical]

⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x02 - Use grayscale rendering

[code: ranges]
  • ⚠️ WARN

    The gasp range 0xFFFF value 0x02 should be set to 0x0F.


    [code: unset-flags]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/arefruqaaink


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/arefruqaaink/ArefRuqaaInk-Bold.ttf
Dehinted Size 616.2kb
Hinted Size 616.2kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.005']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 12 40 112 15 280 0
0% 0% 3% 9% 24% 3% 61% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[25] BlakaInk-Regular.ttf
🔥 FAIL Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • 🔥 FAIL

    Lcaron uses component uni030C.


    [code: wrong-mark]

  • 🔥 FAIL

    dcaron uses component uni030C.


    [code: wrong-mark]

  • 🔥 FAIL

    lcaron uses component uni030C.


    [code: wrong-mark]

  • 🔥 FAIL

    tcaron uses component uni030C.


    [code: wrong-mark]

🔥 FAIL PPEM must be an integer on hinted fonts. integer_ppem_if_hinted
  • 🔥 FAIL

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

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

# create virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/gftools
[code: bad-flags]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_TransLatin_Arabic glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
Some base glyphs were missing: ـ ar_Arab (Arabic)
Some mark glyphs were missing: ◌ٰ ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ءٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍أٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'أٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ؤٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ؤٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍إٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text 'إٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ئٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to space ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ئٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍اٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'اٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍آٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'آٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍بٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'بٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ةٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ةٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍تٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'تٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ثٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ثٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍جٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'جٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍حٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'حٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍خٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'خٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍دٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'دٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ذٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ذٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍رٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'رٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍زٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'زٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍سٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'سٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍شٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'شٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍صٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'صٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ضٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ضٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍طٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'طٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ظٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ظٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍عٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'عٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍غٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'غٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍فٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'فٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍قٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'قٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍كٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text 'كٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍لٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'لٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍مٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'مٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍نٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'نٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍هٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'هٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍وٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'وٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ىٌ' ar_Arab (Arabic)
.medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned gid607=1+0 gid300=1+646
.init version of ARABIC LETTER ALEF MAKSURA; both buffers returned gid607=0+0 gid300=0+646
Shaper didn't attach uni064C to the base glyph when shaping the text 'ىٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍يٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text 'يٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍پٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'پٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍چٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'چٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ژٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ژٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍کٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'کٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍گٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'گٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍یٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'یٌ' fa_Arab (Persian)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid315=0@113,-52+0 gid298=0+423
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_TransLatin_Arabic glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: Ŀ, ŀ ca_Latn (Catalan)
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: IJ, ij nl_Latn (Dutch)
Some auxiliary glyphs were missing: ـ, ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ـ‌‍‏, ٖ, ٰ fa_Arab (Persian)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٖ, ٗ, ٘, ٰ, ٺ, ٻ, ټ, ٽ ur_Arab (Urdu)
[code: warning-language-shaping]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ 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: dieresis	Contours detected: 1	Expected: 2
  • Glyph name: uni00AD Contours detected: 1 Expected: 0

  • Glyph name: Adieresis Contours detected: 3 Expected: 4

  • Glyph name: Edieresis Contours detected: 2 Expected: 3

  • Glyph name: Idieresis Contours detected: 2 Expected: 3

  • Glyph name: Odieresis Contours detected: 3 Expected: 4

  • Glyph name: Udieresis Contours detected: 2 Expected: 3

  • Glyph name: germandbls Contours detected: 2 Expected: 1

  • Glyph name: adieresis Contours detected: 3 Expected: 4

  • Glyph name: edieresis Contours detected: 3 Expected: 4

  • 44 more.

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

[code: contour-count]
⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

    This font lacks caret positioning values for these ligature glyphs:

  • glyph00148

- glyph00149

- glyph00150

- uniFB01

- uniFB02

[code: incomplete-caret-pos-data]

⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 465: plus, plusminus

Width = 364: greater, less

Width = 600: logicalnot

Width = 416: multiply

Width = 415: divide

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* Aogonek (U+0104): L<<257.0,-37.0>--<257.0,-37.0>> has the same coordinates as a previous segment.

* B (U+0042): L<<455.0,576.0>--<455.0,576.0>> has the same coordinates as a previous segment.

* Eogonek (U+0118): L<<116.0,-37.0>--<116.0,-37.0>> has the same coordinates as a previous segment.

* Euro (U+20AC): L<<318.0,-19.0>--<318.0,-19.0>> has the same coordinates as a previous segment.

* Iogonek (U+012E): L<<45.0,-37.0>--<45.0,-37.0>> has the same coordinates as a previous segment.

* K (U+004B): L<<422.0,312.0>--<422.0,312.0>> has the same coordinates as a previous segment.

* Uogonek (U+0172): L<<295.0,-37.0>--<295.0,-37.0>> has the same coordinates as a previous segment.

* aogonek (U+0105): L<<239.0,-37.0>--<239.0,-37.0>> has the same coordinates as a previous segment.

* at (U+0040): L<<426.0,-229.0>--<426.0,-229.0>> has the same coordinates as a previous segment.

* at (U+0040): L<<426.0,-229.0>--<426.0,-229.0>> has the same coordinates as a previous segment.

* 167 more.

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

[code: overlapping-path-segments]
⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- glyph00133

- glyph00134

- glyph00161

- glyph00219

- glyph00220

- glyph00224

- glyph00225

- glyph00227

- glyph00609

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: tifinagh, math, coptic, cherokee
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: syriac, math, old-permic, tai-le, coptic, todhri, tifinagh, canadian-aboriginal, hebrew, duployan, malayalam
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+0312 COMBINING TURNED COMMA ABOVE: try adding math
  • U+0326 COMBINING COMMA BELOW: try adding math
  • U+0327 COMBINING CEDILLA: try adding math
  • U+0328 COMBINING OGONEK: not included in any glyphset definition 9 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, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* E (U+0045): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Eacute (U+00C9): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Ecaron (U+011A): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Ecircumflex (U+00CA): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Edieresis (U+00CB): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Edotaccent (U+0116): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Egrave (U+00C8): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Emacron (U+0112): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Eogonek (U+0118): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* F (U+0046): L<<46.0,482.0>--<131.0,482.0>>/L<<131.0,482.0>--<27.0,492.0>> = 5.492324557127385

* 181 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* glyph00852: L<<34.0,254.0>--<35.0,381.0>>

[code: found-semi-vertical]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/blakaink


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/blakaink/BlakaInk-Regular.ttf
Dehinted Size 361.2kb
Hinted Size 382.3kb
Increase 21.2kb
Change 5.9 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 3 15 55 8 157 0
0% 0% 1% 6% 23% 3% 66% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Experimental checks

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

[1] CairoPlay[slnt,wght].ttf
💥 ERROR Check base characters have non-zero advance width. base_has_width
  • 💥 ERROR

    Failed with AttributeError: 'CheckRunContext' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 222, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/checks/base_has_width.py", line 46, in check_base_has_width
    problems = bullet_list(context, problems)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/utils.py", line 155, in bullet_list
    return f"{indentation}{bullet} " + pretty_print_list(
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/utils.py", line 140, in pretty_print_list
    if config.get("full_lists"):

[code: failed-check]

All other checks

[26] CairoPlay[slnt,wght].ttf
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks. arabic_spacing_symbols
  • 🔥 FAIL

    "dotabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "dotbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "twodotshorizontalabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "twodotshorizontalbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "threedotsupabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "threedotsupbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "threedotsdownabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "threedotsdownbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "twodotsverticalabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "twodotsverticalbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs. case_mapping
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+1EAB: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE U+1EAA: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
U+1EB0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE U+1EB1: LATIN SMALL LETTER A WITH BREVE AND GRAVE
U+1EC5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE U+1EC4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
U+1ED7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE U+1ED6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
[code: missing-case-counterparts]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned uni0654=0@173,97+0 uni0647=0+584
Some mark glyphs were missing: ◌̀, ◌́, ◌̈, ◌̧ ca_Latn (Catalan)
Some mark glyphs were missing: ◌́, ◌̊, ◌̌ cs_Latn (Czech)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈ cy_Latn (Welsh), it_Latn (Italian) and nl_Latn (Dutch)
Some mark glyphs were missing: ◌́, ◌̊ da_Latn (Danish)
Some base glyphs were missing: ẞ de_Latn (German)
Some mark glyphs were missing: ◌̀, ◌́, ◌̈ de_Latn (German)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̃, ◌̈, ◌̧ en_Latn (English) and pt_Latn (Portuguese)
Some mark glyphs were missing: ◌́, ◌̃, ◌̈ es_Latn (Spanish)
Some mark glyphs were missing: ◌̃, ◌̈, ◌̊, ◌̌ fi_Latn (Finnish)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈, ◌̧ fr_Latn (French)
Some mark glyphs were missing: ◌́, ◌̌ hr_Latn (Croatian)
Some mark glyphs were missing: ◌́, ◌̈, ◌̋ hu_Latn (Hungarian)
Some mark glyphs were missing: ◌́, ◌̈, ◌̨ is_Latn (Icelandic)
Some mark glyphs were missing: ◌̄, ◌̇, ◌̌, ◌̨ lt_Latn (Lithuanian)
Some mark glyphs were missing: ◌̄, ◌̌, ◌̧ lv_Latn (Latvian)
Some mark glyphs were missing: ◌̀, ◌̂, ◌̇ mt_Latn (Maltese)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈, ◌̊ nb_Latn (Norwegian Bokmål)
Some base glyphs were missing: ÍJ́, íj́ nl_Latn (Dutch)
Some mark glyphs were missing: ◌́, ◌̇, ◌̨ pl_Latn (Polish)
Some mark glyphs were missing: ◌̂, ◌̆, ◌̦, ◌̧ ro_Latn (Romanian)
Some mark glyphs were missing: ◌́, ◌̂, ◌̈, ◌̌ sk_Latn (Slovak)
Some mark glyphs were missing: ◌̈, ◌̧ sq_Latn (Albanian)
Some mark glyphs were missing: ◌̀, ◌́, ◌̈, ◌̊ sv_Latn (Swedish)
Some mark glyphs were missing: ◌̂, ◌̆, ◌̇, ◌̈, ◌̦, ◌̧ tr_Latn (Turkish)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٗ, ٺ, ٻ, ټ, ٽ ur_Arab (Urdu)
Some auxiliary glyphs were missing: Ŀ, ŀ ca_Latn (Catalan)
Some auxiliary glyphs were missing: ſ de_Latn (German)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǧ, ǧ, Ǩ, ǩ, Ǯ, ǯ, Ȟ, ȟ, ʒ, ẞ fi_Latn (Finnish)
Some auxiliary glyphs were missing: ſ, Ǔ, ǔ, ẞ fr_Latn (French)
Some auxiliary glyphs were missing: ẞ it_Latn (Italian), pl_Latn (Polish) and tr_Latn (Turkish)
Some auxiliary glyphs were missing: İ̀, İ́, İ̃, J̃, J̇̃, L̃, M̃, R̃, i̇̀, i̇́, i̇̃, j̃, j̇̃, l̃, m̃, r̃, Ą́, Ą̃, ą́, ą̃, Ė́, Ė̃, ė́, ė̃, Ę́, Ę̃, ę́, ę̃, Į́, Į̃, Į̇́, Į̇̃, į́, į̃, į̇́, į̇̃, Ū́, Ū̃, ū́, ū̃, Ų́, Ų̃, ų́, ų̃, Ẽ, ẽ lt_Latn (Lithuanian)
Some auxiliary glyphs were missing: Ǎ, ǎ nb_Latn (Norwegian Bokmål)
Some auxiliary glyphs were missing: IJ, ij nl_Latn (Dutch)
[code: warning-language-shaping]
🔥 FAIL Check variable font instances googlefonts/fvar_instances
  • 🔥 FAIL

    fvar instances are incorrect:

  • Add missing instances
Name current expected
ExtraLight Italic N/A wght=200.0, slnt=-11.0
ExtraLight wght=200.0, slnt=0.0 wght=200.0, slnt=0.0
Light Italic N/A wght=300.0, slnt=-11.0
Light wght=300.0, slnt=0.0 wght=300.0, slnt=0.0
Italic N/A wght=400.0, slnt=-11.0
Regular wght=400.0, slnt=0.0 wght=400.0, slnt=0.0
Medium Italic N/A wght=500.0, slnt=-11.0
Medium wght=500.0, slnt=0.0 wght=500.0, slnt=0.0
SemiBold Italic N/A wght=600.0, slnt=-11.0
SemiBold wght=600.0, slnt=0.0 wght=600.0, slnt=0.0
Bold Italic N/A wght=700.0, slnt=-11.0
Bold wght=700.0, slnt=0.0 wght=700.0, slnt=0.0
ExtraBold Italic N/A wght=800.0, slnt=-11.0
ExtraBold wght=800.0, slnt=0.0 wght=800.0, slnt=0.0
Black Italic N/A wght=900.0, slnt=-11.0
Black wght=900.0, slnt=0.0 wght=900.0, slnt=0.0
[code: bad-fvar-instances]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks. opentype/gdef_non_mark_chars
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBD and U+FBBE


    [code: non-mark-chars]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    dcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 0 start point differs in glyph 'acute.cap.color0' between location wght=200,slnt=0 and location wght=1000,slnt=0

- Contour 0 start point differs in glyph 'acute.cap.color0' between location wght=1000,slnt=0 and location wght=200,slnt=-11

- Contour 0 start point differs in glyph 'acute.cap.color0' between location wght=200,slnt=-11 and location wght=1000,slnt=-11

- Contour 0 start point differs in glyph 'acute.cap.color0' between location wght=1000,slnt=-11 and location wght=200,slnt=11

- Contour 0 start point differs in glyph 'acute.cap.color0' between location wght=200,slnt=11 and location wght=1000,slnt=11

- Contour 0 start point differs in glyph 'acute.cap' between location wght=200,slnt=0 and location wght=1000,slnt=0

- Contour 0 start point differs in glyph 'acute.cap' between location wght=1000,slnt=0 and location wght=200,slnt=-11

- Contour 0 start point differs in glyph 'acute.cap' between location wght=200,slnt=-11 and location wght=1000,slnt=-11

- Contour 0 start point differs in glyph 'acute.cap' between location wght=1000,slnt=-11 and location wght=200,slnt=11

- Contour 0 start point differs in glyph 'acute.cap' between location wght=200,slnt=11 and location wght=1000,slnt=11

- 376 more.

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

[code: interpolation-issues]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* oslash (U+00F8): L<<146.0,-111.0>--<94.0,-92.0>> has the same coordinates as a previous segment.

* oslash (U+00F8): L<<94.0,-92.0>--<380.0,606.0>> has the same coordinates as a previous segment.

* oslash (U+00F8): L<<380.0,606.0>--<432.0,587.0>> has the same coordinates as a previous segment.

* oslash (U+00F8): L<<432.0,587.0>--<146.0,-111.0>> has the same coordinates as a previous segment.

* oslashacute (U+01FF): L<<146.0,-111.0>--<94.0,-92.0>> has the same coordinates as a previous segment.

* oslashacute (U+01FF): L<<94.0,-92.0>--<380.0,606.0>> has the same coordinates as a previous segment.

* oslashacute (U+01FF): L<<380.0,606.0>--<432.0,587.0>> has the same coordinates as a previous segment.

* oslashacute (U+01FF): L<<432.0,587.0>--<146.0,-111.0>> has the same coordinates as a previous segment.

* uniFE8E (U+FE8E): L<<295.0,0.0>--<295.0,71.0>> has the same coordinates as a previous segment.

* uni0627.fina.short: L<<295.0,0.0>--<295.0,71.0>> has the same coordinates as a previous segment.

* 612 more.

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

[code: overlapping-path-segments]
⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- at.cap

- braceleft.cap

- braceright.cap

- bracketleft.cap

- bracketright.cap

- connection_r

- dotcenterar

- eight.pnum

- emdash.cap

- endash.cap

- 20 more.

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

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? valid_glyphnames
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_alefMaksuraar.fina.alt, alefMaksura_noonar.fina.alt.color0, alefMaksura_noonar.fina.alt.color1, noon_yehHamzaabovear.fina.color0, noon_yehHamzaabovear.fina.color1, noon_yehHamzaabovear.fina.color2, seen_yehHamzaabovear.fina.color0, seen_yehHamzaabovear.fina.color1, sheen_yehHamzaabovear.fina.color0, sheen_yehHamzaabovear.fina.color1 and 13 more.

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

[code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? googlefonts/metadata/designer_profiles
  • ⚠️ WARN

    It seems that Accademia di Belle Arti di Urbino is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0010 : try adding symbols
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: yi, math, greek
  • U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE: try adding vietnamese
  • U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE: try adding vietnamese
  • U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE: try adding vietnamese
  • U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE: try adding vietnamese
  • U+2021 DOUBLE DAGGER: try adding adlam 33 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, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/cairoplay


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/cairoplay/CairoPlay[slnt,wght].ttf
Dehinted Size 593.9kb
Hinted Size 593.9kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 3.130;gftools[0.9.24]']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('slnt-wght', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
1 0 4 14 36 9 174 0
0% 0% 2% 6% 15% 4% 73% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[22] Foldit[wght].ttf
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: font copyright string has 'https://www.github.com/sophiadesign/GF-Foldit' and OFL text has 'https://github.com/SophiaDesign/GF-Foldit'

[code: mismatch]
🔥 FAIL METADATA.pb subsets should be alphabetically ordered. googlefonts/metadata/subsets_order
  • 🔥 FAIL

    METADATA.pb subsets are not sorted in alphabetical order: Got ['latin', 'latin-ext', 'vietnamese', 'menu'] and expected ['latin', 'latin-ext', 'menu', 'vietnamese']


    [code: not-sorted]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    dcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 1 start point differs in glyph 'notequal' between location wght=100 and location wght=900

- Contour 0 start point differs in glyph 'uni1EC9' between location wght=100 and location wght=900

- Contour 0 start point differs in glyph 'uni1EC9.color0' between location wght=100 and location wght=900

- Contour 0 start point differs in glyph 'notequal.color1' between location wght=100 and location wght=900

[code: interpolation-issues]

⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 217: plus

Width = 238: less

Width = 296: divide, notequal, equal

Width = 268: greater

Width = 256: multiply

Width = 267: minus

Width = 299: approxequal

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* uni1EB2 (U+1EB2): L<<161.0,926.0>--<179.0,903.0>> has the same coordinates as a previous segment.

* uni1EB2 (U+1EB2): L<<179.0,903.0>--<179.0,902.0>> has the same coordinates as a previous segment.

* uni1EA8 (U+1EA8): L<<129.0,850.0>--<152.0,850.0>> has the same coordinates as a previous segment.

* uni1EA8 (U+1EA8): L<<232.0,900.0>--<250.0,877.0>> has the same coordinates as a previous segment.

* uni1EA8 (U+1EA8): L<<250.0,877.0>--<250.0,876.0>> has the same coordinates as a previous segment.

* uni1EAA (U+1EAA): L<<120.0,832.0>--<150.0,832.0>> has the same coordinates as a previous segment.

* uni1EA2 (U+1EA2): L<<161.0,870.0>--<179.0,847.0>> has the same coordinates as a previous segment.

* uni1EA2 (U+1EA2): L<<179.0,847.0>--<179.0,846.0>> has the same coordinates as a previous segment.

* Aogonek (U+0104): L<<196.0,0.0>--<220.0,0.0>> has the same coordinates as a previous segment.

* Aogonek (U+0104): L<<175.0,-34.0>--<196.0,-34.0>> has the same coordinates as a previous segment.

* 204 more.

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

[code: overlapping-path-segments]
⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- uni004A0301

- uni006A0301

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, cherokee, coptic, tifinagh
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: canadian-aboriginal, old-permic, tai-le, duployan, syriac, hebrew, malayalam, math, todhri, coptic, tifinagh
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition 25 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: latin, latin-ext, vietnamese, menu

[code: unreachable-subsetting]
⚠️ WARN Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
[code: warning-language-shaping]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i̦̇ i̦̊ i̦̋ ǐ̦ i̦̒ j̦̀ j̦́ j̦̃ j̦̄ j̦̆ j̦̇ j̦̈ j̦̉ j̦̊ j̦̋ ǰ̦ j̦̏ j̦̑ j̦̒ į̆

Your font fully covers the following languages that require the soft-dotted feature: Southern Tutchone (Latn, 65 speakers), Navajo (Latn, 166,319 speakers), Han (Latn, 6 speakers), Dutch (Latn, 31,709,104 speakers), Kaska (Latn, 125 speakers), Northern Tutchone (Latn, 85 speakers), Lithuanian (Latn, 2,357,094 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Ebira (Latn, 2,200,000 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Gulay (Latn, 250,478 speakers), Keliko (Latn, 63,000 speakers), Cicipu (Latn, 44,000 speakers), Southern Kisi (Latn, 360,000 speakers), Ekpeye (Latn, 226,000 speakers), Mundani (Latn, 34,000 speakers), Abua (Latn, 25,000 speakers), Yala (Latn, 200,000 speakers), Igbo (Latn, 27,823,640 speakers), Makaa (Latn, 221,000 speakers), Nateni (Latn, 100,000 speakers), Lugbara (Latn, 2,200,000 speakers), Dan (Latn, 1,099,244 speakers), Western Krahn (Latn, 97,800 speakers), Longto (Latn, 5,000 speakers), Ma’di (Latn, 584,000 speakers), Basaa (Latn, 332,940 speakers), Heiltsuk (Latn, 300 speakers), Nzakara (Latn, 50,000 speakers), Vute (Latn, 21,000 speakers), Ejagham (Latn, 120,000 speakers), Fur (Latn, 1,230,163 speakers), Dii (Latn, 71,000 speakers), South Central Banda (Latn, 244,000 speakers), Mfumte (Latn, 79,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Mango (Latn, 77,000 speakers), Ikwere (Latn, 717,000 speakers), Zapotec (Latn, 490,000 speakers), Aghem (Latn, 38,843 speakers), Belarusian (Cyrl, 10,064,517 speakers), Kom (Latn, 360,685 speakers), Bafut (Latn, 158,146 speakers), Avokaya (Latn, 100,000 speakers), Sar (Latn, 500,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Koonzime (Latn, 40,000 speakers), Bete-Bendi (Latn, 100,000 speakers).

[code: soft-dotted]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/foldit


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/foldit/Foldit[wght].ttf
Dehinted Size 508.3kb
Hinted Size 508.3kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.003']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('wght', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 2 13 38 8 177 0
0% 0% 1% 5% 16% 3% 74% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[32] Honk[MORF,SHLN].ttf
🔥 FAIL Axes and named instances fall within correct ranges? opentype/fvar/regular_coords_correct
  • 🔥 FAIL

    "Regular" instance not present.


    [code: no-regular-instance]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. case_mapping
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX U+0125: LATIN SMALL LETTER H WITH CIRCUMFLEX
U+1EBA: LATIN CAPITAL LETTER E WITH HOOK ABOVE U+1EBB: LATIN SMALL LETTER E WITH HOOK ABOVE
U+1EEA: LATIN CAPITAL LETTER U WITH HORN AND GRAVE U+1EEB: LATIN SMALL LETTER U WITH HORN AND GRAVE
U+1EEC: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE U+1EED: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
U+1EEE: LATIN CAPITAL LETTER U WITH HORN AND TILDE U+1EEF: LATIN SMALL LETTER U WITH HORN AND TILDE
[code: missing-case-counterparts]
🔥 FAIL Validate defaults on fvar table match registered fallback names in GFAxisRegistry. googlefonts/axisregistry/fvar_axis_defaults
  • 🔥 FAIL

    The defaul value MORF:15.0 is not registered as an axis fallback name on the Google Axis Registry.
    You should consider suggesting the addition of this value to the registry or adopted one of the existing fallback names for this axis:
    [name: "Default"
    value: 0.0
    ]


    [code: not-registered]

  • 🔥 FAIL

    The defaul value SHLN:0.0 is not registered as an axis fallback name on the Google Axis Registry.
    You should consider suggesting the addition of this value to the registry or adopted one of the existing fallback names for this axis:
    [name: "Default"
    value: 50.0
    ]


    [code: not-registered]

🔥 FAIL Validate STAT particle names and values match the fallback names in GFAxisRegistry. googlefonts/STAT/axisregistry
  • 🔥 FAIL

    Axis Value for 'SHLN':'Default' is expected to be '50.0' but this font has 'Default'='0.0'.


    [code: bad-coordinate]
⚠️ WARN Check glyphs in mark glyph class are non-spacing. opentype/gdef_spacing_marks
  • ⚠️ WARN

    The following glyphs seem to be spacing (because they have width > 0 on the hmtx table) so they may be in the GDEF mark glyph class by mistake, or they should have zero width instead:
    invertedbrevecomb (U+0311)


    [code: spacing-mark-glyphs]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Ensure files are not too large. file_size
  • ⚠️ WARN

    Font file is 3.6Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value gpos_kerning_info
  • ⚠️ WARN

    GPOS table lacks kerning information.


    [code: lacks-kern-info]
⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 1 in glyph 'tbar': becomes underweight between MORF=45,SHLN=0 and MORF=15,SHLN=100.

- Contour 0 point 32 in glyph 'uni2196.color2' has a kink between location MORF=24,SHLN=0 and location MORF=30,SHLN=0

- Contour 0 point 40 in glyph 'uni2196.color2' has a kink between location MORF=24,SHLN=0 and location MORF=30,SHLN=0

- Contour 0 point 108 in glyph 'uni2196.color2' has a kink between location MORF=24,SHLN=0 and location MORF=30,SHLN=0

- Contour 0 point 32 in glyph 'uni2196.color2' has a kink between location MORF=24,SHLN=100 and location MORF=30,SHLN=100

- Contour 0 point 40 in glyph 'uni2196.color2' has a kink between location MORF=24,SHLN=100 and location MORF=30,SHLN=100

- Contour 0 point 108 in glyph 'uni2196.color2' has a kink between location MORF=24,SHLN=100 and location MORF=30,SHLN=100

- Contour 1 in glyph 'flag_for': becomes underweight between MORF=10,SHLN=0 and MORF=20,SHLN=0.

- Contour 2 in glyph 'flag_for': becomes underweight between MORF=10,SHLN=0 and MORF=20,SHLN=0.

- Contour 1 in glyph 'flag_for': becomes underweight between MORF=10,SHLN=100 and MORF=20,SHLN=100.

- 1509 more.

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

[code: interpolation-issues]
⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Ensure variable fonts include an avar table. mandatory_avar_table
  • ⚠️ WARN

    This variable font does not have an avar table. Most variable fonts should include an avar table to correctly define axes progression rates.


    [code: missing-avar]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* .notdef: B<<304.0,917.0>-<304.0,917.0>-<304.0,917.0>> has the same coordinates as a previous segment.

* .notdef: B<<304.0,917.0>-<304.0,917.0>-<304.0,917.0>> has the same coordinates as a previous segment.

* .notdef: B<<110.0,723.0>-<110.0,723.0>-<110.0,723.0>> has the same coordinates as a previous segment.

* .notdef: B<<110.0,723.0>-<110.0,723.0>-<110.0,723.0>> has the same coordinates as a previous segment.

* .notdef: B<<118.0,453.0>-<118.0,453.0>-<118.0,453.0>> has the same coordinates as a previous segment.

* .notdef: B<<306.0,265.0>-<306.0,265.0>-<306.0,265.0>> has the same coordinates as a previous segment.

* .notdef: B<<566.0,267.0>-<566.0,267.0>-<566.0,267.0>> has the same coordinates as a previous segment.

* .notdef: B<<566.0,267.0>-<566.0,267.0>-<566.0,267.0>> has the same coordinates as a previous segment.

* .notdef: B<<760.0,461.0>-<760.0,461.0>-<760.0,461.0>> has the same coordinates as a previous segment.

* .notdef: B<<760.0,461.0>-<760.0,461.0>-<760.0,461.0>> has the same coordinates as a previous segment.

* 212791 more.

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

[code: overlapping-path-segments]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- Comp_asterisk

- Comp_dblgravecomb.narrow

- Comp_flag_A

- Comp_flag_B

- Comp_flag_C

- Comp_flag_D

- Comp_flag_E

- Comp_flag_F

- Comp_flag_G

- Comp_flag_H

- 53 more.

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

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? valid_glyphnames
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    Mark_macron_stacked_forDotaccent and Mark_tilde_stacked_forCircumflex


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition
  • U+0311 COMBINING INVERTED BREVE: try adding one of: coptic, todhri
  • U+031B COMBINING HORN: not included in any glyphset definition 20 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: latin, latin-ext, math, menu, symbols, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
[code: warning-language-shaping]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: i᷆ į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i᷄ i̛᷄ i̛᷆ i̤᷄ i̤᷆ i̦̇ i̦̊ i̦̋ ǐ̦ i̦̒ i̦᷄ i̦᷆ i̧᷄ i̧᷆ i̮᷄ i̮᷆ i̱᷄ i̱᷆ i̵᷄ i̵᷆

Your font fully covers the following languages that require the soft-dotted feature: Ekpeye (Latn, 226,000 speakers), Ikwere (Latn, 717,000 speakers), Ebira (Latn, 2,200,000 speakers), Northern Tutchone (Latn, 85 speakers), Dutch (Latn, 31,709,104 speakers), Southern Tutchone (Latn, 65 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Lithuanian (Latn, 2,357,094 speakers), Abua (Latn, 25,000 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Teke-Ebo (Latn, 260,000 speakers), Mfumte (Latn, 79,000 speakers), Yala (Latn, 200,000 speakers), Mundani (Latn, 34,000 speakers), Vute (Latn, 21,000 speakers), Dii (Latn, 71,000 speakers), Dan (Latn, 1,099,244 speakers), Igbo (Latn, 27,823,640 speakers), Longto (Latn, 5,000 speakers), Aghem (Latn, 38,843 speakers), Kom (Latn, 360,685 speakers), Cicipu (Latn, 44,000 speakers), Koonzime (Latn, 40,000 speakers), Heiltsuk (Latn, 300 speakers), Bafut (Latn, 158,146 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Kaska (Latn, 125 speakers), Ejagham (Latn, 120,000 speakers), Fur (Latn, 1,230,163 speakers), Navajo (Latn, 166,319 speakers), Western Krahn (Latn, 97,800 speakers), Gulay (Latn, 250,478 speakers), Lugbara (Latn, 2,200,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Belarusian (Cyrl, 10,064,517 speakers), Ma’di (Latn, 584,000 speakers), Zapotec (Latn, 490,000 speakers), Southern Kisi (Latn, 360,000 speakers), Keliko (Latn, 63,000 speakers), Sar (Latn, 500,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Mango (Latn, 77,000 speakers), Makaa (Latn, 221,000 speakers), Nzakara (Latn, 50,000 speakers), Basaa (Latn, 332,940 speakers), Avokaya (Latn, 100,000 speakers), South Central Banda (Latn, 244,000 speakers), Nateni (Latn, 100,000 speakers), Han (Latn, 6 speakers).

[code: soft-dotted]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* Comp_asterisk has a counter-clockwise outer contour

* Comp_flag_A has a counter-clockwise outer contour

* Comp_flag_B has a counter-clockwise outer contour

* Comp_flag_C has a counter-clockwise outer contour

* Comp_flag_D has a counter-clockwise outer contour

* Comp_flag_E has a counter-clockwise outer contour

* Comp_flag_F has a counter-clockwise outer contour

* Comp_flag_G has a counter-clockwise outer contour

* Comp_flag_H has a counter-clockwise outer contour

* Comp_flag_I has a counter-clockwise outer contour

* 14 more.

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

[code: ccw-outer-contour]
⚠️ WARN Check font names are correct googlefonts/font_names
  • ⚠️ WARN

    Font has a Morph axis. This check only works on fonts that have a wght axis. Since users can define their own stylenames for Morph families, please manually check that the family works on major platforms. You can use Agu Display as a reference.


    [code: morf-axis]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/honk


    [code: family-path]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com fontdata_namecheck
  • ℹ️ INFO

    The family name "Honk" seems to be already in use.
    Please visit http://namecheck.fontdata.com for more info.


    [code: name-collision]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/honk/Honk[MORF,SHLN].ttf
Dehinted Size 3.6Mb
Hinted Size 3.6Mb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.000']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('MORF-SHLN', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 4 19 40 10 165 0
0% 0% 2% 8% 17% 4% 69% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[15] Kalnia[wdth,wght].ttf
🔥 FAIL Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • 🔥 FAIL

    Image is too large: 2400 x 1350 pixels

Max resolution allowed: 2048 x 1024 pixels

[code: image-too-large]
  • 🔥 FAIL

    Image is too large: 2400 x 1158 pixels

Max resolution allowed: 2048 x 1024 pixels

[code: image-too-large]
  • 🔥 FAIL

    Image is too large: 2400 x 1350 pixels

Max resolution allowed: 2048 x 1024 pixels

[code: image-too-large]
  • 🔥 FAIL

    Image is too large: 2400 x 1350 pixels

Max resolution allowed: 2048 x 1024 pixels

[code: image-too-large]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to uni0237 nl_Latn (Dutch)
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ŧ, ŧ, Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: Ŧ, ŧ nb_Latn (Norwegian Bokmål)
[code: warning-language-shaping]
⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 1 in glyph 'X': becomes underweight between wght=100,wdth=125 and wght=700,wdth=100.

- Contour 2 in glyph 'X': becomes underweight between wght=100,wdth=125 and wght=700,wdth=100.

- Contour 0 in glyph 'AE': becomes underweight between wght=100,wdth=125 and wght=700,wdth=100.

[code: interpolation-issues]

⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0328 COMBINING OGONEK: not included in any glyphset definition
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
  • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition

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

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

+ \n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̦ ĭ̦ i̦̇ i̦̊ i̦̋ ǐ̦ i̦̒ j̦̀ j̦́ ĵ̦ j̦̃ j̦̄ j̦̆ j̦̇ j̦̈ j̦̊ j̦̋ ǰ̦ j̦̒ į̦̀

Your font fully covers the following languages that require the soft-dotted feature: Kaska (Latn, 125 speakers), Han (Latn, 6 speakers), Southern Tutchone (Latn, 65 speakers), Lithuanian (Latn, 2,357,094 speakers), Northern Tutchone (Latn, 85 speakers), Navajo (Latn, 166,319 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Longto (Latn, 5,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Mundani (Latn, 34,000 speakers), Ikwere (Latn, 717,000 speakers), Mango (Latn, 77,000 speakers), Ma’di (Latn, 584,000 speakers), Vute (Latn, 21,000 speakers), Fur (Latn, 1,230,163 speakers), Heiltsuk (Latn, 300 speakers), Western Krahn (Latn, 97,800 speakers), Dii (Latn, 71,000 speakers), South Central Banda (Latn, 244,000 speakers), Aghem (Latn, 38,843 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Ebira (Latn, 2,200,000 speakers), Dan (Latn, 1,099,244 speakers), Lugbara (Latn, 2,200,000 speakers), Bafut (Latn, 158,146 speakers), Ejagham (Latn, 120,000 speakers), Igbo (Latn, 27,823,640 speakers), Ekpeye (Latn, 226,000 speakers), Southern Kisi (Latn, 360,000 speakers), Belarusian (Cyrl, 10,064,517 speakers), Kom (Latn, 360,685 speakers), Ngbaka (Latn, 1,020,000 speakers), Cicipu (Latn, 44,000 speakers), Nateni (Latn, 100,000 speakers), Zapotec (Latn, 490,000 speakers), Makaa (Latn, 221,000 speakers), Keliko (Latn, 63,000 speakers), Abua (Latn, 25,000 speakers), Avokaya (Latn, 100,000 speakers), Nzakara (Latn, 50,000 speakers), Koonzime (Latn, 40,000 speakers), Dutch (Latn, 31,709,104 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Sar (Latn, 500,000 speakers), Mfumte (Latn, 79,000 speakers), Yala (Latn, 200,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Basaa (Latn, 332,940 speakers), Gulay (Latn, 250,478 speakers), Ijo, Southeast (Latn, 2,471,000 speakers).

[code: soft-dotted]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx


    [code: unknown]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/kalnia


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/kalnia/Kalnia[wdth,wght].ttf
Dehinted Size 113.7kb
Hinted Size 113.7kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ℹ️ INFO

    Latn


    [code: dlng-tag]

  • ℹ️ INFO

    Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.105']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('wght-wdth', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 2 6 42 8 180 0
0% 0% 1% 3% 18% 3% 76% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[24] Nabla[EDPT,EHLT].ttf
🔥 FAIL Axes and named instances fall within correct ranges? opentype/fvar/regular_coords_correct
  • 🔥 FAIL

    "Regular" instance not present.


    [code: no-regular-instance]
🔥 FAIL METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • 🔥 FAIL

    Please change minisite_url

From 'https://nabla.typearture.com/'

To: 'https://nabla.typearture.com'

[code: trailing-clutter]
🔥 FAIL Ensure font has the expected color font tables. googlefonts/colorfont_tables
  • 🔥 FAIL

    This is a variable font and SVG does not support OpenType Variations.
    Please remove the SVG table from this font.


    [code: variable-svg]
🔥 FAIL Validate STAT particle names and values match the fallback names in GFAxisRegistry. googlefonts/STAT/axisregistry
  • 🔥 FAIL

    On the font variation axis 'EDPT', the name 'Shallow' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EDPT', the name 'Regular' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EDPT', the name 'Deep' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EHLT', the name 'No Highlight' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EHLT', the name 'Highlight' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EHLT', the name 'Max Highlight' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Ensure files are not too large. file_size
  • ⚠️ WARN

    Font file is 1.6Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 0 start point differs in glyph 'glyph01768' between location EDPT=0,EHLT=12 and location EDPT=200,EHLT=12

- Contour order differs in glyph 'uni0312': [0, 1, 2] in EDPT=0,EHLT=12, [2, 1, 0] in EDPT=200,EHLT=12.

- Contour order differs in glyph 'quoteleft': [0, 1, 2] in EDPT=0,EHLT=12, [2, 1, 0] in EDPT=200,EHLT=12.

- Contour 0 start point differs in glyph 'glyph02937' between location EDPT=0,EHLT=12 and location EDPT=200,EHLT=12

- Contour order differs in glyph 'quoteright': [0, 1, 2] in EDPT=0,EHLT=12, [2, 1, 0] in EDPT=200,EHLT=12.

[code: interpolation-issues]

⚠️ WARN Ensure variable fonts include an avar table. mandatory_avar_table
  • ⚠️ WARN

    This variable font does not have an avar table. Most variable fonts should include an avar table to correctly define axes progression rates.


    [code: missing-avar]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 516: lessequal, greaterequal, greater, less

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* .notdef: L<<476.0,250.0>--<476.0,150.0>> has the same coordinates as a previous segment.

* .notdef: L<<390.0,200.0>--<390.0,300.0>> has the same coordinates as a previous segment.

* .notdef: L<<563.0,300.0>--<476.0,250.0>> has the same coordinates as a previous segment.

* .notdef: L<<476.0,250.0>--<390.0,300.0>> has the same coordinates as a previous segment.

* .notdef: L<<390.0,300.0>--<476.0,350.0>> has the same coordinates as a previous segment.

* .notdef: L<<563.0,500.0>--<476.0,450.0>> has the same coordinates as a previous segment.

* .notdef: L<<390.0,500.0>--<476.0,550.0>> has the same coordinates as a previous segment.

* .notdef: L<<390.0,200.0>--<303.0,150.0>> has the same coordinates as a previous segment.

* .notdef: L<<217.0,200.0>--<303.0,250.0>> has the same coordinates as a previous segment.

* .notdef: L<<303.0,150.0>--<303.0,50.0>> has the same coordinates as a previous segment.

* 5204 more.

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

[code: overlapping-path-segments]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? googlefonts/metadata/designer_profiles
  • ⚠️ WARN

    It seems that Just van Rossum is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+0328 COMBINING OGONEK: not included in any glyphset definition
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam

Or you can add the above codepoints to one of the subsets supported by the font: cyrillic-ext, latin, latin-ext, math, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: Ŀ, ŀ ca_Latn (Catalan)
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ŧ, ŧ, Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: Ŧ, ŧ nb_Latn (Norwegian Bokmål)
[code: warning-language-shaping]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph00420 has a counter-clockwise outer contour

* glyph00420 has a counter-clockwise outer contour

* glyph00426 has a counter-clockwise outer contour

* glyph00434 has a counter-clockwise outer contour

* glyph00434 has a counter-clockwise outer contour

* glyph00434 has a counter-clockwise outer contour

* glyph00442 has a counter-clockwise outer contour

* glyph00442 has a counter-clockwise outer contour

* glyph00442 has a counter-clockwise outer contour

* glyph00442 has a counter-clockwise outer contour

* 1181 more.

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

[code: ccw-outer-contour]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/nabla


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/nabla/Nabla[EDPT,EHLT].ttf
Dehinted Size 1.6Mb
Hinted Size 1.6Mb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.003']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('EDPT-EHLT', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 4 13 46 8 167 0
0% 0% 2% 5% 19% 3% 70% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[38] NotoColorEmoji-Regular.ttf
🔥 FAIL Checking correctness of monospaced metadata. opentype/monospace
🔥 FAIL Check if each glyph has the recommended amount of contours. contour_count
  • 🔥 FAIL

    The following glyphs have no contours even though they were expected to have some:

- Glyph name: numbersign	Expected: 2

- Glyph name: asterisk	Expected: 1 or 4

- Glyph name: zero	Expected: 2 or 3

- Glyph name: one	Expected: 1

- Glyph name: two	Expected: 1

- Glyph name: three	Expected: 1

- Glyph name: four	Expected: 1 or 2

- Glyph name: five	Expected: 1

- Glyph name: six	Expected: 1 or 2

- Glyph name: seven	Expected: 1

- 44 more.

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

[code: no-contour]
🔥 FAIL Ensure files are not too large. file_size
  • 🔥 FAIL

    Font file is 23.1Mb, larger than limit 9.0Mb


    [code: massive-font]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions. smart_dropout
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Font contains glyphs for whitespace characters? whitespace_glyphs
  • 🔥 FAIL

    Whitespace glyph missing for codepoint 0x00A0.


    [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls
  • 🔥 FAIL

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL METADATA.pb font.filename and font.post_script_name fields have equivalent values? googlefonts/metadata/match_filename_postscript
  • 🔥 FAIL

    METADATA.pb font filename = "NotoColorEmoji-Regular.ttf" does not match post_script_name="NotoColorEmoji".


    [code: mismatch]
🔥 FAIL METADATA.pb weight matches postScriptName for static fonts. googlefonts/metadata/match_weight_postscript
  • 🔥 FAIL

    METADATA.pb: Mismatch between postScriptName ("NotoColorEmoji") and weight value (400). The name must be ended with "Regular" or "Italic".

🔥 FAIL METADATA.pb should contain at least "menu" and "latin" subsets. googlefonts/metadata/menu_and_latin
  • 🔥 FAIL

    Subsets "menu" and "latin" are mandatory, but METADATA.pb is missing "latin".


    [code: missing]
🔥 FAIL METADATA.pb subsets should be alphabetically ordered. googlefonts/metadata/subsets_order
  • 🔥 FAIL

    METADATA.pb subsets are not sorted in alphabetical order: Got ['menu', 'emoji'] and expected ['emoji', 'menu']


    [code: not-sorted]
🔥 FAIL Check for METADATA subsets with zero support. googlefonts/metadata/unsupported_subsets
  • 🔥 FAIL

    Please remove the unrecognized subset 'emoji' from the METADATA.pb file.


    [code: unknown-subset]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • 🔥 FAIL

    This is a Noto font but it lacks an ARTICLE.en_us.html file.


    [code: missing-article]
🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2022 Google Inc."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2021 Google Inc. All Rights Reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    Copyright notices differ between name table entries and METADATA.pb.The following copyright values were found:

- Copyright 2022 Google Inc.: Name Table entry

- Copyright 2021 Google Inc. All Rights Reserved.: METADATA.pb

[code: mismatch]

🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright 2021 google inc. all rights reserved."

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check copyright namerecords match license file. googlefonts/name/license
  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software." Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Noto Color Emoji Noto Color Emoji
Subfamily Name Regular Regular
Full Name Noto Color Emoji Noto Color Emoji Regular
Postscript Name NotoColorEmoji NotoColorEmoji-Regular
[code: bad-names]
  • ⚠️ WARN

    Regular missing from full name


    [code: lacks-regular]
🔥 FAIL Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • 🔥 FAIL

    Font is missing the 'gasp' table. Try exporting the font with autohinting enabled.
    If you are dealing with an unhinted font, it can be fixed by running the fonts through the command 'gftools fix-nonhinting'
    GFTools is available at https://pypi.org/project/gftools/


    [code: lacks-gasp]
🔥 FAIL Check Google Fonts glyph coverage. googlefonts/glyph_coverage
  • 🔥 FAIL

    Missing required codepoints:

- 0x0021 (EXCLAMATION MARK)


- 0x0022 (QUOTATION MARK)


- 0x0024 (DOLLAR SIGN)


- 0x0025 (PERCENT SIGN)


- 0x0026 (AMPERSAND)


- 0x0027 (APOSTROPHE)


- 0x0028 (LEFT PARENTHESIS)


- 0x0029 (RIGHT PARENTHESIS)


- 0x002B (PLUS SIGN)


- 0x002C (COMMA)


- 293 more.

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

[code: missing-codepoints]
🔥 FAIL Ensure font can render its own name. googlefonts/render_own_name
  • 🔥 FAIL

    .notdef glyphs were found when attempting to render Noto Color Emoji


    [code: render-own-name]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Any CJK font should contain at least a minimal set of 150 CJK characters. cjk_not_enough_glyphs
  • ⚠️ WARN

    There are only 2 CJK glyphs when there needs to be at least 150 in order to support the smallest CJK writing system, Kana.
    The following CJK glyphs were found:
    ['uni3297', 'uni3299']
    Please check that these glyphs have the correct unicodes.


    [code: cjk-not-enough-glyphs]
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value gpos_kerning_info
  • ⚠️ WARN

    GPOS table lacks kerning information.


    [code: lacks-kern-info]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* glyph03862: B<<837.0,208.0>-<837.0,208.0>-<837.0,208.0>> has the same coordinates as a previous segment.

* glyph03862: B<<854.0,262.0>-<854.0,262.0>-<854.0,262.0>> has the same coordinates as a previous segment.

* glyph03862: B<<870.0,419.0>-<870.0,419.0>-<870.0,419.0>> has the same coordinates as a previous segment.

* glyph03862: B<<887.0,473.0>-<887.0,473.0>-<887.0,473.0>> has the same coordinates as a previous segment.

* glyph03862: B<<439.0,489.0>-<439.0,489.0>-<439.0,489.0>> has the same coordinates as a previous segment.

* glyph03862: B<<422.0,435.0>-<422.0,435.0>-<422.0,435.0>> has the same coordinates as a previous segment.

* glyph03862: B<<405.0,278.0>-<405.0,278.0>-<405.0,278.0>> has the same coordinates as a previous segment.

* glyph03862: B<<388.0,224.0>-<388.0,224.0>-<388.0,224.0>> has the same coordinates as a previous segment.

* glyph03864: B<<483.0,34.0>-<483.0,34.0>-<483.0,34.0>> has the same coordinates as a previous segment.

* glyph03864: B<<945.0,362.0>-<945.0,362.0>-<945.0,362.0>> has the same coordinates as a previous segment.

* 35629 more.

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

[code: overlapping-path-segments]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Check for primary_script googlefonts/metadata/primary_script
  • ⚠️ WARN

    METADATA.pb: primary_script field should be 'Hani' but is missing.
    Make sure that 'Hani' is actually the correct one (out of Jpan, Hani, Hant, Hans).


    [code: missing-primary-script]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+200D ZERO WIDTH JOINER: try adding one of: psalter-pahlavi, hanifi-rohingya, warang-citi, duployan, bhaiksuki, lao, sharada, tibetan, gurmukhi, phags-pa, balinese, cham, batak, kannada, khudawadi, new-tai-lue, syriac, newa, tagalog, arabic, brahmi, buhid, mandaic, nko, pahawh-hmong, yi, kaithi, syloti-nagri, khojki, hanunoo, kharoshthi, javanese, telugu, modi, limbu, kayah-li, avestan, saurashtra, meetei-mayek, devanagari, takri, mahajani, masaram-gondi, oriya, tamil, mongolian, myanmar, tai-viet, sinhala, khmer, rejang, gunjala-gondi, zanabazar-square, hebrew, buginese, dogra, lepcha, chakma, malayalam, old-hungarian, tai-le, grantha, sogdian, sundanese, thaana, bengali, siddham, thai, tifinagh, tagbanwa, tai-tham, gujarati, tirhuta, manichaean
  • U+203C DOUBLE EXCLAMATION MARK: try adding math
  • U+2049 EXCLAMATION QUESTION MARK: try adding mongolian
  • U+20E3 COMBINING ENCLOSING KEYCAP: try adding symbols
  • U+2139 INFORMATION SOURCE: try adding math
  • U+2194 LEFT RIGHT ARROW: try adding one of: math, symbols
  • U+2195 UP DOWN ARROW: try adding one of: math, symbols
  • U+2196 NORTH WEST ARROW: try adding one of: math, symbols
  • U+2197 NORTH EAST ARROW: try adding one of: math, symbols
  • U+2198 SOUTH EAST ARROW: try adding one of: math, symbols 1466 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: menu, emoji

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- \n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development\n

+ of collaborative font projects, to support the font creation efforts of academic\n

+ and linguistic communities, and to provide a free and open framework in which\n

+ fonts may be shared and improved in partnership with others.\n

+ \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed\n

- redistributed freely as long as they are not sold by themselves. The\n

+ freely as long as they are not sold by themselves. The fonts, including any\n

+ derivative works, can be bundled, embedded, redistributed and/or sold with any\n

+ software provided that any reserved names are not used by derivative works. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

+ fonts and derivatives, however, cannot be released under any other type of license.\n

- requirement for fonts to remain under this license does not apply\n

+ The requirement for fonts to remain under this license does not apply to any\n

- to any document created using the fonts or their derivatives.\n

+ document created using the fonts or their derivatives.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under\n

+ this license and clearly marked as such. This may include source files, build\n

+ scripts and documentation.\n

+ \n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright\n

- copyright statement(s).\n

+ statement(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or\n

- or substituting -- in part or in whole -- any of the components of the\n

+ substituting -- in part or in whole -- any of the components of the Original Version,\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other\n

- writer or other person who contributed to the Font Software.\n

+ person who contributed to the Font Software.\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

- in Original or Modified Versions, may be sold by itself.\n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the\n

+ Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell\n

+ modified and unmodified copies of the Font Software, subject to the following\n

+ conditions:\n

+ 1) Neither the Font Software nor any of its individual components, in Original or\n

+ Modified Versions, may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed\n

+ and/or sold with any software, provided that each copy contains the above copyright\n

+ notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within\n

+ text or binary files as long as those fields can be easily viewed by the user.\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless\n

+ explicit written permission is granted by the corresponding Copyright Holder. This\n

+ restriction only applies to the primary font name as presented to the users.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall\n

+ not be used to promote, endorse or advertise any Modified Version, except to\n

+ acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with\n

+ their explicit written permission.\n

+ \n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed\n

+ entirely under this license, and must not be distributed under any other license. The\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

+ requirement for fonts to remain under this license does not apply to any document\n

- using the Font Software.\n

+ created using the Font Software.\n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n

+ PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER\n

+ RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

+ LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR\n

+ INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph03858 has a counter-clockwise outer contour

* glyph03862 has a counter-clockwise outer contour

* glyph03863 has a counter-clockwise outer contour

* glyph03864 has a counter-clockwise outer contour

* glyph03865 has a counter-clockwise outer contour

* glyph03866 has a counter-clockwise outer contour

* glyph03867 has a counter-clockwise outer contour

* glyph03868 has a counter-clockwise outer contour

* glyph03869 has a counter-clockwise outer contour

* glyph03870 has a counter-clockwise outer contour

* 20960 more.

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

[code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* glyph03944: B<<817.0,291.0>-<813.0,267.0>-<812.0,255.0>>/B<<812.0,255.0>-<807.0,288.0>-<797.0,334.0>> = 13.379289874890267

* glyph03944: B<<893.0,390.0>-<898.0,415.0>-<899.0,426.0>>/B<<899.0,426.0>-<900.0,416.0>-<906.0,390.0>> = 10.905022045234459

* glyph03993: L<<865.0,744.0>--<822.0,743.0>>/L<<822.0,743.0>--<822.0,743.0>> = 1.3322198538696923

* glyph04031: L<<476.0,278.0>--<968.0,-63.0>>/L<<968.0,-63.0>--<341.0,496.0>> = 6.993085115661098

* glyph04031: L<<968.0,-63.0>--<341.0,496.0>>/B<<341.0,496.0>-<384.0,438.0>-<414.5,388.5>> = 11.729021419722553

* glyph04032: L<<657.0,863.0>--<1116.0,-37.0>>/L<<1116.0,-37.0>--<610.0,728.0>> = 6.460579573606472

* glyph04248: B<<895.0,778.0>-<880.0,786.0>-<879.0,787.0>>/L<<879.0,787.0>--<903.0,758.0>> = 5.389311759973421

* glyph04249: L<<376.0,758.0>--<397.0,782.0>>/B<<397.0,782.0>-<396.0,781.0>-<369.0,768.0>> = 3.8140748342903783

* glyph04294: B<<1147.5,475.0>-<1131.0,548.0>-<1098.0,612.0>>/B<<1098.0,612.0>-<1122.0,555.0>-<1133.5,494.0>> = 4.443109205196117

* glyph04300: L<<280.0,144.0>--<280.0,144.0>>/L<<280.0,144.0>--<47.0,192.0>> = 11.640572213911739

* 3039 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* glyph03897: L<<561.0,583.0>--<562.0,388.0>>

* glyph03910: L<<1055.0,-167.0>--<1058.0,852.0>>

* glyph03910: L<<284.0,-222.0>--<996.0,-226.0>>

* glyph03911: L<<1031.0,-139.0>--<1036.0,850.0>>

* glyph03911: L<<224.0,853.0>--<225.0,-164.0>>

* glyph03911: L<<991.0,909.0>--<282.0,912.0>>

* glyph03914: L<<724.0,416.0>--<571.0,415.0>>

* glyph03989: L<<713.0,401.0>--<926.0,402.0>>

* glyph04010: L<<1203.0,760.0>--<1201.0,367.0>>

* glyph04011: L<<1202.0,22.0>--<1201.0,390.0>>

* 633 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx


    [code: unknown]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/notocoloremoji


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/notocoloremoji/NotoColorEmoji-Regular.ttf
Dehinted Size 23.1Mb
Hinted Size 23.1Mb
Increase -24 bytes
Change -0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- GSUB

- vhea

- vmtx

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 2.047;GOOG;noto-emoji:20240827:6c211821b8442ab3683a502f9a79b2034293fced']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 20 13 66 6 133 0
0% 0% 8% 5% 28% 3% 56% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Experimental checks

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

[1] NotoZnamennyMusicalNotation-Regular.ttf
💥 ERROR Check base characters have non-zero advance width. base_has_width
  • 💥 ERROR

    Failed with AttributeError: 'CheckRunContext' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 222, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/checks/base_has_width.py", line 46, in check_base_has_width
    problems = bullet_list(context, problems)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/utils.py", line 155, in bullet_list
    return f"{indentation}{bullet} " + pretty_print_list(
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/utils.py", line 140, in pretty_print_list
    if config.get("full_lists"):

[code: failed-check]

All other checks

[17] NotoZnamennyMusicalNotation-Regular.ttf
⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ 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: aogonek	Contours detected: 3	Expected: 2
  • Glyph name: uogonek Contours detected: 2 Expected: 1

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

  • Glyph name: aogonek Contours detected: 3 Expected: 2

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

  • Glyph name: uogonek Contours detected: 2 Expected: 1


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 322: minus

[code: width-outliers]
⚠️ WARN Combined length of family and style must not exceed 32 characters. name/family_and_style_max_length
  • ⚠️ WARN

    Name ID 6 'NotoZnamennyMusicalNotation-Regular' exceeds 27 characters. This has been found to cause problems with PostScript printers, especially on Mac platforms.


    [code: nameid6-too-long]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- u1CF24.alt

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

    Article page is too short!


    [code: length-requirements-not-met]

  • ⚠️ WARN

    Article page lacks visual assets.


    [code: missing-visual-asset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+0328 COMBINING OGONEK: not included in any glyphset definition

Or you can add the above codepoints to one of the subsets supported by the font: latin, latin-ext, math, menu, symbols, znamenny

[code: unreachable-subsetting]
⚠️ WARN Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • ⚠️ WARN

    GF_TransLatin_Arabic glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: Ŀ, ŀ ca_Latn (Catalan)
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ŧ, ŧ, Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: Ŧ, ŧ nb_Latn (Norwegian Bokmål)
Some auxiliary glyphs were missing: IJ, ij nl_Latn (Dutch)
[code: warning-language-shaping]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌

The dot of soft dotted characters should disappear in other cases, for example: į̆ į̇ į̈ į̊ į̋ į̒ į̦̀ į̦́ į̦̂ į̦̃ į̦̄ į̦̆ į̦̇ į̦̈ į̦̊ į̦̋ į̦̌ į̦̒ į̧̀ į̧́

Your font fully covers the following languages that require the soft-dotted feature: Dutch (Latn, 31,709,104 speakers), Lithuanian (Latn, 2,357,094 speakers), Southern Tutchone (Latn, 65 speakers), Northern Tutchone (Latn, 85 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Vute (Latn, 21,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Kom (Latn, 360,685 speakers), Kaska (Latn, 125 speakers), Nateni (Latn, 100,000 speakers), South Central Banda (Latn, 244,000 speakers), Navajo (Latn, 166,319 speakers), Teke-Ebo (Latn, 260,000 speakers), Cicipu (Latn, 44,000 speakers), Ebira (Latn, 2,200,000 speakers), Sar (Latn, 500,000 speakers), Ikwere (Latn, 717,000 speakers), Bafut (Latn, 158,146 speakers), Lugbara (Latn, 2,200,000 speakers), Western Krahn (Latn, 97,800 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Makaa (Latn, 221,000 speakers), Fur (Latn, 1,230,163 speakers), Ejagham (Latn, 120,000 speakers), Dii (Latn, 71,000 speakers), Longto (Latn, 5,000 speakers), Belarusian (Cyrl, 10,064,517 speakers), Mango (Latn, 77,000 speakers), Basaa (Latn, 332,940 speakers), Southern Kisi (Latn, 360,000 speakers), Igbo (Latn, 27,823,640 speakers), Gulay (Latn, 250,478 speakers), Zapotec (Latn, 490,000 speakers), Mundani (Latn, 34,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Avokaya (Latn, 100,000 speakers), Keliko (Latn, 63,000 speakers), Aghem (Latn, 38,843 speakers), Ma’di (Latn, 584,000 speakers), Abua (Latn, 25,000 speakers), Yala (Latn, 200,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Dan (Latn, 1,099,244 speakers), Koonzime (Latn, 40,000 speakers), Ekpeye (Latn, 226,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Mfumte (Latn, 79,000 speakers), Heiltsuk (Latn, 300 speakers), Han (Latn, 6 speakers), Nzakara (Latn, 50,000 speakers).

[code: soft-dotted]
⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* u1CF55 (U+1CF55): B<<92.0,329.5>-<106.0,325.0>-<123.0,312.0>>/B<<123.0,312.0>-<106.0,330.0>-<86.0,353.0>> = 9.231220410208147

* u1CF5A (U+1CF5A): B<<92.0,329.5>-<106.0,325.0>-<123.0,312.0>>/B<<123.0,312.0>-<106.0,330.0>-<86.0,353.0>> = 9.231220410208147

[code: found-jaggy-segments]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/notoznamennymusicalnotation


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/notoznamennymusicalnotation/NotoZnamennyMusicalNotation-Regular.ttf
Dehinted Size 79.0kb
Hinted Size 101.6kb
Increase 22.6kb
Change 28.6 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
1 0 0 12 55 6 164 0
0% 0% 0% 5% 23% 3% 69% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[30] ReemKufiFun[wght].ttf
🔥 FAIL Validates subfamilyNameID and postScriptNameID for the default instance record opentype/varfont/valid_default_instance_nameids
  • 🔥 FAIL

    'Regular' instance has the same coordinates as the default instance; its postscript name should be 'ReemKufiFun', instead of 'ReemKufiFun-Regular'.


    [code: invalid-default-instance-postscript-name]
🔥 FAIL Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • 🔥 FAIL

    Lcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
  • 🔥 FAIL

    dcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
  • 🔥 FAIL

    lcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. case_mapping
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+01D3: LATIN CAPITAL LETTER U WITH CARON U+01D4: LATIN SMALL LETTER U WITH CARON
U+01F3: LATIN SMALL LETTER DZ U+01F1: LATIN CAPITAL LETTER DZ
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions. smart_dropout
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Glyph names are all valid? valid_glyphnames
  • 🔥 FAIL

    The following glyph names do not comply with naming conventions: ae-ar, ain-ar, ain-ar.fina, ain-ar.fina.1, ain-ar.init, ain-ar.medi, ain-ar.medi.1, ainThreedots-ar, alef-ar, alef-ar.1 and 219 more.

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

A glyph name must be entirely comprised of characters from the following set: A-Z a-z 0-9 .(period) (underscore). A glyph name must not start with a digit or period. There are a few exceptions such as the special glyph ".notdef". The glyph names "twocents", "a1", and "" are all valid, while "2cents" and ".twocents" are not.

[code: found-invalid-names]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/reem-kufi'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'ءٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ءٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ؤٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ؤٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ئٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to space ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ئٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍بٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'بٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ةٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ةٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍تٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'تٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ثٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ثٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍جٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍جٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to space ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'جٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'جٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍حٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍حٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'حٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'حٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍خٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍خٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'خٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'خٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍دٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'دٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ذٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ذٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍رٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'رٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍زٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'زٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍سٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍سٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'سٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'سٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍شٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍شٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'شٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'شٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍صٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍صٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'صٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'صٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍ضٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ضٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'ضٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ضٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍طٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍طٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'طٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'طٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍ظٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ظٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'ظٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ظٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍عٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍عٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'عٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'عٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍غٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍غٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'غٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'غٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍فٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍فٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'فٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'فٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍قٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍قٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'قٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'قٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍كٔ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍كٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'كٔ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'كٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍لٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍لٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'لٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'لٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍مٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍مٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'مٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'مٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍نٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'نٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍هٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'هٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍وٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'وٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ىٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ىٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍يٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'يٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to kashida-ar ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to kashida-ar ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍چٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'چٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍کٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'کٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍گٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'گٔ' fa_Arab (Persian)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned hamzaabove-ar=0@170,550+0 heh-ar.isol=0+499
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٗ, ٘, ٻ, ټ, ٽ ur_Arab (Urdu)
[code: warning-language-shaping]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Reem Kufi Fun Reem Kufi Fun
Subfamily Name Regular Regular
Full Name Reem Kufi Fun Reem Kufi Fun Regular
Postscript Name ReemKufiFun ReemKufiFun-Regular
[code: bad-names]
  • ⚠️ WARN

    Regular missing from full name


    [code: lacks-regular]
⚠️ WARN Color layers should have a minimum brightness. color_cpal_brightness
  • ⚠️ WARN

    The following glyphs have layers that are too bright or too dark: alefabove-ar, alefbelow-ar, dotabove-ar, dotbelow-ar, dotcenter-ar, tahabove-ar, threedotsdownabove-ar, threedotsdownbelow-ar, threedotsupabove-ar, threedotsupbelow-ar and 8 more.

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

To fix this, please either set the color definitions of all layers in question to current color (0xFFFF), or alter the brightness of these layers significantly.

[code: glyphs-too-dark-or-too-bright]
⚠️ WARN Ensure variable fonts include an avar table. mandatory_avar_table
  • ⚠️ WARN

    This variable font does not have an avar table. Most variable fonts should include an avar table to correctly define axes progression rates.


    [code: missing-avar]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 551: plus

Width = 594: less

Width = 584: greater

Width = 496: logicalnot

Width = 532: plusminus

Width = 519: multiply

Width = 507: divide

Width = 624: minus

Width = 463: approxequal

Width = 556: lessequal, greaterequal

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* behDotless-ar.fina: L<<725.0,100.0>--<725.0,0.0>> has the same coordinates as a previous segment.

* shadda-ar (U+0651): L<<113.0,148.0>--<147.0,148.0>> has the same coordinates as a previous segment.

* shadda-ar (U+0651): L<<34.0,148.0>--<0.0,148.0>> has the same coordinates as a previous segment.

* shadda-ar (U+0651): L<<147.0,148.0>--<113.0,148.0>> has the same coordinates as a previous segment.

* shadda-ar (U+0651): L<<260.0,148.0>--<226.0,148.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- IJacute

- ijacute

- macronbelowcomba

- threedotsdownabove-ar

- threedotsupbelow-ar

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: coptic, tifinagh, cherokee, math
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: old-permic, syriac, math, malayalam, duployan, canadian-aboriginal, tai-le, hebrew, coptic, todhri, tifinagh
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition 31 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, latin-ext, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OTHER DEALINGS IN THE FONT SOFTWARE.\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: j̀ j́ j̃ j̄ j̈ j̑ į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i̒ i̛̒ i̤̒ i̦̒ i̧̒ i̮̒ i̱̒ i̵̒ j̆ j̇ j̉ j̊ j̋ ǰ j̏ j̒ j̛̒ j̣̒ j̤̒ j̦̒

Your font fully covers the following languages that require the soft-dotted feature: Ma’di (Latn, 584,000 speakers), Igbo (Latn, 27,823,640 speakers), Lithuanian (Latn, 2,357,094 speakers), Ekpeye (Latn, 226,000 speakers), Ikwere (Latn, 717,000 speakers), Dutch (Latn, 31,709,104 speakers), Abua (Latn, 25,000 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Ebira (Latn, 2,200,000 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Kaska (Latn, 125 speakers), Mfumte (Latn, 79,000 speakers), Longto (Latn, 5,000 speakers), Makaa (Latn, 221,000 speakers), Vute (Latn, 21,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Sar (Latn, 500,000 speakers), Dan (Latn, 1,099,244 speakers), Lugbara (Latn, 2,200,000 speakers), Western Krahn (Latn, 97,800 speakers), Gulay (Latn, 250,478 speakers), Yala (Latn, 200,000 speakers), Mundani (Latn, 34,000 speakers), Nzakara (Latn, 50,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Dii (Latn, 71,000 speakers), Mango (Latn, 77,000 speakers), Koonzime (Latn, 40,000 speakers), Cicipu (Latn, 44,000 speakers), Aghem (Latn, 38,843 speakers), Southern Tutchone (Latn, 65 speakers), Han (Latn, 6 speakers), Teke-Ebo (Latn, 260,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bafut (Latn, 158,146 speakers), Avokaya (Latn, 100,000 speakers), South Central Banda (Latn, 244,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Ejagham (Latn, 120,000 speakers), Nateni (Latn, 100,000 speakers), Belarusian (Cyrl, 10,064,517 speakers), Fur (Latn, 1,230,163 speakers), Kom (Latn, 360,685 speakers), Navajo (Latn, 166,319 speakers), Northern Tutchone (Latn, 85 speakers), Basaa (Latn, 332,940 speakers), Keliko (Latn, 63,000 speakers), Southern Kisi (Latn, 360,000 speakers), Heiltsuk (Latn, 300 speakers), Zapotec (Latn, 490,000 speakers).

[code: soft-dotted]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* exclamdown (U+00A1) has a counter-clockwise outer contour

* exclamdown (U+00A1) has a counter-clockwise outer contour

* guillemetright (U+00BB) has a counter-clockwise outer contour

* guillemetright (U+00BB) has a counter-clockwise outer contour

* guilsinglright (U+203A) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. googlefonts/name/description_max_length
  • ⚠️ WARN

    A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries.


    [code: too-long]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/reemkufifun


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/reemkufifun/ReemKufiFun[wght].ttf
Dehinted Size 139.4kb
Hinted Size 139.4kb
Increase 0 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.005']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('wght', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 8 14 37 9 170 0
0% 0% 3% 6% 16% 4% 71% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[29] ReemKufiInk-Regular.ttf
🔥 FAIL Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • 🔥 FAIL

    Lcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
  • 🔥 FAIL

    dcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
  • 🔥 FAIL

    lcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. case_mapping
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+01D3: LATIN CAPITAL LETTER U WITH CARON U+01D4: LATIN SMALL LETTER U WITH CARON
U+01F3: LATIN SMALL LETTER DZ U+01F1: LATIN CAPITAL LETTER DZ
[code: missing-case-counterparts]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/reem-kufi'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach uni0654 to the base glyph when shaping the text 'ءٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ءٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ؤٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ؤٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ئٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to space ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ئٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍بٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'بٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ةٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ةٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍تٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'تٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ثٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ثٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍جٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍جٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to space ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'جٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'جٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍حٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍حٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'حٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'حٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍خٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍خٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'خٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'خٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍دٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'دٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ذٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ذٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍رٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'رٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍زٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'زٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍سٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍سٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'سٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'سٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍شٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍شٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'شٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'شٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍صٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍صٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'صٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'صٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍ضٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ضٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'ضٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ضٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍طٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍طٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'طٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'طٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍ظٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ظٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'ظٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ظٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍عٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍عٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'عٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'عٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍غٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍غٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'غٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'غٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍فٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍فٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'فٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'فٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍قٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍قٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'قٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'قٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍كٔ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍كٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'كٔ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'كٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍لٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍لٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'لٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'لٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍مٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍مٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'مٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'مٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍نٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'نٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍هٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'هٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍وٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'وٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ىٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ىٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍يٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'يٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0655 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍چٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'چٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍کٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'کٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍گٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'گٔ' fa_Arab (Persian)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid142=0@170,550+0 gid85=0+499
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٗ, ٘, ٻ, ټ, ٽ ur_Arab (Urdu)
[code: warning-language-shaping]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if OS/2 xAvgCharWidth is correct. opentype/xavgcharwidth
  • ⚠️ WARN

    OS/2 xAvgCharWidth is 609 but it should be 594 which corresponds to the average of the widths of all glyphs in the font.


    [code: xAvgCharWidth-wrong]
⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ 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: Eth Contours detected: 3 Expected: 2

  • Glyph name: Dcroat Contours detected: 3 Expected: 2

  • Glyph name: dcroat Contours detected: 3 Expected: 2

  • Glyph name: hbar Contours detected: 2 Expected: 1

  • Glyph name: Tbar Contours detected: 2 Expected: 1

  • Glyph name: tbar Contours detected: 2 Expected: 1

  • Glyph name: ohorn Contours detected: 3 Expected: 2

  • Glyph name: Uhorn Contours detected: 2 Expected: 1

  • Glyph name: uhorn Contours detected: 2 Expected: 1

  • 38 more.

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

[code: contour-count]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 551: plus

Width = 594: less

Width = 584: greater

Width = 496: logicalnot

Width = 532: plusminus

Width = 519: multiply

Width = 507: divide

Width = 624: minus

Width = 463: approxequal

Width = 556: lessequal, greaterequal

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* glyph00830: L<<725.0,100.0>--<725.0,0.0>> has the same coordinates as a previous segment.

* glyph00831: L<<725.0,100.0>--<725.0,0.0>> has the same coordinates as a previous segment.

* glyph01002: L<<113.0,148.0>--<147.0,148.0>> has the same coordinates as a previous segment.

* glyph01002: L<<34.0,148.0>--<0.0,148.0>> has the same coordinates as a previous segment.

* glyph01002: L<<147.0,148.0>--<113.0,148.0>> has the same coordinates as a previous segment.

* glyph01002: L<<260.0,148.0>--<226.0,148.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- glyph00117

- glyph00118

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: tifinagh, math, cherokee, coptic
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+0307 COMBINING DOT ABOVE: try adding one of: tifinagh, math, todhri, tai-le, canadian-aboriginal, old-permic, coptic, hebrew, malayalam, syriac, duployan
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition 31 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, latin-ext, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OTHER DEALINGS IN THE FONT SOFTWARE.\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Do any segments have colinear vectors? outline_colinear_vectors
  • ⚠️ WARN

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<720.0,725.0>--<720.0,40.0>> -> L<<720.0,40.0>--<720.0,-2.0>>

* K (U+004B): L<<209.0,725.0>--<209.0,439.0>> -> L<<209.0,439.0>--<206.0,403.0>>

* glyph00935: L<<103.0,100.0>--<245.0,100.0>> -> L<<245.0,100.0>--<245.0,100.0>>

* glyph00941: L<<324.0,346.0>--<324.0,150.0>> -> L<<324.0,150.0>--<324.0,100.0>>

* glyph00945: L<<324.0,346.0>--<324.0,150.0>> -> L<<324.0,150.0>--<324.0,100.0>>

* glyph00953: L<<394.0,0.0>--<394.0,100.0>> -> L<<394.0,100.0>--<394.0,150.0>>

* uni0136 (U+0136): L<<209.0,725.0>--<209.0,439.0>> -> L<<209.0,439.0>--<206.0,403.0>>

[code: found-colinear-vectors]

⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph00885 has a counter-clockwise outer contour

* glyph00888 has a counter-clockwise outer contour

* glyph00891 has a counter-clockwise outer contour

* glyph00893 has a counter-clockwise outer contour

* glyph00935 has a counter-clockwise outer contour

* glyph00953 has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* glyph00016: B<<-428.0,163.0>-<-433.0,165.0>-<-435.0,165.0>>/B<<-435.0,165.0>-<-400.0,170.0>-<-385.0,187.0>> = 8.13010235415596

* glyph00086: L<<173.0,0.0>--<173.0,0.0>>/B<<173.0,0.0>-<132.0,1.0>-<98.5,21.0>> = 1.397181027296108

* glyph00087: L<<173.0,0.0>--<173.0,0.0>>/B<<173.0,0.0>-<132.0,1.0>-<98.5,21.0>> = 1.397181027296108

* glyph00100: L<<173.0,0.0>--<173.0,0.0>>/B<<173.0,0.0>-<132.0,1.0>-<98.5,21.0>> = 1.397181027296108

* glyph00931: B<<242.5,308.5>-<255.0,320.0>-<262.0,350.0>>/L<<262.0,350.0>--<262.0,200.0>> = 13.134022306396327

* glyph00959: B<<207.0,111.5>-<221.0,123.0>-<224.0,140.0>>/L<<224.0,140.0>--<224.0,8.0>> = 10.007979801441312

* glyph00959: L<<224.0,223.0>--<224.0,160.0>>/B<<224.0,160.0>-<221.0,177.0>-<207.0,188.5>> = 10.007979801441312

[code: found-jaggy-segments]

⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* Eng (U+014A): L<<188.0,504.0>--<191.0,0.0>>

* Eng (U+014A): L<<618.0,213.0>--<616.0,725.0>>

* K (U+004B): L<<208.0,290.0>--<209.0,0.0>>

* N (U+004E): L<<206.0,502.0>--<208.0,0.0>>

* N (U+004E): L<<635.0,214.0>--<633.0,725.0>>

* Nacute (U+0143): L<<206.0,502.0>--<208.0,0.0>>

* Nacute (U+0143): L<<635.0,214.0>--<633.0,725.0>>

* Ncaron (U+0147): L<<206.0,502.0>--<208.0,0.0>>

* Ncaron (U+0147): L<<635.0,214.0>--<633.0,725.0>>

* Ntilde (U+00D1): L<<206.0,502.0>--<208.0,0.0>>

* 17 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. googlefonts/name/description_max_length
  • ⚠️ WARN

    A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries.


    [code: too-long]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/reemkufiink


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/reemkufiink/ReemKufiInk-Regular.ttf
Dehinted Size 237.3kb
Hinted Size 237.3kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.7']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 4 17 58 9 150 0
0% 0% 2% 7% 24% 4% 63% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@emmamarichal
Copy link
Collaborator Author

thanks @vv-monsalve!

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[29] AmiriQuran-Regular.ttf
🔥 FAIL Check tabular widths don't have kerning. tabular_kerning
  • 🔥 FAIL

    Kerning between A and zero is -10, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between zero and A is -10, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between L and seven is -13, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between V and zero is -14, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between zero and V is -17, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between W and zero is -12, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between zero and W is -14, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between Y and zero is -18, should be 0


    [code: has-tabular-kerning]

  • 🔥 FAIL

    Kerning between zero and Y is -21, should be 0


    [code: has-tabular-kerning]

🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/amiri'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_TransLatin_Pinyin glyphset:

FAIL messages Languages
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍إٔ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍ؤٍّ' ar_Arab (Arabic)
Shaper didn't attach uni0670 to the base glyph when shaping the text '‍إٰ' ar_Arab (Arabic)
Shaper didn't attach uni0653 to the base glyph when shaping the text '‍إٓ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍إٔ' ar_Arab (Arabic)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍إً' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍إٌ' ar_Arab (Arabic)
Shaper didn't attach uni064E to the base glyph when shaping the text '‍إَ' ar_Arab (Arabic)
Shaper didn't attach uni064F to the base glyph when shaping the text '‍إُ' ar_Arab (Arabic)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍إّ' ar_Arab (Arabic)
Shaper didn't attach uni0652 to the base glyph when shaping the text '‍إْ' ar_Arab (Arabic)
Shaper didn't attach uni0651 to glyph00106 ar_Arab (Arabic)
Shaper didn't attach uni0651 to glyph00563 ar_Arab (Arabic)
Shaper didn't attach uni0651 to uni0650 ar_Arab (Arabic)
Shaper didn't attach uni0651 to uni064D ar_Arab (Arabic)
Shaper didn't attach uni0651 to glyph00546 ar_Arab (Arabic)
Shaper didn't attach uni0651 to glyph00552 ar_Arab (Arabic)
Shaper didn't attach uni0670 to the base glyph when shaping the text '‍آٰ' ar_Arab (Arabic)
Shaper didn't attach uni0653 to the base glyph when shaping the text '‍آٓ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍آٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0653 to the base glyph when shaping the text '‍إٓ' ar_Arab (Arabic)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍آً' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍آٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍آٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064E to the base glyph when shaping the text '‍آَ' ar_Arab (Arabic)
Shaper didn't attach uni064F to the base glyph when shaping the text '‍آُ' ar_Arab (Arabic)
Shaper didn't attach uni0650 to the base glyph when shaping the text '‍آِ' ar_Arab (Arabic)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍آّ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0652 to the base glyph when shaping the text '‍آْ' ar_Arab (Arabic)
Shaper didn't attach uni0650 to the base glyph when shaping the text '‍آِّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍آٍّ' ar_Arab (Arabic)
Shaper didn't attach uni0670 to the base glyph when shaping the text 'آٰ' ar_Arab (Arabic)
Shaper didn't attach uni0653 to the base glyph when shaping the text 'آٓ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'آٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'آً' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'آٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'آٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064E to the base glyph when shaping the text 'آَ' ar_Arab (Arabic)
Shaper didn't attach uni064F to the base glyph when shaping the text 'آُ' ar_Arab (Arabic)
Shaper didn't attach uni0650 to the base glyph when shaping the text 'آِ' ar_Arab (Arabic)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'آّ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0652 to the base glyph when shaping the text 'آْ' ar_Arab (Arabic)
Shaper didn't attach uni0650 to the base glyph when shaping the text 'آِّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text 'آٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍دٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍دٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text 'دٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'دٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍ذٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍ذٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text 'ذٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'ذٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍رٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍رٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍زٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍زٍّ' ar_Arab (Arabic)
Shaper didn't attach uni064D to space ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍وٍ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍وٍّ' ar_Arab (Arabic)
Some base glyphs were missing: پ, چ, ژ, ک, گ fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍پً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍پٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍پٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍پّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍پٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to space fa_Arab (Persian)
Shaper didn't attach uni064C to space fa_Arab (Persian)
Shaper didn't attach uni0651 to space fa_Arab (Persian)
Shaper didn't attach uni0654 to space fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'پً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'پٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'پٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'پّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'پٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍چً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍چٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍چٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍چّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍چٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'چً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'چٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'چٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'چّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'چٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍ژً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍ژٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ژٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍ژّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍ژٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'ژً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'ژٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ژٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'ژّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'ژٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍کً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍کٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍کٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍کّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍کٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'کً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'کٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'کٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'کّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'کٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text '‍گً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text '‍گٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍گٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text '‍گّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍گٔ' fa_Arab (Persian)
Shaper didn't attach uni064B to the base glyph when shaping the text 'گً' fa_Arab (Persian)
Shaper didn't attach uni064D to the base glyph when shaping the text 'گٍ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'گٌ' fa_Arab (Persian)
Shaper didn't attach uni0651 to the base glyph when shaping the text 'گّ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'گٔ' fa_Arab (Persian)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid127=0@180,68+0 gid644=0+369
Some base glyphs were missing: ٹ, پ, چ, ڈ, ڑ, ژ, ک, گ, ھ, ہ, ے ur_Arab (Urdu)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_TransLatin_Pinyin glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: پ, چ, ژ, ڜ, ڢ, ڤ, ڥ, ڧ, ڨ, ک, گ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٻ, ټ, ٽ, ۂ, ۃ ur_Arab (Urdu)
[code: warning-language-shaping]
🔥 FAIL Does DESCRIPTION file contain broken links? googlefonts/description/broken_links
  • 🔥 FAIL

    The following links are broken in the description file:
    http://amirifont.org (status code: 405)


    [code: broken-links]
🔥 FAIL Ensure font has the expected color font tables. googlefonts/colorfont_tables
  • 🔥 FAIL

    Font has a COLR v0 table, which is already widely supported, so the SVG table isn't needed.


    [code: drop-svg]
🔥 FAIL Check Google Fonts glyph coverage. googlefonts/glyph_coverage
  • 🔥 FAIL

    Missing required codepoints:

- 0x2122 (TRADE MARK SIGN)

[code: missing-codepoints]

🔥 FAIL Version format is correct in 'name' table? googlefonts/name/version_format
  • 🔥 FAIL

    The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000. The "Version " prefix is a recommendation given by the OpenType spec. Current version string is: "0.117-H1"


    [code: bad-version-strings]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if uppercase glyphs are vertically centered. caps_vertically_centered
  • ⚠️ WARN

    Uppercase glyphs are not vertically centered in the em box.


    [code: vertical-metrics-not-centered]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 480: less

Width = 551: equal

Width = 481: greater

Width = 453: multiply

Width = 584: divide

Width = 596: minus

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* uniFDFD (U+FDFD): B<<1852.0,143.0>-<1854.0,149.0>-<1858.0,149.0>> has the same coordinates as a previous segment.

* uniFDFD (U+FDFD): B<<1858.0,149.0>-<1863.0,149.0>-<1866.0,145.0>> has the same coordinates as a previous segment.

* uniFDFD (U+FDFD): B<<3283.0,54.0>-<3285.0,60.0>-<3289.0,60.0>> has the same coordinates as a previous segment.

* uniFDFD (U+FDFD): B<<3289.0,60.0>-<3294.0,60.0>-<3297.0,56.0>> has the same coordinates as a previous segment.

* uni0624 (U+0624): B<<198.0,161.0>-<223.0,133.0>-<260.0,157.0>> has the same coordinates as a previous segment.

* uni0648 (U+0648): B<<198.0,161.0>-<223.0,133.0>-<260.0,157.0>> has the same coordinates as a previous segment.

* uniFDFA (U+FDFA): B<<970.0,78.0>-<983.0,63.0>-<1004.0,75.0>> has the same coordinates as a previous segment.

* glyph00750: B<<344.0,161.0>-<369.0,133.0>-<406.0,157.0>> has the same coordinates as a previous segment.

* glyph01467: B<<198.0,161.0>-<223.0,133.0>-<260.0,157.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0305 COMBINING OVERLINE: try adding one of: math, coptic, glagolitic, gothic, elbasan
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+0325 COMBINING RING BELOW: try adding syriac
  • U+2000 EN QUAD: try adding symbols2
  • U+2001 EM QUAD: try adding symbols2
  • U+2003 EM SPACE: try adding nushu
  • U+2004 THREE-PER-EM SPACE: try adding symbols2
  • U+2005 FOUR-PER-EM SPACE: try adding symbols2
  • U+2006 SIX-PER-EM SPACE: try adding symbols2
  • U+2007 FIGURE SPACE: try adding symbols2 12 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 Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OTHER DEALINGS IN THE FONT SOFTWARE.\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Do any segments have colinear vectors? outline_colinear_vectors
  • ⚠️ WARN

    The following glyphs have colinear vectors:

* glyph01313: L<<27.0,356.0>--<229.0,356.0>> -> L<<229.0,356.0>--<270.0,358.0>>

* uniFDFA (U+FDFA): L<<194.0,202.0>--<184.0,304.0>> -> L<<184.0,304.0>--<184.0,305.0>>

* uniFDFA (U+FDFA): L<<201.0,114.0>--<201.0,122.0>> -> L<<201.0,122.0>--<199.0,144.0>>

[code: found-colinear-vectors]

⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* uni202C (U+202C) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* at (U+0040): B<<415.5,101.0>-<418.0,116.0>-<420.0,122.0>>/B<<420.0,122.0>-<413.0,109.0>-<398.5,87.5>> = 9.865806943084328

* glyph00753: B<<254.0,0.0>-<142.0,0.0>-<105.0,239.0>>/B<<105.0,239.0>-<97.0,113.0>-<40.0,50.0>> = 12.433148615868687

* glyph00762: B<<347.0,276.0>-<258.0,263.0>-<227.0,456.0>>/B<<227.0,456.0>-<222.0,332.0>-<106.0,257.0>> = 11.434071436961634

* glyph00888: B<<603.0,-11.0>-<543.0,1.0>-<516.0,83.0>>/L<<516.0,83.0>--<523.0,31.0>> = 10.558270849540243

* glyph00894: B<<573.5,1.5>-<564.0,26.0>-<559.0,57.0>>/B<<559.0,57.0>-<564.0,20.0>-<566.5,-24.5>> = 1.4662953237050957

* glyph00999: B<<254.0,0.0>-<142.0,0.0>-<105.0,239.0>>/B<<105.0,239.0>-<97.0,113.0>-<40.0,50.0>> = 12.433148615868687

* glyph01013: B<<347.0,276.0>-<258.0,263.0>-<227.0,456.0>>/B<<227.0,456.0>-<222.0,332.0>-<106.0,257.0>> = 11.434071436961634

* glyph01186: B<<603.0,-11.0>-<543.0,1.0>-<516.0,83.0>>/L<<516.0,83.0>--<523.0,31.0>> = 10.558270849540243

* glyph01192: B<<573.5,1.5>-<564.0,26.0>-<559.0,57.0>>/B<<559.0,57.0>-<564.0,20.0>-<566.5,-24.5>> = 1.4662953237050957

* uni06DD (U+06DD): B<<625.0,455.0>-<639.0,445.0>-<640.0,436.0>>/B<<640.0,436.0>-<641.0,446.0>-<654.0,455.0>> = 12.050784883409548

* 17 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* R (U+0052): L<<117.0,113.0>--<116.0,530.0>>

* R (U+0052): L<<201.0,529.0>--<202.0,325.0>>

* glyph00134: L<<305.0,149.0>--<63.0,151.0>>

* glyph00135: L<<305.0,149.0>--<63.0,151.0>>

* glyph00160: L<<305.0,149.0>--<63.0,151.0>>

* glyph00161: L<<305.0,149.0>--<63.0,151.0>>

* glyph00847: L<<305.0,149.0>--<63.0,151.0>>

* glyph00871: L<<305.0,149.0>--<63.0,151.0>>

* glyph01150: L<<305.0,149.0>--<63.0,151.0>>

* glyph01175: L<<305.0,149.0>--<63.0,151.0>>

* z (U+007A): L<<285.0,387.0>--<148.0,388.0>>

[code: found-semi-vertical]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. googlefonts/name/description_max_length
  • ⚠️ WARN

    A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries.


    [code: too-long]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/amiriquran


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/amiriquran/AmiriQuran-Regular.ttf
Dehinted Size 330.1kb
Hinted Size 330.1kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['0.117-H1']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 7 14 58 9 150 0
0% 0% 3% 6% 24% 4% 63% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Experimental checks

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

[1] ArefRuqaaInk-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. base_has_width
  • 🔥 FAIL

    The following glyphs had zero advance width:

  • uni0640 (U+0640)


    [code: zero-width-bases]
[1] ArefRuqaaInk-Bold.ttf
🔥 FAIL Check base characters have non-zero advance width. base_has_width
  • 🔥 FAIL

    The following glyphs had zero advance width:

  • uni0640 (U+0640)


    [code: zero-width-bases]

All other checks

[32] ArefRuqaaInk-Regular.ttf
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Ensure component transforms do not perform scaling or rotation. transformed_components
  • 🔥 FAIL

    The following glyphs had components with scaling or rotation
    or inverted outline direction:

  • glyph00409 (component uni060C)
  • glyph00410 (component uni061B)
[code: transformed-components]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/aref-ruqaa'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_TransLatin_Arabic glyphset:

FAIL messages Languages
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍جٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'جٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍حٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'حٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍خٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'خٕ' ar_Arab (Arabic)
Shaper didn't attach uni0670 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0653 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0654 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0655 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064B to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064C to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064D to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064E to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064F to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0650 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0651 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0652 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064E to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064B to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni0650 to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064D to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064F to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064C to uni0651 ar_Arab (Arabic)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid463=0@461,751+0 gid471=0+741
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_TransLatin_Arabic glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٺ, ٻ, ټ, ٽ, ۃ ur_Arab (Urdu)
[code: warning-language-shaping]
🔥 FAIL Check Google Fonts glyph coverage. googlefonts/glyph_coverage
  • 🔥 FAIL

    Missing required codepoints:

- 0x2122 (TRADE MARK SIGN)

[code: missing-codepoints]

⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks. opentype/gdef_non_mark_chars
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+0640


    [code: non-mark-chars]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if uppercase glyphs are vertically centered. caps_vertically_centered
  • ⚠️ WARN

    Uppercase glyphs are not vertically centered in the em box.


    [code: vertical-metrics-not-centered]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 710: less

Width = 823: equal

Width = 711: greater

Width = 777: logicalnot

Width = 763: plusminus

Width = 603: multiply

Width = 824: divide

Width = 892: minus

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* glyph00651: L<<320.0,210.0>--<324.0,211.0>> has the same coordinates as a previous segment.

* glyph00653: L<<562.0,201.0>--<566.0,203.0>> has the same coordinates as a previous segment.

* glyph00900: L<<259.0,177.0>--<259.0,176.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? googlefonts/metadata/designer_profiles
  • ⚠️ WARN

    It seems that Hermann Zapf is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: tifinagh, cherokee, coptic, math
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+0327 COMBINING CEDILLA: try adding math
  • U+2074 SUPERSCRIPT FOUR: try adding math
  • U+2118 SCRIPT CAPITAL P: try adding math
  • U+2126 OHM SIGN: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
  • U+2206 INCREMENT: try adding math

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

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- \n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development\n

+ of collaborative font projects, to support the font creation efforts of academic\n

+ and linguistic communities, and to provide a free and open framework in which\n

+ fonts may be shared and improved in partnership with others.\n

+ \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed\n

- redistributed freely as long as they are not sold by themselves. The\n

+ freely as long as they are not sold by themselves. The fonts, including any\n

+ derivative works, can be bundled, embedded, redistributed and/or sold with any\n

+ software provided that any reserved names are not used by derivative works. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

+ fonts and derivatives, however, cannot be released under any other type of license.\n

- requirement for fonts to remain under this license does not apply\n

+ The requirement for fonts to remain under this license does not apply to any\n

- to any document created using the fonts or their derivatives.\n

+ document created using the fonts or their derivatives.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under\n

+ this license and clearly marked as such. This may include source files, build\n

+ scripts and documentation.\n

+ \n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright\n

- copyright statement(s).\n

+ statement(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or\n

- or substituting -- in part or in whole -- any of the components of the\n

+ substituting -- in part or in whole -- any of the components of the Original Version,\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other\n

- writer or other person who contributed to the Font Software.\n

+ person who contributed to the Font Software.\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

- in Original or Modified Versions, may be sold by itself.\n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the\n

+ Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell\n

+ modified and unmodified copies of the Font Software, subject to the following\n

+ conditions:\n

+ 1) Neither the Font Software nor any of its individual components, in Original or\n

+ Modified Versions, may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed\n

+ and/or sold with any software, provided that each copy contains the above copyright\n

+ notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within\n

+ text or binary files as long as those fields can be easily viewed by the user.\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless\n

+ explicit written permission is granted by the corresponding Copyright Holder. This\n

+ restriction only applies to the primary font name as presented to the users.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall\n

+ not be used to promote, endorse or advertise any Modified Version, except to\n

+ acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with\n

+ their explicit written permission.\n

+ \n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed\n

+ entirely under this license, and must not be distributed under any other license. The\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

+ requirement for fonts to remain under this license does not apply to any document\n

- using the Font Software.\n

+ created using the Font Software.\n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n

+ PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER\n

+ RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

+ LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR\n

+ INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. googlefonts/metadata/reserved_font_name
  • ⚠️ WARN

    METADATA.pb: copyright field ("Copyright 2015-2022 The Aref Ruqaa Project Authors (https://github.com/aliftype/aref-ruqaa), with Reserved Font Name EURM10.") contains "Reserved Font Name". This is an error except in a few specific rare cases.


    [code: rfn]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Name table strings must not contain the string 'Reserved Font Name'. googlefonts/name/rfn
  • ⚠️ WARN

    Name table entry contains "Reserved Font Name" for a family name (EURM10) that differs from the currently used family name (ArefRuqaaInk), which is fine.


    [code: legacy-familyname]
⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Do any segments have colinear vectors? outline_colinear_vectors
  • ⚠️ WARN

    The following glyphs have colinear vectors:

* W (U+0057): L<<716.0,146.0>--<796.0,316.0>> -> L<<796.0,316.0>--<905.0,558.0>>

* glyph00022: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00037: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00049: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00050: L<<55.0,-120.0>--<62.0,-105.0>> -> L<<62.0,-105.0>--<63.0,-103.0>>

* glyph00050: L<<62.0,-105.0>--<63.0,-103.0>> -> L<<63.0,-103.0>--<122.0,12.0>>

* glyph00082: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00096: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* glyph00097: L<<164.0,187.0>--<181.0,190.0>> -> L<<181.0,190.0>--<207.0,194.0>>

* glyph00110: L<<2.0,-194.0>--<5.0,-156.0>> -> L<<5.0,-156.0>--<5.0,-155.0>>

* 44 more.

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

[code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph00409 has a counter-clockwise outer contour

* glyph00410 has a counter-clockwise outer contour

* glyph00410 has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* Z (U+005A): B<<234.0,186.0>-<187.0,113.0>-<153.0,61.0>>/L<<153.0,61.0>--<159.0,68.0>> = 7.42278298561167

* glyph00061: L<<5.0,-157.0>--<59.0,-91.0>>/L<<59.0,-91.0>--<58.0,-93.0>> = 12.724355685422335

* glyph00221: L<<333.0,125.0>--<333.0,124.0>>/L<<333.0,124.0>--<332.0,135.0>> = 5.1944289077348

* glyph00221: L<<343.0,0.0>--<333.0,125.0>>/L<<333.0,125.0>--<333.0,124.0>> = 4.573921259900818

* glyph00336: B<<556.0,110.5>-<557.0,113.0>-<558.0,114.0>>/B<<558.0,114.0>-<540.0,101.0>-<527.0,95.0>> = 9.162347045721665

* glyph00337: L<<365.0,271.0>--<365.0,270.0>>/B<<365.0,270.0>-<366.0,287.0>-<360.0,310.0>> = 3.3664606634298315

* glyph00565: L<<603.0,279.0>--<529.0,221.0>>/B<<529.0,221.0>-<541.0,235.0>-<538.5,240.5>> = 11.309932474020227

* glyph00571: B<<820.5,482.0>-<830.0,497.0>-<838.0,510.0>>/B<<838.0,510.0>-<824.0,479.0>-<829.5,458.5>> = 7.302952980312182

* glyph00607: B<<610.5,230.0>-<647.0,257.0>-<657.0,287.0>>/B<<657.0,287.0>-<649.0,246.0>-<628.5,207.0>> = 7.394008642598206

* glyph00609: L<<714.0,253.0>--<640.0,222.0>>/B<<640.0,222.0>-<655.0,230.0>-<655.0,246.0>> = 5.34275485590833

* 30 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* E (U+0045): L<<8.0,681.0>--<156.0,682.0>>

* Eacute (U+00C9): L<<8.0,681.0>--<156.0,682.0>>

* Ecircumflex (U+00CA): L<<8.0,681.0>--<156.0,682.0>>

* Edieresis (U+00CB): L<<8.0,681.0>--<156.0,682.0>>

* Egrave (U+00C8): L<<8.0,681.0>--<156.0,682.0>>

* OE (U+0152): L<<518.0,681.0>--<635.0,682.0>>

[code: found-semi-vertical]

⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x02 - Use grayscale rendering

[code: ranges]
  • ⚠️ WARN

    The gasp range 0xFFFF value 0x02 should be set to 0x0F.


    [code: unset-flags]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/arefruqaaink


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/arefruqaaink/ArefRuqaaInk-Regular.ttf
Dehinted Size 554.7kb
Hinted Size 554.7kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.005']


    [code: version-not-detected]
[32] ArefRuqaaInk-Bold.ttf
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, all messages from this check are considered FAILs.

[code: hhea]
🔥 FAIL Ensure component transforms do not perform scaling or rotation. transformed_components
  • 🔥 FAIL

    The following glyphs had components with scaling or rotation
    or inverted outline direction:

  • glyph00408 (component uni060C)
  • glyph00409 (component uni061B)
[code: transformed-components]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/aref-ruqaa'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_TransLatin_Arabic glyphset:

FAIL messages Languages
Shaper didn't attach uni0670 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0653 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0654 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0655 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064B to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064C to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064D to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064E to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064F to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0650 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0651 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0652 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni064E to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064B to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni0650 to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064D to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064F to uni0651 ar_Arab (Arabic)
Shaper didn't attach uni064C to uni0651 ar_Arab (Arabic)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid464=0@461,751+0 gid471=0+741
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_TransLatin_Arabic glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٺ, ٻ, ټ, ٽ, ۃ ur_Arab (Urdu)
[code: warning-language-shaping]
🔥 FAIL Check Google Fonts glyph coverage. googlefonts/glyph_coverage
  • 🔥 FAIL

    Missing required codepoints:

- 0x2122 (TRADE MARK SIGN)

[code: missing-codepoints]

⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks. opentype/gdef_non_mark_chars
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+0640


    [code: non-mark-chars]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if uppercase glyphs are vertically centered. caps_vertically_centered
  • ⚠️ WARN

    Uppercase glyphs are not vertically centered in the em box.


    [code: vertical-metrics-not-centered]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 430: less

Width = 734: equal

Width = 405: greater

Width = 868: logicalnot

Width = 893: plusminus

Width = 623: multiply

Width = 878: divide

Width = 1003: minus

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* glyph00611: L<<847.0,204.0>--<861.0,212.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? googlefonts/metadata/designer_profiles
  • ⚠️ WARN

    It seems that Hermann Zapf is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: tifinagh, cherokee, coptic, math
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+0327 COMBINING CEDILLA: try adding math
  • U+2074 SUPERSCRIPT FOUR: try adding math
  • U+2118 SCRIPT CAPITAL P: try adding math
  • U+2126 OHM SIGN: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
  • U+2206 INCREMENT: try adding math

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

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- \n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development\n

+ of collaborative font projects, to support the font creation efforts of academic\n

+ and linguistic communities, and to provide a free and open framework in which\n

+ fonts may be shared and improved in partnership with others.\n

+ \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed\n

- redistributed freely as long as they are not sold by themselves. The\n

+ freely as long as they are not sold by themselves. The fonts, including any\n

+ derivative works, can be bundled, embedded, redistributed and/or sold with any\n

+ software provided that any reserved names are not used by derivative works. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

+ fonts and derivatives, however, cannot be released under any other type of license.\n

- requirement for fonts to remain under this license does not apply\n

+ The requirement for fonts to remain under this license does not apply to any\n

- to any document created using the fonts or their derivatives.\n

+ document created using the fonts or their derivatives.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under\n

+ this license and clearly marked as such. This may include source files, build\n

+ scripts and documentation.\n

+ \n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright\n

- copyright statement(s).\n

+ statement(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or\n

- or substituting -- in part or in whole -- any of the components of the\n

+ substituting -- in part or in whole -- any of the components of the Original Version,\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other\n

- writer or other person who contributed to the Font Software.\n

+ person who contributed to the Font Software.\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

- in Original or Modified Versions, may be sold by itself.\n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the\n

+ Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell\n

+ modified and unmodified copies of the Font Software, subject to the following\n

+ conditions:\n

+ 1) Neither the Font Software nor any of its individual components, in Original or\n

+ Modified Versions, may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed\n

+ and/or sold with any software, provided that each copy contains the above copyright\n

+ notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within\n

+ text or binary files as long as those fields can be easily viewed by the user.\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless\n

+ explicit written permission is granted by the corresponding Copyright Holder. This\n

+ restriction only applies to the primary font name as presented to the users.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall\n

+ not be used to promote, endorse or advertise any Modified Version, except to\n

+ acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with\n

+ their explicit written permission.\n

+ \n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed\n

+ entirely under this license, and must not be distributed under any other license. The\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

+ requirement for fonts to remain under this license does not apply to any document\n

- using the Font Software.\n

+ created using the Font Software.\n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n

+ PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER\n

+ RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

+ LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR\n

+ INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. googlefonts/metadata/reserved_font_name
  • ⚠️ WARN

    METADATA.pb: copyright field ("Copyright 2015-2022 The Aref Ruqaa Project Authors (https://github.com/aliftype/aref-ruqaa), with Reserved Font Name EURM10.") contains "Reserved Font Name". This is an error except in a few specific rare cases.


    [code: rfn]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Name table strings must not contain the string 'Reserved Font Name'. googlefonts/name/rfn
  • ⚠️ WARN

    Name table entry contains "Reserved Font Name" for a family name (EURM10) that differs from the currently used family name (ArefRuqaaInk), which is fine.


    [code: legacy-familyname]
⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Do any segments have colinear vectors? outline_colinear_vectors
  • ⚠️ WARN

    The following glyphs have colinear vectors:

* glyph00024: L<<294.0,91.0>--<282.0,88.0>> -> L<<282.0,88.0>--<276.0,87.0>>

* glyph00029: L<<355.0,229.0>--<350.0,217.0>> -> L<<350.0,217.0>--<295.0,98.0>>

* glyph00047: L<<432.0,350.0>--<410.0,314.0>> -> L<<410.0,314.0>--<400.0,297.0>>

* glyph00054: L<<366.0,337.0>--<376.0,340.0>> -> L<<376.0,340.0>--<380.0,341.0>>

* glyph00063: L<<112.0,41.0>--<86.0,23.0>> -> L<<86.0,23.0>--<57.0,5.0>>

* glyph00118: L<<445.0,152.0>--<448.0,152.0>> -> L<<448.0,152.0>--<462.0,153.0>>

* glyph00119: L<<445.0,152.0>--<448.0,152.0>> -> L<<448.0,152.0>--<462.0,153.0>>

* glyph00122: L<<448.0,135.0>--<437.0,132.0>> -> L<<437.0,132.0>--<425.0,128.0>>

* glyph00124: L<<204.0,186.0>--<204.0,188.0>> -> L<<204.0,188.0>--<183.0,502.0>>

* glyph00128: L<<295.0,333.0>--<295.0,335.0>> -> L<<295.0,335.0>--<274.0,649.0>>

* 83 more.

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

[code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph00408 has a counter-clockwise outer contour

* glyph00409 has a counter-clockwise outer contour

* glyph00409 has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* glyph00027: B<<182.5,26.0>-<170.0,39.0>-<175.0,66.0>>/B<<175.0,66.0>-<175.0,65.0>-<172.0,65.0>> = 10.491477012331599

* glyph00042: B<<225.0,404.5>-<203.0,403.0>-<183.0,400.0>>/L<<183.0,400.0>--<184.0,400.0>> = 8.530765609948139

* glyph00042: L<<183.0,400.0>--<184.0,400.0>>/B<<184.0,400.0>-<164.0,396.0>-<156.5,408.0>> = 11.309932474020195

* glyph00051: L<<61.0,9.0>--<62.0,10.0>>/L<<62.0,10.0>--<53.0,3.0>> = 7.1250163489018075

* glyph00051: L<<82.0,22.0>--<61.0,9.0>>/L<<61.0,9.0>--<62.0,10.0>> = 13.24051991518721

* glyph00052: L<<221.0,320.0>--<222.0,320.0>>/B<<222.0,320.0>-<206.0,323.0>-<207.0,337.0>> = 10.61965527615514

* glyph00055: L<<134.0,13.0>--<134.0,12.0>>/L<<134.0,12.0>--<137.0,28.0>> = 10.61965527615514

* glyph00087: L<<117.0,343.0>--<115.0,344.0>>/B<<115.0,344.0>-<125.0,341.0>-<125.0,330.0>> = 9.865806943084328

* glyph00096: L<<179.0,208.0>--<205.0,211.0>>/L<<205.0,211.0>--<204.0,211.0>> = 6.581944655178027

* glyph00096: L<<205.0,211.0>--<204.0,211.0>>/L<<204.0,211.0>--<314.0,234.0>> = 11.809882957028252

* 90 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* I (U+0049): L<<243.0,618.0>--<242.0,367.0>>

* Iacute (U+00CD): L<<243.0,618.0>--<242.0,367.0>>

* Icircumflex (U+00CE): L<<243.0,618.0>--<242.0,367.0>>

* Idieresis (U+00CF): L<<243.0,618.0>--<242.0,367.0>>

* Igrave (U+00CC): L<<243.0,618.0>--<242.0,367.0>>

* d (U+0064): L<<491.0,436.0>--<490.0,143.0>>

* glyph00861: L<<427.0,280.0>--<428.0,445.0>>

* glyph00871: L<<939.0,254.0>--<940.0,419.0>>

* mu (U+00B5): L<<432.0,116.0>--<433.0,255.0>>

[code: found-semi-vertical]

⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 65535: flag = 0x02 - Use grayscale rendering

[code: ranges]
  • ⚠️ WARN

    The gasp range 0xFFFF value 0x02 should be set to 0x0F.


    [code: unset-flags]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/arefruqaaink


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/arefruqaaink/ArefRuqaaInk-Bold.ttf
Dehinted Size 616.2kb
Hinted Size 616.2kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.005']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 12 40 112 15 280 0
0% 0% 3% 9% 24% 3% 61% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[25] BlakaInk-Regular.ttf
🔥 FAIL Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • 🔥 FAIL

    Lcaron uses component uni030C.


    [code: wrong-mark]

  • 🔥 FAIL

    dcaron uses component uni030C.


    [code: wrong-mark]

  • 🔥 FAIL

    lcaron uses component uni030C.


    [code: wrong-mark]

  • 🔥 FAIL

    tcaron uses component uni030C.


    [code: wrong-mark]

🔥 FAIL PPEM must be an integer on hinted fonts. integer_ppem_if_hinted
  • 🔥 FAIL

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

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

# create virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/gftools
[code: bad-flags]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_TransLatin_Arabic glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
Some base glyphs were missing: ـ ar_Arab (Arabic)
Some mark glyphs were missing: ◌ٰ ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ءٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍أٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'أٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ؤٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ؤٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍إٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text 'إٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ئٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to space ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ئٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍اٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'اٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍آٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'آٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍بٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'بٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ةٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ةٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍تٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'تٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ثٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ثٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍جٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'جٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍حٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'حٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍خٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'خٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍دٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'دٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ذٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ذٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍رٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'رٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍زٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'زٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍سٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'سٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍شٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'شٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍صٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'صٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ضٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ضٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍طٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'طٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ظٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ظٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍عٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'عٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍غٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'غٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍فٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'فٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍قٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'قٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍كٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text 'كٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍لٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'لٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍مٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'مٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍نٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'نٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍هٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'هٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍وٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'وٌ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ىٌ' ar_Arab (Arabic)
.medi version of ARABIC LETTER ALEF MAKSURA; both buffers returned gid607=1+0 gid300=1+646
.init version of ARABIC LETTER ALEF MAKSURA; both buffers returned gid607=0+0 gid300=0+646
Shaper didn't attach uni064C to the base glyph when shaping the text 'ىٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍يٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text 'يٌ' ar_Arab (Arabic)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍پٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'پٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍چٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'چٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍ژٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'ژٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍کٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'کٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍گٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'گٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text '‍یٌ' fa_Arab (Persian)
Shaper didn't attach uni064C to the base glyph when shaping the text 'یٌ' fa_Arab (Persian)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid315=0@113,-52+0 gid298=0+423
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_TransLatin_Arabic glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: Ŀ, ŀ ca_Latn (Catalan)
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: IJ, ij nl_Latn (Dutch)
Some auxiliary glyphs were missing: ـ, ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ـ‌‍‏, ٖ, ٰ fa_Arab (Persian)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٖ, ٗ, ٘, ٰ, ٺ, ٻ, ټ, ٽ ur_Arab (Urdu)
[code: warning-language-shaping]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ 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: dieresis	Contours detected: 1	Expected: 2
  • Glyph name: uni00AD Contours detected: 1 Expected: 0

  • Glyph name: Adieresis Contours detected: 3 Expected: 4

  • Glyph name: Edieresis Contours detected: 2 Expected: 3

  • Glyph name: Idieresis Contours detected: 2 Expected: 3

  • Glyph name: Odieresis Contours detected: 3 Expected: 4

  • Glyph name: Udieresis Contours detected: 2 Expected: 3

  • Glyph name: germandbls Contours detected: 2 Expected: 1

  • Glyph name: adieresis Contours detected: 3 Expected: 4

  • Glyph name: edieresis Contours detected: 3 Expected: 4

  • 44 more.

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

[code: contour-count]
⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

    This font lacks caret positioning values for these ligature glyphs:

  • glyph00148

- glyph00149

- glyph00150

- uniFB01

- uniFB02

[code: incomplete-caret-pos-data]

⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 465: plus, plusminus

Width = 364: less, greater

Width = 600: logicalnot

Width = 416: multiply

Width = 415: divide

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* Aogonek (U+0104): L<<257.0,-37.0>--<257.0,-37.0>> has the same coordinates as a previous segment.

* B (U+0042): L<<455.0,576.0>--<455.0,576.0>> has the same coordinates as a previous segment.

* Eogonek (U+0118): L<<116.0,-37.0>--<116.0,-37.0>> has the same coordinates as a previous segment.

* Euro (U+20AC): L<<318.0,-19.0>--<318.0,-19.0>> has the same coordinates as a previous segment.

* Iogonek (U+012E): L<<45.0,-37.0>--<45.0,-37.0>> has the same coordinates as a previous segment.

* K (U+004B): L<<422.0,312.0>--<422.0,312.0>> has the same coordinates as a previous segment.

* Uogonek (U+0172): L<<295.0,-37.0>--<295.0,-37.0>> has the same coordinates as a previous segment.

* aogonek (U+0105): L<<239.0,-37.0>--<239.0,-37.0>> has the same coordinates as a previous segment.

* at (U+0040): L<<426.0,-229.0>--<426.0,-229.0>> has the same coordinates as a previous segment.

* at (U+0040): L<<426.0,-229.0>--<426.0,-229.0>> has the same coordinates as a previous segment.

* 167 more.

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

[code: overlapping-path-segments]
⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- glyph00133

- glyph00134

- glyph00161

- glyph00219

- glyph00220

- glyph00224

- glyph00225

- glyph00227

- glyph00609

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: tifinagh, cherokee, coptic, math
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: old-permic, coptic, tifinagh, canadian-aboriginal, math, malayalam, todhri, duployan, tai-le, hebrew, syriac
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0312 COMBINING TURNED COMMA ABOVE: try adding math
  • U+0326 COMBINING COMMA BELOW: try adding math
  • U+0327 COMBINING CEDILLA: try adding math
  • U+0328 COMBINING OGONEK: not included in any glyphset definition 9 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, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* E (U+0045): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Eacute (U+00C9): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Ecaron (U+011A): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Ecircumflex (U+00CA): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Edieresis (U+00CB): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Edotaccent (U+0116): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Egrave (U+00C8): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Emacron (U+0112): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* Eogonek (U+0118): L<<34.0,482.0>--<119.0,482.0>>/L<<119.0,482.0>--<15.0,492.0>> = 5.492324557127385

* F (U+0046): L<<46.0,482.0>--<131.0,482.0>>/L<<131.0,482.0>--<27.0,492.0>> = 5.492324557127385

* 181 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* glyph00852: L<<34.0,254.0>--<35.0,381.0>>

[code: found-semi-vertical]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/blakaink


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/blakaink/BlakaInk-Regular.ttf
Dehinted Size 361.2kb
Hinted Size 382.3kb
Increase 21.2kb
Change 5.9 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 3 15 55 8 157 0
0% 0% 1% 6% 23% 3% 66% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Experimental checks

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

[1] CairoPlay[slnt,wght].ttf
💥 ERROR Check base characters have non-zero advance width. base_has_width
  • 💥 ERROR

    Failed with AttributeError: 'CheckRunContext' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 222, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/checks/base_has_width.py", line 46, in check_base_has_width
    problems = bullet_list(context, problems)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/utils.py", line 155, in bullet_list
    return f"{indentation}{bullet} " + pretty_print_list(
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/utils.py", line 140, in pretty_print_list
    if config.get("full_lists"):

[code: failed-check]

All other checks

[26] CairoPlay[slnt,wght].ttf
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks. arabic_spacing_symbols
  • 🔥 FAIL

    "dotabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "dotbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "twodotshorizontalabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "twodotshorizontalbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "threedotsupabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "threedotsupbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "threedotsdownabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "threedotsdownbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "twodotsverticalabovear" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "twodotsverticalbelowar" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs. case_mapping
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+1EAB: LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE U+1EAA: LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
U+1EB0: LATIN CAPITAL LETTER A WITH BREVE AND GRAVE U+1EB1: LATIN SMALL LETTER A WITH BREVE AND GRAVE
U+1EC5: LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE U+1EC4: LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
U+1ED7: LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE U+1ED6: LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
[code: missing-case-counterparts]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned uni0654=0@173,97+0 uni0647=0+584
Some mark glyphs were missing: ◌̀, ◌́, ◌̈, ◌̧ ca_Latn (Catalan)
Some mark glyphs were missing: ◌́, ◌̊, ◌̌ cs_Latn (Czech)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈ cy_Latn (Welsh), it_Latn (Italian) and nl_Latn (Dutch)
Some mark glyphs were missing: ◌́, ◌̊ da_Latn (Danish)
Some base glyphs were missing: ẞ de_Latn (German)
Some mark glyphs were missing: ◌̀, ◌́, ◌̈ de_Latn (German)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̃, ◌̈, ◌̧ en_Latn (English) and pt_Latn (Portuguese)
Some mark glyphs were missing: ◌́, ◌̃, ◌̈ es_Latn (Spanish)
Some mark glyphs were missing: ◌̃, ◌̈, ◌̊, ◌̌ fi_Latn (Finnish)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈, ◌̧ fr_Latn (French)
Some mark glyphs were missing: ◌́, ◌̌ hr_Latn (Croatian)
Some mark glyphs were missing: ◌́, ◌̈, ◌̋ hu_Latn (Hungarian)
Some mark glyphs were missing: ◌́, ◌̈, ◌̨ is_Latn (Icelandic)
Some mark glyphs were missing: ◌̄, ◌̇, ◌̌, ◌̨ lt_Latn (Lithuanian)
Some mark glyphs were missing: ◌̄, ◌̌, ◌̧ lv_Latn (Latvian)
Some mark glyphs were missing: ◌̀, ◌̂, ◌̇ mt_Latn (Maltese)
Some mark glyphs were missing: ◌̀, ◌́, ◌̂, ◌̈, ◌̊ nb_Latn (Norwegian Bokmål)
Some base glyphs were missing: ÍJ́, íj́ nl_Latn (Dutch)
Some mark glyphs were missing: ◌́, ◌̇, ◌̨ pl_Latn (Polish)
Some mark glyphs were missing: ◌̂, ◌̆, ◌̦, ◌̧ ro_Latn (Romanian)
Some mark glyphs were missing: ◌́, ◌̂, ◌̈, ◌̌ sk_Latn (Slovak)
Some mark glyphs were missing: ◌̈, ◌̧ sq_Latn (Albanian)
Some mark glyphs were missing: ◌̀, ◌́, ◌̈, ◌̊ sv_Latn (Swedish)
Some mark glyphs were missing: ◌̂, ◌̆, ◌̇, ◌̈, ◌̦, ◌̧ tr_Latn (Turkish)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٗ, ٺ, ٻ, ټ, ٽ ur_Arab (Urdu)
Some auxiliary glyphs were missing: Ŀ, ŀ ca_Latn (Catalan)
Some auxiliary glyphs were missing: ſ de_Latn (German)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǧ, ǧ, Ǩ, ǩ, Ǯ, ǯ, Ȟ, ȟ, ʒ, ẞ fi_Latn (Finnish)
Some auxiliary glyphs were missing: ſ, Ǔ, ǔ, ẞ fr_Latn (French)
Some auxiliary glyphs were missing: ẞ it_Latn (Italian), pl_Latn (Polish) and tr_Latn (Turkish)
Some auxiliary glyphs were missing: İ̀, İ́, İ̃, J̃, J̇̃, L̃, M̃, R̃, i̇̀, i̇́, i̇̃, j̃, j̇̃, l̃, m̃, r̃, Ą́, Ą̃, ą́, ą̃, Ė́, Ė̃, ė́, ė̃, Ę́, Ę̃, ę́, ę̃, Į́, Į̃, Į̇́, Į̇̃, į́, į̃, į̇́, į̇̃, Ū́, Ū̃, ū́, ū̃, Ų́, Ų̃, ų́, ų̃, Ẽ, ẽ lt_Latn (Lithuanian)
Some auxiliary glyphs were missing: Ǎ, ǎ nb_Latn (Norwegian Bokmål)
Some auxiliary glyphs were missing: IJ, ij nl_Latn (Dutch)
[code: warning-language-shaping]
🔥 FAIL Check variable font instances googlefonts/fvar_instances
  • 🔥 FAIL

    fvar instances are incorrect:

  • Add missing instances
Name current expected
ExtraLight Italic N/A wght=200.0, slnt=-11.0
ExtraLight wght=200.0, slnt=0.0 wght=200.0, slnt=0.0
Light Italic N/A wght=300.0, slnt=-11.0
Light wght=300.0, slnt=0.0 wght=300.0, slnt=0.0
Italic N/A wght=400.0, slnt=-11.0
Regular wght=400.0, slnt=0.0 wght=400.0, slnt=0.0
Medium Italic N/A wght=500.0, slnt=-11.0
Medium wght=500.0, slnt=0.0 wght=500.0, slnt=0.0
SemiBold Italic N/A wght=600.0, slnt=-11.0
SemiBold wght=600.0, slnt=0.0 wght=600.0, slnt=0.0
Bold Italic N/A wght=700.0, slnt=-11.0
Bold wght=700.0, slnt=0.0 wght=700.0, slnt=0.0
ExtraBold Italic N/A wght=800.0, slnt=-11.0
ExtraBold wght=800.0, slnt=0.0 wght=800.0, slnt=0.0
Black Italic N/A wght=900.0, slnt=-11.0
Black wght=900.0, slnt=0.0 wght=900.0, slnt=0.0
[code: bad-fvar-instances]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks. opentype/gdef_non_mark_chars
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBD and U+FBBE


    [code: non-mark-chars]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    dcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 0 start point differs in glyph 'uni0686.fina.color1' between location wght=400,slnt=0 and location wght=400,slnt=-11

- Contour 0 in glyph 'uni0686.fina.color1': becomes underweight between wght=400,slnt=0 and wght=400,slnt=-11.

- Contour 1 start point differs in glyph 'uni0686.fina.color1' between location wght=400,slnt=0 and location wght=400,slnt=-11

- Contour 1 in glyph 'uni0686.fina.color1': becomes underweight between wght=400,slnt=0 and wght=400,slnt=-11.

- Contour 2 start point differs in glyph 'uni0686.fina.color1' between location wght=400,slnt=0 and location wght=400,slnt=-11

- Contour 2 in glyph 'uni0686.fina.color1': becomes underweight between wght=400,slnt=0 and wght=400,slnt=-11.

- Contour 0 start point differs in glyph 'uni0686.fina.color1' between location wght=400,slnt=11 and location wght=200,slnt=0

- Contour 0 in glyph 'uni0686.fina.color1': becomes underweight between wght=400,slnt=11 and wght=200,slnt=0.

- Contour 1 start point differs in glyph 'uni0686.fina.color1' between location wght=400,slnt=11 and location wght=200,slnt=0

- Contour 1 in glyph 'uni0686.fina.color1': becomes underweight between wght=400,slnt=11 and wght=200,slnt=0.

- 376 more.

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

[code: interpolation-issues]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* oslash (U+00F8): L<<146.0,-111.0>--<94.0,-92.0>> has the same coordinates as a previous segment.

* oslash (U+00F8): L<<94.0,-92.0>--<380.0,606.0>> has the same coordinates as a previous segment.

* oslash (U+00F8): L<<380.0,606.0>--<432.0,587.0>> has the same coordinates as a previous segment.

* oslash (U+00F8): L<<432.0,587.0>--<146.0,-111.0>> has the same coordinates as a previous segment.

* oslashacute (U+01FF): L<<146.0,-111.0>--<94.0,-92.0>> has the same coordinates as a previous segment.

* oslashacute (U+01FF): L<<94.0,-92.0>--<380.0,606.0>> has the same coordinates as a previous segment.

* oslashacute (U+01FF): L<<380.0,606.0>--<432.0,587.0>> has the same coordinates as a previous segment.

* oslashacute (U+01FF): L<<432.0,587.0>--<146.0,-111.0>> has the same coordinates as a previous segment.

* uniFE8E (U+FE8E): L<<295.0,0.0>--<295.0,71.0>> has the same coordinates as a previous segment.

* uni0627.fina.short: L<<295.0,0.0>--<295.0,71.0>> has the same coordinates as a previous segment.

* 612 more.

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

[code: overlapping-path-segments]
⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- at.cap

- braceleft.cap

- braceright.cap

- bracketleft.cap

- bracketright.cap

- connection_r

- dotcenterar

- eight.pnum

- emdash.cap

- endash.cap

- 20 more.

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

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? valid_glyphnames
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_alefMaksuraar.fina.alt, alefMaksura_noonar.fina.alt.color0, alefMaksura_noonar.fina.alt.color1, noon_yehHamzaabovear.fina.color0, noon_yehHamzaabovear.fina.color1, noon_yehHamzaabovear.fina.color2, seen_yehHamzaabovear.fina.color0, seen_yehHamzaabovear.fina.color1, sheen_yehHamzaabovear.fina.color0, sheen_yehHamzaabovear.fina.color1 and 13 more.

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

[code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? googlefonts/metadata/designer_profiles
  • ⚠️ WARN

    It seems that Accademia di Belle Arti di Urbino is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+0010 : try adding symbols
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: greek, yi, math
  • U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE: try adding vietnamese
  • U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE: try adding vietnamese
  • U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE: try adding vietnamese
  • U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE: try adding vietnamese
  • U+2021 DOUBLE DAGGER: try adding adlam 33 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, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

  • ⚠️ WARN

    Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13]


    [code: http-in-description]

⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/cairoplay


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/cairoplay/CairoPlay[slnt,wght].ttf
Dehinted Size 593.9kb
Hinted Size 593.9kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 3.130;gftools[0.9.24]']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('slnt-wght', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
1 0 4 14 36 9 174 0
0% 0% 2% 6% 15% 4% 73% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[22] Foldit[wght].ttf
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: font copyright string has 'https://www.github.com/sophiadesign/GF-Foldit' and OFL text has 'https://github.com/SophiaDesign/GF-Foldit'

[code: mismatch]
🔥 FAIL METADATA.pb subsets should be alphabetically ordered. googlefonts/metadata/subsets_order
  • 🔥 FAIL

    METADATA.pb subsets are not sorted in alphabetical order: Got ['latin', 'latin-ext', 'vietnamese', 'menu'] and expected ['latin', 'latin-ext', 'menu', 'vietnamese']


    [code: not-sorted]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    dcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 0 start point differs in glyph 'uni1EC9' between location wght=100 and location wght=900

- Contour 0 start point differs in glyph 'uni1EC9.color0' between location wght=100 and location wght=900

- Contour 0 start point differs in glyph 'notequal.color1' between location wght=100 and location wght=900

- Contour 1 start point differs in glyph 'notequal' between location wght=100 and location wght=900

[code: interpolation-issues]

⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 217: plus

Width = 238: less

Width = 296: notequal, equal, divide

Width = 268: greater

Width = 256: multiply

Width = 267: minus

Width = 299: approxequal

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* uni1EB2 (U+1EB2): L<<161.0,926.0>--<179.0,903.0>> has the same coordinates as a previous segment.

* uni1EB2 (U+1EB2): L<<179.0,903.0>--<179.0,902.0>> has the same coordinates as a previous segment.

* uni1EA8 (U+1EA8): L<<129.0,850.0>--<152.0,850.0>> has the same coordinates as a previous segment.

* uni1EA8 (U+1EA8): L<<232.0,900.0>--<250.0,877.0>> has the same coordinates as a previous segment.

* uni1EA8 (U+1EA8): L<<250.0,877.0>--<250.0,876.0>> has the same coordinates as a previous segment.

* uni1EAA (U+1EAA): L<<120.0,832.0>--<150.0,832.0>> has the same coordinates as a previous segment.

* uni1EA2 (U+1EA2): L<<161.0,870.0>--<179.0,847.0>> has the same coordinates as a previous segment.

* uni1EA2 (U+1EA2): L<<179.0,847.0>--<179.0,846.0>> has the same coordinates as a previous segment.

* Aogonek (U+0104): L<<196.0,0.0>--<220.0,0.0>> has the same coordinates as a previous segment.

* Aogonek (U+0104): L<<175.0,-34.0>--<196.0,-34.0>> has the same coordinates as a previous segment.

* 204 more.

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

[code: overlapping-path-segments]
⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- uni004A0301

- uni006A0301

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: tifinagh, cherokee, math, coptic
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+0307 COMBINING DOT ABOVE: try adding one of: tai-le, todhri, tifinagh, old-permic, canadian-aboriginal, malayalam, syriac, duployan, coptic, math, hebrew
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition 25 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: latin, latin-ext, vietnamese, menu

[code: unreachable-subsetting]
⚠️ WARN Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
[code: warning-language-shaping]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i̦̇ i̦̊ i̦̋ ǐ̦ i̦̒ j̦̀ j̦́ j̦̃ j̦̄ j̦̆ j̦̇ j̦̈ j̦̉ j̦̊ j̦̋ ǰ̦ j̦̏ j̦̑ j̦̒ į̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Navajo (Latn, 166,319 speakers), Han (Latn, 6 speakers), Kaska (Latn, 125 speakers), Southern Tutchone (Latn, 65 speakers), Dutch (Latn, 31,709,104 speakers), Northern Tutchone (Latn, 85 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Ekpeye (Latn, 226,000 speakers), Ma’di (Latn, 584,000 speakers), Lugbara (Latn, 2,200,000 speakers), Avokaya (Latn, 100,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Abua (Latn, 25,000 speakers), Igbo (Latn, 27,823,640 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bete-Bendi (Latn, 100,000 speakers), Makaa (Latn, 221,000 speakers), Gulay (Latn, 250,478 speakers), Yala (Latn, 200,000 speakers), Mundani (Latn, 34,000 speakers), Zapotec (Latn, 490,000 speakers), Ebira (Latn, 2,200,000 speakers), Nateni (Latn, 100,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Aghem (Latn, 38,843 speakers), Longto (Latn, 5,000 speakers), South Central Banda (Latn, 244,000 speakers), Southern Kisi (Latn, 360,000 speakers), Basaa (Latn, 332,940 speakers), Koonzime (Latn, 40,000 speakers), Sar (Latn, 500,000 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Dan (Latn, 1,099,244 speakers), Vute (Latn, 21,000 speakers), Kom (Latn, 360,685 speakers), Dii (Latn, 71,000 speakers), Heiltsuk (Latn, 300 speakers), Keliko (Latn, 63,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Cicipu (Latn, 44,000 speakers), Fur (Latn, 1,230,163 speakers), Mfumte (Latn, 79,000 speakers), Ikwere (Latn, 717,000 speakers), Western Krahn (Latn, 97,800 speakers), Belarusian (Cyrl, 10,064,517 speakers), Ejagham (Latn, 120,000 speakers), Mango (Latn, 77,000 speakers), Bafut (Latn, 158,146 speakers), Nzakara (Latn, 50,000 speakers).

[code: soft-dotted]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/foldit


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/foldit/Foldit[wght].ttf
Dehinted Size 508.3kb
Hinted Size 508.3kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.003']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('wght', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 2 13 38 8 177 0
0% 0% 1% 5% 16% 3% 74% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[32] Honk[MORF,SHLN].ttf
🔥 FAIL Axes and named instances fall within correct ranges? opentype/fvar/regular_coords_correct
  • 🔥 FAIL

    "Regular" instance not present.


    [code: no-regular-instance]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. case_mapping
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0124: LATIN CAPITAL LETTER H WITH CIRCUMFLEX U+0125: LATIN SMALL LETTER H WITH CIRCUMFLEX
U+1EBA: LATIN CAPITAL LETTER E WITH HOOK ABOVE U+1EBB: LATIN SMALL LETTER E WITH HOOK ABOVE
U+1EEA: LATIN CAPITAL LETTER U WITH HORN AND GRAVE U+1EEB: LATIN SMALL LETTER U WITH HORN AND GRAVE
U+1EEC: LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE U+1EED: LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
U+1EEE: LATIN CAPITAL LETTER U WITH HORN AND TILDE U+1EEF: LATIN SMALL LETTER U WITH HORN AND TILDE
[code: missing-case-counterparts]
🔥 FAIL Validate defaults on fvar table match registered fallback names in GFAxisRegistry. googlefonts/axisregistry/fvar_axis_defaults
  • 🔥 FAIL

    The defaul value MORF:15.0 is not registered as an axis fallback name on the Google Axis Registry.
    You should consider suggesting the addition of this value to the registry or adopted one of the existing fallback names for this axis:
    [name: "Default"
    value: 0.0
    ]


    [code: not-registered]

  • 🔥 FAIL

    The defaul value SHLN:0.0 is not registered as an axis fallback name on the Google Axis Registry.
    You should consider suggesting the addition of this value to the registry or adopted one of the existing fallback names for this axis:
    [name: "Default"
    value: 50.0
    ]


    [code: not-registered]

🔥 FAIL Validate STAT particle names and values match the fallback names in GFAxisRegistry. googlefonts/STAT/axisregistry
  • 🔥 FAIL

    Axis Value for 'SHLN':'Default' is expected to be '50.0' but this font has 'Default'='0.0'.


    [code: bad-coordinate]
⚠️ WARN Check glyphs in mark glyph class are non-spacing. opentype/gdef_spacing_marks
  • ⚠️ WARN

    The following glyphs seem to be spacing (because they have width > 0 on the hmtx table) so they may be in the GDEF mark glyph class by mistake, or they should have zero width instead:
    invertedbrevecomb (U+0311)


    [code: spacing-mark-glyphs]
⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • ⚠️ WARN

    Lcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

  • ⚠️ WARN

    tcaron is decomposed and therefore could not be checked. Please check manually.


    [code: decomposed-outline]

⚠️ WARN Ensure files are not too large. file_size
  • ⚠️ WARN

    Font file is 3.6Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value gpos_kerning_info
  • ⚠️ WARN

    GPOS table lacks kerning information.


    [code: lacks-kern-info]
⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 6 in glyph 'Comp_i': becomes underweight between MORF=35,SHLN=0 and MORF=39,SHLN=0.

- Contour 7 in glyph 'Comp_i': becomes underweight between MORF=35,SHLN=0 and MORF=39,SHLN=0.

- Contour 6 in glyph 'Comp_i': becomes underweight between MORF=35,SHLN=100 and MORF=39,SHLN=100.

- Contour 7 in glyph 'Comp_i': becomes underweight between MORF=35,SHLN=100 and MORF=39,SHLN=100.

- Contour 0 point 4 in glyph 'uni2199' has a kink between location MORF=24,SHLN=0 and location MORF=30,SHLN=0

- Contour 0 point 12 in glyph 'uni2199' has a kink between location MORF=24,SHLN=0 and location MORF=30,SHLN=0

- Contour 0 point 80 in glyph 'uni2199' has a kink between location MORF=24,SHLN=0 and location MORF=30,SHLN=0

- Contour 0 point 4 in glyph 'uni2199' has a kink between location MORF=24,SHLN=100 and location MORF=30,SHLN=100

- Contour 0 point 12 in glyph 'uni2199' has a kink between location MORF=24,SHLN=100 and location MORF=30,SHLN=100

- Contour 0 point 80 in glyph 'uni2199' has a kink between location MORF=24,SHLN=100 and location MORF=30,SHLN=100

- 1509 more.

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

[code: interpolation-issues]
⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Ensure variable fonts include an avar table. mandatory_avar_table
  • ⚠️ WARN

    This variable font does not have an avar table. Most variable fonts should include an avar table to correctly define axes progression rates.


    [code: missing-avar]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* .notdef: B<<304.0,917.0>-<304.0,917.0>-<304.0,917.0>> has the same coordinates as a previous segment.

* .notdef: B<<304.0,917.0>-<304.0,917.0>-<304.0,917.0>> has the same coordinates as a previous segment.

* .notdef: B<<110.0,723.0>-<110.0,723.0>-<110.0,723.0>> has the same coordinates as a previous segment.

* .notdef: B<<110.0,723.0>-<110.0,723.0>-<110.0,723.0>> has the same coordinates as a previous segment.

* .notdef: B<<118.0,453.0>-<118.0,453.0>-<118.0,453.0>> has the same coordinates as a previous segment.

* .notdef: B<<306.0,265.0>-<306.0,265.0>-<306.0,265.0>> has the same coordinates as a previous segment.

* .notdef: B<<566.0,267.0>-<566.0,267.0>-<566.0,267.0>> has the same coordinates as a previous segment.

* .notdef: B<<566.0,267.0>-<566.0,267.0>-<566.0,267.0>> has the same coordinates as a previous segment.

* .notdef: B<<760.0,461.0>-<760.0,461.0>-<760.0,461.0>> has the same coordinates as a previous segment.

* .notdef: B<<760.0,461.0>-<760.0,461.0>-<760.0,461.0>> has the same coordinates as a previous segment.

* 212791 more.

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

[code: overlapping-path-segments]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- Comp_asterisk

- Comp_dblgravecomb.narrow

- Comp_flag_A

- Comp_flag_B

- Comp_flag_C

- Comp_flag_D

- Comp_flag_E

- Comp_flag_F

- Comp_flag_G

- Comp_flag_H

- 53 more.

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

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? valid_glyphnames
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    Mark_macron_stacked_forDotaccent and Mark_tilde_stacked_forCircumflex


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition
  • U+0311 COMBINING INVERTED BREVE: try adding one of: todhri, coptic
  • U+031B COMBINING HORN: not included in any glyphset definition 20 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: latin, latin-ext, math, menu, symbols, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
[code: warning-language-shaping]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure dotted circle glyph is present and can attach marks. dotted_circle
  • ⚠️ WARN

    No dotted circle glyph present


    [code: missing-dotted-circle]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: i᷆ į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i᷄ i̛᷄ i̛᷆ i̤᷄ i̤᷆ i̦̇ i̦̊ i̦̋ ǐ̦ i̦̒ i̦᷄ i̦᷆ i̧᷄ i̧᷆ i̮᷄ i̮᷆ i̱᷄ i̱᷆ i̵᷄ i̵᷆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Ebira (Latn, 2,200,000 speakers), Northern Tutchone (Latn, 85 speakers), Dutch (Latn, 31,709,104 speakers), Southern Tutchone (Latn, 65 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Ikwere (Latn, 717,000 speakers), Ekpeye (Latn, 226,000 speakers), Abua (Latn, 25,000 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Zapotec (Latn, 490,000 speakers), Lugbara (Latn, 2,200,000 speakers), Mango (Latn, 77,000 speakers), Nateni (Latn, 100,000 speakers), Makaa (Latn, 221,000 speakers), Sar (Latn, 500,000 speakers), Heiltsuk (Latn, 300 speakers), Han (Latn, 6 speakers), South Central Banda (Latn, 244,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Ma’di (Latn, 584,000 speakers), Avokaya (Latn, 100,000 speakers), Nzakara (Latn, 50,000 speakers), Kaska (Latn, 125 speakers), Igbo (Latn, 27,823,640 speakers), Kom (Latn, 360,685 speakers), Western Krahn (Latn, 97,800 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Longto (Latn, 5,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Southern Kisi (Latn, 360,000 speakers), Koonzime (Latn, 40,000 speakers), Ejagham (Latn, 120,000 speakers), Mundani (Latn, 34,000 speakers), Navajo (Latn, 166,319 speakers), Keliko (Latn, 63,000 speakers), Fur (Latn, 1,230,163 speakers), Dan (Latn, 1,099,244 speakers), Bafut (Latn, 158,146 speakers), Aghem (Latn, 38,843 speakers), Teke-Ebo (Latn, 260,000 speakers), Dii (Latn, 71,000 speakers), Yala (Latn, 200,000 speakers), Mfumte (Latn, 79,000 speakers), Belarusian (Cyrl, 10,064,517 speakers), Cicipu (Latn, 44,000 speakers), Basaa (Latn, 332,940 speakers), Vute (Latn, 21,000 speakers), Gulay (Latn, 250,478 speakers).

[code: soft-dotted]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* Comp_asterisk has a counter-clockwise outer contour

* Comp_flag_A has a counter-clockwise outer contour

* Comp_flag_B has a counter-clockwise outer contour

* Comp_flag_C has a counter-clockwise outer contour

* Comp_flag_D has a counter-clockwise outer contour

* Comp_flag_E has a counter-clockwise outer contour

* Comp_flag_F has a counter-clockwise outer contour

* Comp_flag_G has a counter-clockwise outer contour

* Comp_flag_H has a counter-clockwise outer contour

* Comp_flag_I has a counter-clockwise outer contour

* 14 more.

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

[code: ccw-outer-contour]
⚠️ WARN Check font names are correct googlefonts/font_names
  • ⚠️ WARN

    Font has a Morph axis. This check only works on fonts that have a wght axis. Since users can define their own stylenames for Morph families, please manually check that the family works on major platforms. You can use Agu Display as a reference.


    [code: morf-axis]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/honk


    [code: family-path]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com fontdata_namecheck
  • ℹ️ INFO

    The family name "Honk" seems to be already in use.
    Please visit http://namecheck.fontdata.com for more info.


    [code: name-collision]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/honk/Honk[MORF,SHLN].ttf
Dehinted Size 3.6Mb
Hinted Size 3.6Mb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.000']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('MORF-SHLN', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 4 19 40 10 165 0
0% 0% 2% 8% 17% 4% 69% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[15] Kalnia[wdth,wght].ttf
🔥 FAIL Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • 🔥 FAIL

    Image is too large: 2400 x 1350 pixels

Max resolution allowed: 2048 x 1024 pixels

[code: image-too-large]
  • 🔥 FAIL

    Image is too large: 2400 x 1158 pixels

Max resolution allowed: 2048 x 1024 pixels

[code: image-too-large]
  • 🔥 FAIL

    Image is too large: 2400 x 1350 pixels

Max resolution allowed: 2048 x 1024 pixels

[code: image-too-large]
  • 🔥 FAIL

    Image is too large: 2400 x 1350 pixels

Max resolution allowed: 2048 x 1024 pixels

[code: image-too-large]
  • ⚠️ WARN

    Article page is too short!


    [code: length-requirements-not-met]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to uni0237 nl_Latn (Dutch)
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ŧ, ŧ, Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: Ŧ, ŧ nb_Latn (Norwegian Bokmål)
[code: warning-language-shaping]
⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour 1 in glyph 'X': becomes underweight between wght=100,wdth=125 and wght=700,wdth=100.

- Contour 2 in glyph 'X': becomes underweight between wght=100,wdth=125 and wght=700,wdth=100.

- Contour 0 in glyph 'AE': becomes underweight between wght=100,wdth=125 and wght=700,wdth=100.

[code: interpolation-issues]

⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+0328 COMBINING OGONEK: not included in any glyphset definition
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
  • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition

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

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

+ \n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̦ ĭ̦ i̦̇ i̦̊ i̦̋ ǐ̦ i̦̒ j̦̀ j̦́ ĵ̦ j̦̃ j̦̄ j̦̆ j̦̇ j̦̈ j̦̊ j̦̋ ǰ̦ j̦̒ į̦̀

Your font fully covers the following languages that require the soft-dotted feature: Kaska (Latn, 125 speakers), Northern Tutchone (Latn, 85 speakers), Han (Latn, 6 speakers), Lithuanian (Latn, 2,357,094 speakers), Southern Tutchone (Latn, 65 speakers), Navajo (Latn, 166,319 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Heiltsuk (Latn, 300 speakers), Kom (Latn, 360,685 speakers), Mundani (Latn, 34,000 speakers), Cicipu (Latn, 44,000 speakers), Ejagham (Latn, 120,000 speakers), Igbo (Latn, 27,823,640 speakers), Yala (Latn, 200,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Basaa (Latn, 332,940 speakers), South Central Banda (Latn, 244,000 speakers), Southern Kisi (Latn, 360,000 speakers), Belarusian (Cyrl, 10,064,517 speakers), Ebira (Latn, 2,200,000 speakers), Fur (Latn, 1,230,163 speakers), Sar (Latn, 500,000 speakers), Nzakara (Latn, 50,000 speakers), Ekpeye (Latn, 226,000 speakers), Vute (Latn, 21,000 speakers), Abua (Latn, 25,000 speakers), Longto (Latn, 5,000 speakers), Dan (Latn, 1,099,244 speakers), Nateni (Latn, 100,000 speakers), Koonzime (Latn, 40,000 speakers), Keliko (Latn, 63,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Dutch (Latn, 31,709,104 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Gulay (Latn, 250,478 speakers), Makaa (Latn, 221,000 speakers), Dii (Latn, 71,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Zapotec (Latn, 490,000 speakers), Mango (Latn, 77,000 speakers), Ikwere (Latn, 717,000 speakers), Avokaya (Latn, 100,000 speakers), Ma’di (Latn, 584,000 speakers), Western Krahn (Latn, 97,800 speakers), Ngbaka (Latn, 1,020,000 speakers), Mfumte (Latn, 79,000 speakers), Aghem (Latn, 38,843 speakers), Bafut (Latn, 158,146 speakers), Lugbara (Latn, 2,200,000 speakers).

[code: soft-dotted]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx


    [code: unknown]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/kalnia


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/kalnia/Kalnia[wdth,wght].ttf
Dehinted Size 113.7kb
Hinted Size 113.7kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ℹ️ INFO

    Latn


    [code: dlng-tag]

  • ℹ️ INFO

    Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.105']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('wght-wdth', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 2 6 42 8 180 0
0% 0% 1% 3% 18% 3% 76% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[24] Nabla[EDPT,EHLT].ttf
🔥 FAIL Axes and named instances fall within correct ranges? opentype/fvar/regular_coords_correct
  • 🔥 FAIL

    "Regular" instance not present.


    [code: no-regular-instance]
🔥 FAIL METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • 🔥 FAIL

    Please change minisite_url

From 'https://nabla.typearture.com/'

To: 'https://nabla.typearture.com'

[code: trailing-clutter]
🔥 FAIL Ensure font has the expected color font tables. googlefonts/colorfont_tables
  • 🔥 FAIL

    This is a variable font and SVG does not support OpenType Variations.
    Please remove the SVG table from this font.


    [code: variable-svg]
🔥 FAIL Validate STAT particle names and values match the fallback names in GFAxisRegistry. googlefonts/STAT/axisregistry
  • 🔥 FAIL

    On the font variation axis 'EDPT', the name 'Shallow' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EDPT', the name 'Regular' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EDPT', the name 'Deep' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EHLT', the name 'No Highlight' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EHLT', the name 'Highlight' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

  • 🔥 FAIL

    On the font variation axis 'EHLT', the name 'Max Highlight' is not among the expected ones (Default) according to the Google Fonts Axis Registry.


    [code: invalid-name]

⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Ensure files are not too large. file_size
  • ⚠️ WARN

    Font file is 1.6Mb; ideally it should be less than 1.0Mb


    [code: large-font]
⚠️ WARN Detect any interpolation issues in the font. interpolation_issues
  • ⚠️ WARN

    Interpolation issues were found in the font:

- Contour order differs in glyph 'quoteleft': [0, 1, 2] in EDPT=0,EHLT=12, [2, 1, 0] in EDPT=200,EHLT=12.

- Contour order differs in glyph 'uni0312': [0, 1, 2] in EDPT=0,EHLT=12, [2, 1, 0] in EDPT=200,EHLT=12.

- Contour 0 start point differs in glyph 'glyph01768' between location EDPT=0,EHLT=12 and location EDPT=200,EHLT=12

- Contour order differs in glyph 'quoteright': [0, 1, 2] in EDPT=0,EHLT=12, [2, 1, 0] in EDPT=200,EHLT=12.

- Contour 0 start point differs in glyph 'glyph02937' between location EDPT=0,EHLT=12 and location EDPT=200,EHLT=12

[code: interpolation-issues]

⚠️ WARN Ensure variable fonts include an avar table. mandatory_avar_table
  • ⚠️ WARN

    This variable font does not have an avar table. Most variable fonts should include an avar table to correctly define axes progression rates.


    [code: missing-avar]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 516: lessequal, greaterequal, less, greater

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* .notdef: L<<476.0,250.0>--<476.0,150.0>> has the same coordinates as a previous segment.

* .notdef: L<<390.0,200.0>--<390.0,300.0>> has the same coordinates as a previous segment.

* .notdef: L<<563.0,300.0>--<476.0,250.0>> has the same coordinates as a previous segment.

* .notdef: L<<476.0,250.0>--<390.0,300.0>> has the same coordinates as a previous segment.

* .notdef: L<<390.0,300.0>--<476.0,350.0>> has the same coordinates as a previous segment.

* .notdef: L<<563.0,500.0>--<476.0,450.0>> has the same coordinates as a previous segment.

* .notdef: L<<390.0,500.0>--<476.0,550.0>> has the same coordinates as a previous segment.

* .notdef: L<<390.0,200.0>--<303.0,150.0>> has the same coordinates as a previous segment.

* .notdef: L<<217.0,200.0>--<303.0,250.0>> has the same coordinates as a previous segment.

* .notdef: L<<303.0,150.0>--<303.0,50.0>> has the same coordinates as a previous segment.

* 5204 more.

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

[code: overlapping-path-segments]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? googlefonts/metadata/designer_profiles
  • ⚠️ WARN

    It seems that Just van Rossum is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry.


    [code: profile-not-found]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0328 COMBINING OGONEK: not included in any glyphset definition
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam

Or you can add the above codepoints to one of the subsets supported by the font: cyrillic-ext, latin, latin-ext, math, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: Ŀ, ŀ ca_Latn (Catalan)
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ŧ, ŧ, Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: Ŧ, ŧ nb_Latn (Norwegian Bokmål)
[code: warning-language-shaping]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph00420 has a counter-clockwise outer contour

* glyph00420 has a counter-clockwise outer contour

* glyph00426 has a counter-clockwise outer contour

* glyph00434 has a counter-clockwise outer contour

* glyph00434 has a counter-clockwise outer contour

* glyph00434 has a counter-clockwise outer contour

* glyph00442 has a counter-clockwise outer contour

* glyph00442 has a counter-clockwise outer contour

* glyph00442 has a counter-clockwise outer contour

* glyph00442 has a counter-clockwise outer contour

* 1181 more.

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

[code: ccw-outer-contour]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/nabla


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/nabla/Nabla[EDPT,EHLT].ttf
Dehinted Size 1.6Mb
Hinted Size 1.6Mb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.003']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('EDPT-EHLT', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 4 13 46 8 167 0
0% 0% 2% 5% 19% 3% 70% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[38] NotoColorEmoji-Regular.ttf
🔥 FAIL Checking correctness of monospaced metadata. opentype/monospace
🔥 FAIL Check if each glyph has the recommended amount of contours. contour_count
  • 🔥 FAIL

    The following glyphs have no contours even though they were expected to have some:

- Glyph name: numbersign	Expected: 2

- Glyph name: asterisk	Expected: 1 or 4

- Glyph name: zero	Expected: 2 or 3

- Glyph name: one	Expected: 1

- Glyph name: two	Expected: 1

- Glyph name: three	Expected: 1

- Glyph name: four	Expected: 1 or 2

- Glyph name: five	Expected: 1

- Glyph name: six	Expected: 1 or 2

- Glyph name: seven	Expected: 1

- 44 more.

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

[code: no-contour]
🔥 FAIL Ensure files are not too large. file_size
  • 🔥 FAIL

    Font file is 23.1Mb, larger than limit 9.0Mb


    [code: massive-font]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions. smart_dropout
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Font contains glyphs for whitespace characters? whitespace_glyphs
  • 🔥 FAIL

    Whitespace glyph missing for codepoint 0x00A0.


    [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls
  • 🔥 FAIL

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL METADATA.pb font.filename and font.post_script_name fields have equivalent values? googlefonts/metadata/match_filename_postscript
  • 🔥 FAIL

    METADATA.pb font filename = "NotoColorEmoji-Regular.ttf" does not match post_script_name="NotoColorEmoji".


    [code: mismatch]
🔥 FAIL METADATA.pb weight matches postScriptName for static fonts. googlefonts/metadata/match_weight_postscript
  • 🔥 FAIL

    METADATA.pb: Mismatch between postScriptName ("NotoColorEmoji") and weight value (400). The name must be ended with "Regular" or "Italic".

🔥 FAIL METADATA.pb should contain at least "menu" and "latin" subsets. googlefonts/metadata/menu_and_latin
  • 🔥 FAIL

    Subsets "menu" and "latin" are mandatory, but METADATA.pb is missing "latin".


    [code: missing]
🔥 FAIL METADATA.pb subsets should be alphabetically ordered. googlefonts/metadata/subsets_order
  • 🔥 FAIL

    METADATA.pb subsets are not sorted in alphabetical order: Got ['menu', 'emoji'] and expected ['emoji', 'menu']


    [code: not-sorted]
🔥 FAIL Check for METADATA subsets with zero support. googlefonts/metadata/unsupported_subsets
  • 🔥 FAIL

    Please remove the unrecognized subset 'emoji' from the METADATA.pb file.


    [code: unknown-subset]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • 🔥 FAIL

    This is a Noto font but it lacks an ARTICLE.en_us.html file.


    [code: missing-article]
🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2022 Google Inc."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2021 Google Inc. All Rights Reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    Copyright notices differ between name table entries and METADATA.pb.The following copyright values were found:

- Copyright 2022 Google Inc.: Name Table entry

- Copyright 2021 Google Inc. All Rights Reserved.: METADATA.pb

[code: mismatch]

🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright 2021 google inc. all rights reserved."

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check copyright namerecords match license file. googlefonts/name/license
  • 🔥 FAIL

    License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. This Font Software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the SIL Open Font License for the specific language, permissions and limitations governing your use of this Font Software." Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org"


    [code: wrong]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Noto Color Emoji Noto Color Emoji
Subfamily Name Regular Regular
Full Name Noto Color Emoji Noto Color Emoji Regular
Postscript Name NotoColorEmoji NotoColorEmoji-Regular
[code: bad-names]
  • ⚠️ WARN

    Regular missing from full name


    [code: lacks-regular]
🔥 FAIL Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • 🔥 FAIL

    Font is missing the 'gasp' table. Try exporting the font with autohinting enabled.
    If you are dealing with an unhinted font, it can be fixed by running the fonts through the command 'gftools fix-nonhinting'
    GFTools is available at https://pypi.org/project/gftools/


    [code: lacks-gasp]
🔥 FAIL Check Google Fonts glyph coverage. googlefonts/glyph_coverage
  • 🔥 FAIL

    Missing required codepoints:

- 0x0021 (EXCLAMATION MARK)


- 0x0022 (QUOTATION MARK)


- 0x0024 (DOLLAR SIGN)


- 0x0025 (PERCENT SIGN)


- 0x0026 (AMPERSAND)


- 0x0027 (APOSTROPHE)


- 0x0028 (LEFT PARENTHESIS)


- 0x0029 (RIGHT PARENTHESIS)


- 0x002B (PLUS SIGN)


- 0x002C (COMMA)


- 293 more.

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

[code: missing-codepoints]
🔥 FAIL Ensure font can render its own name. googlefonts/render_own_name
  • 🔥 FAIL

    .notdef glyphs were found when attempting to render Noto Color Emoji


    [code: render-own-name]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Any CJK font should contain at least a minimal set of 150 CJK characters. cjk_not_enough_glyphs
  • ⚠️ WARN

    There are only 2 CJK glyphs when there needs to be at least 150 in order to support the smallest CJK writing system, Kana.
    The following CJK glyphs were found:
    ['uni3297', 'uni3299']
    Please check that these glyphs have the correct unicodes.


    [code: cjk-not-enough-glyphs]
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value gpos_kerning_info
  • ⚠️ WARN

    GPOS table lacks kerning information.


    [code: lacks-kern-info]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* glyph03862: B<<837.0,208.0>-<837.0,208.0>-<837.0,208.0>> has the same coordinates as a previous segment.

* glyph03862: B<<854.0,262.0>-<854.0,262.0>-<854.0,262.0>> has the same coordinates as a previous segment.

* glyph03862: B<<870.0,419.0>-<870.0,419.0>-<870.0,419.0>> has the same coordinates as a previous segment.

* glyph03862: B<<887.0,473.0>-<887.0,473.0>-<887.0,473.0>> has the same coordinates as a previous segment.

* glyph03862: B<<439.0,489.0>-<439.0,489.0>-<439.0,489.0>> has the same coordinates as a previous segment.

* glyph03862: B<<422.0,435.0>-<422.0,435.0>-<422.0,435.0>> has the same coordinates as a previous segment.

* glyph03862: B<<405.0,278.0>-<405.0,278.0>-<405.0,278.0>> has the same coordinates as a previous segment.

* glyph03862: B<<388.0,224.0>-<388.0,224.0>-<388.0,224.0>> has the same coordinates as a previous segment.

* glyph03864: B<<483.0,34.0>-<483.0,34.0>-<483.0,34.0>> has the same coordinates as a previous segment.

* glyph03864: B<<945.0,362.0>-<945.0,362.0>-<945.0,362.0>> has the same coordinates as a previous segment.

* 35629 more.

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

[code: overlapping-path-segments]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN METADATA.pb: Check for primary_script googlefonts/metadata/primary_script
  • ⚠️ WARN

    METADATA.pb: primary_script field should be 'Hani' but is missing.
    Make sure that 'Hani' is actually the correct one (out of Jpan, Hani, Hant, Hans).


    [code: missing-primary-script]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+200D ZERO WIDTH JOINER: try adding one of: meetei-mayek, devanagari, hebrew, batak, manichaean, javanese, tagalog, tibetan, lepcha, nko, rejang, avestan, balinese, saurashtra, tamil, hanifi-rohingya, telugu, tifinagh, gunjala-gondi, grantha, zanabazar-square, siddham, sogdian, kayah-li, tai-tham, buginese, duployan, thai, yi, cham, khudawadi, old-hungarian, brahmi, masaram-gondi, tagbanwa, modi, arabic, sharada, sinhala, malayalam, hanunoo, lao, mongolian, sundanese, tirhuta, gurmukhi, chakma, limbu, psalter-pahlavi, mahajani, dogra, buhid, new-tai-lue, takri, gujarati, bhaiksuki, kharoshthi, phags-pa, syloti-nagri, thaana, warang-citi, kaithi, pahawh-hmong, newa, khmer, khojki, myanmar, oriya, bengali, syriac, tai-viet, mandaic, kannada, tai-le
  • U+203C DOUBLE EXCLAMATION MARK: try adding math
  • U+2049 EXCLAMATION QUESTION MARK: try adding mongolian
  • U+20E3 COMBINING ENCLOSING KEYCAP: try adding symbols
  • U+2139 INFORMATION SOURCE: try adding math
  • U+2194 LEFT RIGHT ARROW: try adding one of: math, symbols
  • U+2195 UP DOWN ARROW: try adding one of: math, symbols
  • U+2196 NORTH WEST ARROW: try adding one of: math, symbols
  • U+2197 NORTH EAST ARROW: try adding one of: math, symbols
  • U+2198 SOUTH EAST ARROW: try adding one of: math, symbols 1466 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: menu, emoji

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- \n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- -----------------------------------------------------------\n

+ ---------------------------------------------------------------------------\n

- The goals of the Open Font License (OFL) are to stimulate worldwide\n

- development of collaborative font projects, to support the font creation\n

- efforts of academic and linguistic communities, and to provide a free and\n

- open framework in which fonts may be shared and improved in partnership\n

- with others.\n

+ The goals of the Open Font License (OFL) are to stimulate worldwide development\n

+ of collaborative font projects, to support the font creation efforts of academic\n

+ and linguistic communities, and to provide a free and open framework in which\n

+ fonts may be shared and improved in partnership with others.\n

+ \n

- The OFL allows the licensed fonts to be used, studied, modified and\n

+ The OFL allows the licensed fonts to be used, studied, modified and redistributed\n

- redistributed freely as long as they are not sold by themselves. The\n

+ freely as long as they are not sold by themselves. The fonts, including any\n

+ derivative works, can be bundled, embedded, redistributed and/or sold with any\n

+ software provided that any reserved names are not used by derivative works. The\n

- fonts, including any derivative works, can be bundled, embedded,\n

- redistributed and/or sold with any software provided that any reserved\n

- names are not used by derivative works. The fonts and derivatives,\n

- however, cannot be released under any other type of license. The\n

+ fonts and derivatives, however, cannot be released under any other type of license.\n

- requirement for fonts to remain under this license does not apply\n

+ The requirement for fonts to remain under this license does not apply to any\n

- to any document created using the fonts or their derivatives.\n

+ document created using the fonts or their derivatives.\n

- "Font Software" refers to the set of files released by the Copyright\n

- Holder(s) under this license and clearly marked as such. This may\n

- include source files, build scripts and documentation.\n

+ "Font Software" refers to the set of files released by the Copyright Holder(s) under\n

+ this license and clearly marked as such. This may include source files, build\n

+ scripts and documentation.\n

+ \n

- "Reserved Font Name" refers to any names specified as such after the\n

+ "Reserved Font Name" refers to any names specified as such after the copyright\n

- copyright statement(s).\n

+ statement(s).\n

- "Modified Version" refers to any derivative made by adding to, deleting,\n

+ "Modified Version" refers to any derivative made by adding to, deleting, or\n

- or substituting -- in part or in whole -- any of the components of the\n

+ substituting -- in part or in whole -- any of the components of the Original Version,\n

- Original Version, by changing formats or by porting the Font Software to a\n

+ by changing formats or by porting the Font Software to a new environment.\n

- new environment.\n

- "Author" refers to any designer, engineer, programmer, technical\n

+ "Author" refers to any designer, engineer, programmer, technical writer or other\n

- writer or other person who contributed to the Font Software.\n

+ person who contributed to the Font Software.\n

- Permission is hereby granted, free of charge, to any person obtaining\n

- a copy of the Font Software, to use, study, copy, merge, embed, modify,\n

- redistribute, and sell modified and unmodified copies of the Font\n

- Software, subject to the following conditions:\n

- 1) Neither the Font Software nor any of its individual components,\n

- in Original or Modified Versions, may be sold by itself.\n

+ Permission is hereby granted, free of charge, to any person obtaining a copy of the\n

+ Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell\n

+ modified and unmodified copies of the Font Software, subject to the following\n

+ conditions:\n

+ 1) Neither the Font Software nor any of its individual components, in Original or\n

+ Modified Versions, may be sold by itself.\n

- 2) Original or Modified Versions of the Font Software may be bundled,\n

- redistributed and/or sold with any software, provided that each copy\n

- contains the above copyright notice and this license. These can be\n

- included either as stand-alone text files, human-readable headers or\n

- in the appropriate machine-readable metadata fields within text or\n

- binary files as long as those fields can be easily viewed by the user.\n

- 3) No Modified Version of the Font Software may use the Reserved Font\n

- Name(s) unless explicit written permission is granted by the corresponding\n

- Copyright Holder. This restriction only applies to the primary font name as\n

- presented to the users.\n

+ 2) Original or Modified Versions of the Font Software may be bundled, redistributed\n

+ and/or sold with any software, provided that each copy contains the above copyright\n

+ notice and this license. These can be included either as stand-alone text files,\n

+ human-readable headers or in the appropriate machine-readable metadata fields within\n

+ text or binary files as long as those fields can be easily viewed by the user.\n

+ 3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless\n

+ explicit written permission is granted by the corresponding Copyright Holder. This\n

+ restriction only applies to the primary font name as presented to the users.\n

- 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font\n

- Software shall not be used to promote, endorse or advertise any\n

- Modified Version, except to acknowledge the contribution(s) of the\n

- Copyright Holder(s) and the Author(s) or with their explicit written\n

- permission.\n

+ 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall\n

+ not be used to promote, endorse or advertise any Modified Version, except to\n

+ acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with\n

+ their explicit written permission.\n

+ \n

- 5) The Font Software, modified or unmodified, in part or in whole,\n

+ 5) The Font Software, modified or unmodified, in part or in whole, must be distributed\n

+ entirely under this license, and must not be distributed under any other license. The\n

- must be distributed entirely under this license, and must not be\n

- distributed under any other license. The requirement for fonts to\n

- remain under this license does not apply to any document created\n

+ requirement for fonts to remain under this license does not apply to any document\n

- using the Font Software.\n

+ created using the Font Software.\n

+ \n

- This license becomes null and void if any of the above conditions are\n

+ This license becomes null and void if any of the above conditions are not met.\n

- not met.\n

+ \n

- THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n

+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n

+ INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n

+ PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER\n

+ RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n

- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF\n

- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT\n

- OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE\n

- COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\n

- INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\n

+ LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,\n

- DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n

+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR\n

+ INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.

- FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM\n

- OTHER DEALINGS IN THE FONT SOFTWARE.

[code: incorrect-ofl-body-text]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph03858 has a counter-clockwise outer contour

* glyph03862 has a counter-clockwise outer contour

* glyph03863 has a counter-clockwise outer contour

* glyph03864 has a counter-clockwise outer contour

* glyph03865 has a counter-clockwise outer contour

* glyph03866 has a counter-clockwise outer contour

* glyph03867 has a counter-clockwise outer contour

* glyph03868 has a counter-clockwise outer contour

* glyph03869 has a counter-clockwise outer contour

* glyph03870 has a counter-clockwise outer contour

* 20960 more.

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

[code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* glyph03944: B<<817.0,291.0>-<813.0,267.0>-<812.0,255.0>>/B<<812.0,255.0>-<807.0,288.0>-<797.0,334.0>> = 13.379289874890267

* glyph03944: B<<893.0,390.0>-<898.0,415.0>-<899.0,426.0>>/B<<899.0,426.0>-<900.0,416.0>-<906.0,390.0>> = 10.905022045234459

* glyph03993: L<<865.0,744.0>--<822.0,743.0>>/L<<822.0,743.0>--<822.0,743.0>> = 1.3322198538696923

* glyph04031: L<<476.0,278.0>--<968.0,-63.0>>/L<<968.0,-63.0>--<341.0,496.0>> = 6.993085115661098

* glyph04031: L<<968.0,-63.0>--<341.0,496.0>>/B<<341.0,496.0>-<384.0,438.0>-<414.5,388.5>> = 11.729021419722553

* glyph04032: L<<657.0,863.0>--<1116.0,-37.0>>/L<<1116.0,-37.0>--<610.0,728.0>> = 6.460579573606472

* glyph04248: B<<895.0,778.0>-<880.0,786.0>-<879.0,787.0>>/L<<879.0,787.0>--<903.0,758.0>> = 5.389311759973421

* glyph04249: L<<376.0,758.0>--<397.0,782.0>>/B<<397.0,782.0>-<396.0,781.0>-<369.0,768.0>> = 3.8140748342903783

* glyph04294: B<<1147.5,475.0>-<1131.0,548.0>-<1098.0,612.0>>/B<<1098.0,612.0>-<1122.0,555.0>-<1133.5,494.0>> = 4.443109205196117

* glyph04300: L<<280.0,144.0>--<280.0,144.0>>/L<<280.0,144.0>--<47.0,192.0>> = 11.640572213911739

* 3039 more.

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

[code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* glyph03897: L<<561.0,583.0>--<562.0,388.0>>

* glyph03910: L<<1055.0,-167.0>--<1058.0,852.0>>

* glyph03910: L<<284.0,-222.0>--<996.0,-226.0>>

* glyph03911: L<<1031.0,-139.0>--<1036.0,850.0>>

* glyph03911: L<<224.0,853.0>--<225.0,-164.0>>

* glyph03911: L<<991.0,909.0>--<282.0,912.0>>

* glyph03914: L<<724.0,416.0>--<571.0,415.0>>

* glyph03989: L<<713.0,401.0>--<926.0,402.0>>

* glyph04010: L<<1203.0,760.0>--<1201.0,367.0>>

* glyph04011: L<<1202.0,22.0>--<1201.0,390.0>>

* 633 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

    OS/2 VendorID value 'NONE' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx


    [code: unknown]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/notocoloremoji


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/notocoloremoji/NotoColorEmoji-Regular.ttf
Dehinted Size 23.1Mb
Hinted Size 23.1Mb
Increase -24 bytes
Change -0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- GSUB

- vhea

- vmtx

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 2.047;GOOG;noto-emoji:20240827:6c211821b8442ab3683a502f9a79b2034293fced']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 20 13 66 6 133 0
0% 0% 8% 5% 28% 3% 56% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Experimental checks

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

[1] NotoZnamennyMusicalNotation-Regular.ttf
💥 ERROR Check base characters have non-zero advance width. base_has_width
  • 💥 ERROR

    Failed with AttributeError: 'CheckRunContext' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 222, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/checks/base_has_width.py", line 46, in check_base_has_width
    problems = bullet_list(context, problems)
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/utils.py", line 155, in bullet_list
    return f"{indentation}{bullet} " + pretty_print_list(
  File "/opt/hostedtoolcache/Python/3.10.16/x64/lib/python3.10/site-packages/fontbakery/utils.py", line 140, in pretty_print_list
    if config.get("full_lists"):

[code: failed-check]

All other checks

[17] NotoZnamennyMusicalNotation-Regular.ttf
⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ 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: aogonek	Contours detected: 3	Expected: 2
  • Glyph name: uogonek Contours detected: 2 Expected: 1

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

  • Glyph name: aogonek Contours detected: 3 Expected: 2

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

  • Glyph name: uogonek Contours detected: 2 Expected: 1


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 322: minus

[code: width-outliers]
⚠️ WARN Combined length of family and style must not exceed 32 characters. name/family_and_style_max_length
  • ⚠️ WARN

    Name ID 6 'NotoZnamennyMusicalNotation-Regular' exceeds 27 characters. This has been found to cause problems with PostScript printers, especially on Mac platforms.


    [code: nameid6-too-long]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- u1CF24.alt

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

    Article page is too short!


    [code: length-requirements-not-met]

  • ⚠️ WARN

    Article page lacks visual assets.


    [code: missing-visual-asset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0328 COMBINING OGONEK: not included in any glyphset definition

Or you can add the above codepoints to one of the subsets supported by the font: latin, latin-ext, math, menu, symbols, znamenny

[code: unreachable-subsetting]
⚠️ WARN Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • ⚠️ WARN

    GF_TransLatin_Arabic glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: Ŀ, ŀ ca_Latn (Catalan)
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ŧ, ŧ, Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: Ŧ, ŧ nb_Latn (Norwegian Bokmål)
Some auxiliary glyphs were missing: IJ, ij nl_Latn (Dutch)
[code: warning-language-shaping]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: į̀ į́ į̂ į̃ į̄ į̌

The dot of soft dotted characters should disappear in other cases, for example: į̆ į̇ į̈ į̊ į̋ į̒ į̦̀ į̦́ į̦̂ į̦̃ į̦̄ į̦̆ į̦̇ į̦̈ į̦̊ į̦̋ į̦̌ į̦̒ į̧̀ į̧́

Your font fully covers the following languages that require the soft-dotted feature: Southern Tutchone (Latn, 65 speakers), Northern Tutchone (Latn, 85 speakers), Dutch (Latn, 31,709,104 speakers), Lithuanian (Latn, 2,357,094 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Nateni (Latn, 100,000 speakers), Aghem (Latn, 38,843 speakers), Bete-Bendi (Latn, 100,000 speakers), Dii (Latn, 71,000 speakers), Yala (Latn, 200,000 speakers), Sar (Latn, 500,000 speakers), Longto (Latn, 5,000 speakers), Ikwere (Latn, 717,000 speakers), Nzakara (Latn, 50,000 speakers), Ma’di (Latn, 584,000 speakers), Bafut (Latn, 158,146 speakers), Igbo (Latn, 27,823,640 speakers), South Central Banda (Latn, 244,000 speakers), Dan (Latn, 1,099,244 speakers), Keliko (Latn, 63,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Navajo (Latn, 166,319 speakers), Han (Latn, 6 speakers), Ekpeye (Latn, 226,000 speakers), Makaa (Latn, 221,000 speakers), Abua (Latn, 25,000 speakers), Ebira (Latn, 2,200,000 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Mundani (Latn, 34,000 speakers), Western Krahn (Latn, 97,800 speakers), Kom (Latn, 360,685 speakers), Belarusian (Cyrl, 10,064,517 speakers), Teke-Ebo (Latn, 260,000 speakers), Zapotec (Latn, 490,000 speakers), Basaa (Latn, 332,940 speakers), Ejagham (Latn, 120,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Vute (Latn, 21,000 speakers), Kaska (Latn, 125 speakers), Cicipu (Latn, 44,000 speakers), Fur (Latn, 1,230,163 speakers), Mfumte (Latn, 79,000 speakers), Koonzime (Latn, 40,000 speakers), Gulay (Latn, 250,478 speakers), Heiltsuk (Latn, 300 speakers), Mango (Latn, 77,000 speakers), Southern Kisi (Latn, 360,000 speakers), Lugbara (Latn, 2,200,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers).

[code: soft-dotted]
⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* u1CF55 (U+1CF55): B<<92.0,329.5>-<106.0,325.0>-<123.0,312.0>>/B<<123.0,312.0>-<106.0,330.0>-<86.0,353.0>> = 9.231220410208147

* u1CF5A (U+1CF5A): B<<92.0,329.5>-<106.0,325.0>-<123.0,312.0>>/B<<123.0,312.0>-<106.0,330.0>-<86.0,353.0>> = 9.231220410208147

[code: found-jaggy-segments]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/notoznamennymusicalnotation


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/notoznamennymusicalnotation/NotoZnamennyMusicalNotation-Regular.ttf
Dehinted Size 79.0kb
Hinted Size 101.6kb
Increase 22.6kb
Change 28.6 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
1 0 0 12 55 6 164 0
0% 0% 0% 5% 23% 3% 69% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[30] ReemKufiFun[wght].ttf
🔥 FAIL Validates subfamilyNameID and postScriptNameID for the default instance record opentype/varfont/valid_default_instance_nameids
  • 🔥 FAIL

    'Regular' instance has the same coordinates as the default instance; its postscript name should be 'ReemKufiFun', instead of 'ReemKufiFun-Regular'.


    [code: invalid-default-instance-postscript-name]
🔥 FAIL Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • 🔥 FAIL

    Lcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
  • 🔥 FAIL

    dcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
  • 🔥 FAIL

    lcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. case_mapping
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+01D3: LATIN CAPITAL LETTER U WITH CARON U+01D4: LATIN SMALL LETTER U WITH CARON
U+01F3: LATIN SMALL LETTER DZ U+01F1: LATIN CAPITAL LETTER DZ
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions. smart_dropout
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Glyph names are all valid? valid_glyphnames
  • 🔥 FAIL

    The following glyph names do not comply with naming conventions: ae-ar, ain-ar, ain-ar.fina, ain-ar.fina.1, ain-ar.init, ain-ar.medi, ain-ar.medi.1, ainThreedots-ar, alef-ar, alef-ar.1 and 219 more.

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

A glyph name must be entirely comprised of characters from the following set: A-Z a-z 0-9 .(period) (underscore). A glyph name must not start with a digit or period. There are a few exceptions such as the special glyph ".notdef". The glyph names "twocents", "a1", and "" are all valid, while "2cents" and ".twocents" are not.

[code: found-invalid-names]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/reem-kufi'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'ءٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ءٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ؤٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ؤٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ئٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to space ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ئٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍بٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'بٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ةٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ةٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍تٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'تٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ثٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ثٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍جٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍جٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to space ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'جٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'جٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍حٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍حٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'حٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'حٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍خٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍خٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'خٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'خٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍دٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'دٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ذٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ذٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍رٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'رٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍زٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'زٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍سٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍سٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'سٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'سٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍شٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍شٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'شٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'شٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍صٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍صٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'صٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'صٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍ضٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ضٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'ضٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ضٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍طٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍طٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'طٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'طٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍ظٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ظٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'ظٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ظٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍عٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍عٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'عٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'عٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍غٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍غٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'غٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'غٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍فٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍فٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'فٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'فٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍قٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍قٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'قٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'قٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍كٔ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍كٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'كٔ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'كٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍لٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍لٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'لٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'لٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍مٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍مٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'مٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'مٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍نٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'نٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍هٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'هٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍وٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'وٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍ىٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'ىٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text '‍يٕ' ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to the base glyph when shaping the text 'يٕ' ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to kashida-ar ar_Arab (Arabic)
Shaper didn't attach hamzabelow-ar to kashida-ar ar_Arab (Arabic)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍چٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'چٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍کٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'کٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text '‍گٔ' fa_Arab (Persian)
Shaper didn't attach hamzaabove-ar to the base glyph when shaping the text 'گٔ' fa_Arab (Persian)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned hamzaabove-ar=0@170,550+0 heh-ar.isol=0+499
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٗ, ٘, ٻ, ټ, ٽ ur_Arab (Urdu)
[code: warning-language-shaping]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Reem Kufi Fun Reem Kufi Fun
Subfamily Name Regular Regular
Full Name Reem Kufi Fun Reem Kufi Fun Regular
Postscript Name ReemKufiFun ReemKufiFun-Regular
[code: bad-names]
  • ⚠️ WARN

    Regular missing from full name


    [code: lacks-regular]
⚠️ WARN Color layers should have a minimum brightness. color_cpal_brightness
  • ⚠️ WARN

    The following glyphs have layers that are too bright or too dark: alefabove-ar, alefbelow-ar, dotabove-ar, dotbelow-ar, dotcenter-ar, tahabove-ar, threedotsdownabove-ar, threedotsdownbelow-ar, threedotsupabove-ar, threedotsupbelow-ar and 8 more.

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

To fix this, please either set the color definitions of all layers in question to current color (0xFFFF), or alter the brightness of these layers significantly.

[code: glyphs-too-dark-or-too-bright]
⚠️ WARN Ensure variable fonts include an avar table. mandatory_avar_table
  • ⚠️ WARN

    This variable font does not have an avar table. Most variable fonts should include an avar table to correctly define axes progression rates.


    [code: missing-avar]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 551: plus

Width = 594: less

Width = 584: greater

Width = 496: logicalnot

Width = 532: plusminus

Width = 519: multiply

Width = 507: divide

Width = 624: minus

Width = 463: approxequal

Width = 556: greaterequal, lessequal

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* behDotless-ar.fina: L<<725.0,100.0>--<725.0,0.0>> has the same coordinates as a previous segment.

* shadda-ar (U+0651): L<<113.0,148.0>--<147.0,148.0>> has the same coordinates as a previous segment.

* shadda-ar (U+0651): L<<34.0,148.0>--<0.0,148.0>> has the same coordinates as a previous segment.

* shadda-ar (U+0651): L<<147.0,148.0>--<113.0,148.0>> has the same coordinates as a previous segment.

* shadda-ar (U+0651): L<<260.0,148.0>--<226.0,148.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- IJacute

- ijacute

- macronbelowcomba

- threedotsdownabove-ar

- threedotsupbelow-ar

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: coptic, cherokee, tifinagh, math
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: old-permic, malayalam, duployan, coptic, syriac, todhri, hebrew, tifinagh, tai-le, canadian-aboriginal, math
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: cherokee, osage
  • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition 31 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, latin-ext, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OTHER DEALINGS IN THE FONT SOFTWARE.\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. soft_dotted
  • ⚠️ WARN

    The dot of soft dotted characters used in orthographies must disappear in the following strings: j̀ j́ j̃ j̄ j̈ j̑ į̀ į́ į̂ į̃ į̄ į̌ ị̀ ị́ ị̂ ị̃ ị̄

The dot of soft dotted characters should disappear in other cases, for example: i̒ i̛̒ i̤̒ i̦̒ i̧̒ i̮̒ i̱̒ i̵̒ j̆ j̇ j̉ j̊ j̋ ǰ j̏ j̒ j̛̒ j̣̒ j̤̒ j̦̒

Your font fully covers the following languages that require the soft-dotted feature: Ijo, Southeast (Latn, 2,471,000 speakers), Igbo (Latn, 27,823,640 speakers), Abua (Latn, 25,000 speakers), Ebira (Latn, 2,200,000 speakers), Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers), Ma’di (Latn, 584,000 speakers), Ikwere (Latn, 717,000 speakers), Ekpeye (Latn, 226,000 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Dii (Latn, 71,000 speakers), Lugbara (Latn, 2,200,000 speakers), Zapotec (Latn, 490,000 speakers), Ngbaka (Latn, 1,020,000 speakers), Nateni (Latn, 100,000 speakers), Southern Tutchone (Latn, 65 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bete-Bendi (Latn, 100,000 speakers), Aghem (Latn, 38,843 speakers), Nzakara (Latn, 50,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Mundani (Latn, 34,000 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Dan (Latn, 1,099,244 speakers), Basaa (Latn, 332,940 speakers), Mfumte (Latn, 79,000 speakers), Makaa (Latn, 221,000 speakers), Keliko (Latn, 63,000 speakers), Northern Tutchone (Latn, 85 speakers), Kom (Latn, 360,685 speakers), Navajo (Latn, 166,319 speakers), Sar (Latn, 500,000 speakers), Western Krahn (Latn, 97,800 speakers), Ejagham (Latn, 120,000 speakers), Belarusian (Cyrl, 10,064,517 speakers), Longto (Latn, 5,000 speakers), Mango (Latn, 77,000 speakers), Kaska (Latn, 125 speakers), Cicipu (Latn, 44,000 speakers), Vute (Latn, 21,000 speakers), Koonzime (Latn, 40,000 speakers), Yala (Latn, 200,000 speakers), Heiltsuk (Latn, 300 speakers), Bafut (Latn, 158,146 speakers), Fur (Latn, 1,230,163 speakers), South Central Banda (Latn, 244,000 speakers), Southern Kisi (Latn, 360,000 speakers), Gulay (Latn, 250,478 speakers), Han (Latn, 6 speakers), Avokaya (Latn, 100,000 speakers).

[code: soft-dotted]
⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* exclamdown (U+00A1) has a counter-clockwise outer contour

* exclamdown (U+00A1) has a counter-clockwise outer contour

* guillemetright (U+00BB) has a counter-clockwise outer contour

* guillemetright (U+00BB) has a counter-clockwise outer contour

* guilsinglright (U+203A) has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. googlefonts/name/description_max_length
  • ⚠️ WARN

    A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries.


    [code: too-long]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/reemkufifun


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/reemkufifun/ReemKufiFun[wght].ttf
Dehinted Size 139.4kb
Hinted Size 139.4kb
Increase 0 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.005']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    None of the fonts lack a STAT table.

And these are the most common STAT axis orderings:
('wght', 1)

[code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 8 14 37 9 170 0
0% 0% 3% 6% 16% 4% 71% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

Copy link

FontBakery report

fontbakery version: 0.13.0

Check results

[29] ReemKufiInk-Regular.ttf
🔥 FAIL Check accent of Lcaron, dcaron, lcaron, tcaron alt_caron
  • 🔥 FAIL

    Lcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
  • 🔥 FAIL

    dcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
  • 🔥 FAIL

    lcaron uses component quoteright.

Overridden: This check was originally a WARN but was overridden by the universal profile: For Google Fonts, one of the comma-lookalikes is a FAIL

[code: bad-mark]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. case_mapping
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+01D3: LATIN CAPITAL LETTER U WITH CARON U+01D4: LATIN SMALL LETTER U WITH CARON
U+01F3: LATIN SMALL LETTER DZ U+01F1: LATIN CAPITAL LETTER DZ
[code: missing-case-counterparts]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. googlefonts/metadata/consistent_repo_urls

But: HTML description has 'github.com/alif-type/reem-kufi'

[code: mismatch]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach uni0654 to the base glyph when shaping the text 'ءٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ءٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ؤٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ؤٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ئٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to space ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ئٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍بٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'بٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ةٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ةٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍تٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'تٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ثٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ثٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍جٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍جٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to space ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'جٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'جٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍حٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍حٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'حٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'حٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍خٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍خٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'خٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'خٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍دٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'دٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ذٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ذٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍رٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'رٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍زٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'زٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍سٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍سٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'سٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'سٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍شٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍شٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'شٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'شٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍صٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍صٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'صٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'صٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍ضٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ضٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'ضٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ضٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍طٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍طٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'طٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'طٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍ظٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ظٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'ظٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ظٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍عٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍عٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'عٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'عٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍غٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍غٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'غٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'غٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍فٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍فٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'فٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'فٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍قٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍قٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'قٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'قٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍كٔ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍كٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'كٔ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'كٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍لٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍لٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'لٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'لٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍مٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍مٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'مٔ' ar_Arab (Arabic) and fa_Arab (Persian)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'مٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍نٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'نٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍هٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'هٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍وٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'وٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍ىٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'ىٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text '‍يٕ' ar_Arab (Arabic)
Shaper didn't attach uni0655 to the base glyph when shaping the text 'يٕ' ar_Arab (Arabic)
Shaper didn't attach uni0654 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0655 to uni0640 ar_Arab (Arabic)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍چٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'چٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍کٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'کٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text '‍گٔ' fa_Arab (Persian)
Shaper didn't attach uni0654 to the base glyph when shaping the text 'گٔ' fa_Arab (Persian)
in Farsi, "saria heh" should use a small yeh above, not hamza; both buffers returned gid142=0@170,550+0 gid85=0+499
[code: failed-language-shaping]
  • ⚠️ WARN

    GF_Phonetics_SinoExt glyphset:

WARN messages Languages
Some auxiliary glyphs were missing: ſ de_Latn (German) and fr_Latn (French)
Some auxiliary glyphs were missing: Ʒ, Ǥ, ǥ, Ǯ, ǯ, ʒ fi_Latn (Finnish)
Some auxiliary glyphs were missing: ڜ, ڢ, ڥ, ڧ, ڨ ar_Arab (Arabic)
Some auxiliary glyphs were missing: ؀؁؂؃‌‍‏, ٗ, ٘, ٻ, ټ, ٽ ur_Arab (Urdu)
[code: warning-language-shaping]
⚠️ WARN Font has correct post table version? opentype/post_table_version
  • ⚠️ WARN

    Post table format 3 use has niche use case problems.Please review the check rationale for additional details.


    [code: post-table-version]
⚠️ WARN Check if OS/2 xAvgCharWidth is correct. opentype/xavgcharwidth
  • ⚠️ WARN

    OS/2 xAvgCharWidth is 609 but it should be 594 which corresponds to the average of the widths of all glyphs in the font.


    [code: xAvgCharWidth-wrong]
⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ 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: Eth Contours detected: 3 Expected: 2

  • Glyph name: Dcroat Contours detected: 3 Expected: 2

  • Glyph name: dcroat Contours detected: 3 Expected: 2

  • Glyph name: hbar Contours detected: 2 Expected: 1

  • Glyph name: Tbar Contours detected: 2 Expected: 1

  • Glyph name: tbar Contours detected: 2 Expected: 1

  • Glyph name: ohorn Contours detected: 3 Expected: 2

  • Glyph name: Uhorn Contours detected: 2 Expected: 1

  • Glyph name: uhorn Contours detected: 2 Expected: 1

  • 38 more.

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

[code: contour-count]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 551: plus

Width = 594: less

Width = 584: greater

Width = 496: logicalnot

Width = 532: plusminus

Width = 519: multiply

Width = 507: divide

Width = 624: minus

Width = 463: approxequal

Width = 556: lessequal, greaterequal

[code: width-outliers]
⚠️ WARN Check there are no overlapping path segments overlapping_path_segments
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

* glyph00830: L<<725.0,100.0>--<725.0,0.0>> has the same coordinates as a previous segment.

* glyph00831: L<<725.0,100.0>--<725.0,0.0>> has the same coordinates as a previous segment.

* glyph01002: L<<113.0,148.0>--<147.0,148.0>> has the same coordinates as a previous segment.

* glyph01002: L<<34.0,148.0>--<0.0,148.0>> has the same coordinates as a previous segment.

* glyph01002: L<<147.0,148.0>--<113.0,148.0>> has the same coordinates as a previous segment.

* glyph01002: L<<260.0,148.0>--<226.0,148.0>> has the same coordinates as a previous segment.

[code: overlapping-path-segments]

⚠️ WARN Does the font contain a soft hyphen? soft_hyphen
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs unreachable_glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- glyph00117

- glyph00118

[code: unreachable-glyphs]

⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. googlefonts/article/images
  • ⚠️ WARN

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


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ 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+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: coptic, math, cherokee, tifinagh
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: malayalam, canadian-aboriginal, duployan, tifinagh, math, coptic, tai-le, syriac, todhri, old-permic, hebrew
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition 31 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, latin-ext, menu, vietnamese

[code: unreachable-subsetting]
⚠️ WARN Check OFL body text is correct. googlefonts/license/OFL_body_text

Lines changed:

- OTHER DEALINGS IN THE FONT SOFTWARE.

+ OTHER DEALINGS IN THE FONT SOFTWARE.\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN Do any segments have colinear vectors? outline_colinear_vectors
  • ⚠️ WARN

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<720.0,725.0>--<720.0,40.0>> -> L<<720.0,40.0>--<720.0,-2.0>>

* K (U+004B): L<<209.0,725.0>--<209.0,439.0>> -> L<<209.0,439.0>--<206.0,403.0>>

* glyph00935: L<<103.0,100.0>--<245.0,100.0>> -> L<<245.0,100.0>--<245.0,100.0>>

* glyph00941: L<<324.0,346.0>--<324.0,150.0>> -> L<<324.0,150.0>--<324.0,100.0>>

* glyph00945: L<<324.0,346.0>--<324.0,150.0>> -> L<<324.0,150.0>--<324.0,100.0>>

* glyph00953: L<<394.0,0.0>--<394.0,100.0>> -> L<<394.0,100.0>--<394.0,150.0>>

* uni0136 (U+0136): L<<209.0,725.0>--<209.0,439.0>> -> L<<209.0,439.0>--<206.0,403.0>>

[code: found-colinear-vectors]

⚠️ WARN Check the direction of the outermost contour in each glyph outline_direction
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* glyph00885 has a counter-clockwise outer contour

* glyph00888 has a counter-clockwise outer contour

* glyph00891 has a counter-clockwise outer contour

* glyph00893 has a counter-clockwise outer contour

* glyph00935 has a counter-clockwise outer contour

* glyph00953 has a counter-clockwise outer contour

[code: ccw-outer-contour]

⚠️ WARN Do outlines contain any jaggy segments? outline_jaggy_segments
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* glyph00016: B<<-428.0,163.0>-<-433.0,165.0>-<-435.0,165.0>>/B<<-435.0,165.0>-<-400.0,170.0>-<-385.0,187.0>> = 8.13010235415596

* glyph00086: L<<173.0,0.0>--<173.0,0.0>>/B<<173.0,0.0>-<132.0,1.0>-<98.5,21.0>> = 1.397181027296108

* glyph00087: L<<173.0,0.0>--<173.0,0.0>>/B<<173.0,0.0>-<132.0,1.0>-<98.5,21.0>> = 1.397181027296108

* glyph00100: L<<173.0,0.0>--<173.0,0.0>>/B<<173.0,0.0>-<132.0,1.0>-<98.5,21.0>> = 1.397181027296108

* glyph00931: B<<242.5,308.5>-<255.0,320.0>-<262.0,350.0>>/L<<262.0,350.0>--<262.0,200.0>> = 13.134022306396327

* glyph00959: B<<207.0,111.5>-<221.0,123.0>-<224.0,140.0>>/L<<224.0,140.0>--<224.0,8.0>> = 10.007979801441312

* glyph00959: L<<224.0,223.0>--<224.0,160.0>>/B<<224.0,160.0>-<221.0,177.0>-<207.0,188.5>> = 10.007979801441312

[code: found-jaggy-segments]

⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? outline_semi_vertical
  • ⚠️ WARN

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

* Eng (U+014A): L<<188.0,504.0>--<191.0,0.0>>

* Eng (U+014A): L<<618.0,213.0>--<616.0,725.0>>

* K (U+004B): L<<208.0,290.0>--<209.0,0.0>>

* N (U+004E): L<<206.0,502.0>--<208.0,0.0>>

* N (U+004E): L<<635.0,214.0>--<633.0,725.0>>

* Nacute (U+0143): L<<206.0,502.0>--<208.0,0.0>>

* Nacute (U+0143): L<<635.0,214.0>--<633.0,725.0>>

* Ncaron (U+0147): L<<206.0,502.0>--<208.0,0.0>>

* Ncaron (U+0147): L<<635.0,214.0>--<633.0,725.0>>

* Ntilde (U+00D1): L<<206.0,502.0>--<208.0,0.0>>

* 17 more.

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

[code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. googlefonts/meta/script_lang_tags
  • ⚠️ WARN

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


    [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. googlefonts/name/description_max_length
  • ⚠️ WARN

    A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries.


    [code: too-long]
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    ofl/reemkufiink


    [code: family-path]
ℹ️ INFO Show hinting filesize impact. hinting_impact
  • ℹ️ INFO

    Hinting filesize impact:

ofl/reemkufiink/ReemKufiInk-Regular.ttf
Dehinted Size 237.3kb
Hinted Size 237.3kb
Increase 24 bytes
Change 0.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field. googlefonts/metadata/minisite_url
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ 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 Font has old ttfautohint applied? googlefonts/old_ttfautohint
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.7']


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 4 17 58 9 150 0
0% 0% 2% 7% 24% 4% 63% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@emmamarichal
Copy link
Collaborator Author

Hey @davelab6, could you take a look at it before we merge it? It has been discuss during a infrastructure meeting, but I don't recall if you were here!

@emmamarichal emmamarichal added the -- Needs manager's opinion from upper level label Jan 16, 2025
@emmamarichal emmamarichal mentioned this pull request Jan 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: PR GF
Development

Successfully merging this pull request may close these issues.

Color font info
3 participants