Font Bakery Logo image/svg+xml Font Bakery Logo Robert Martinez font build service https://github.com/xen/fontbakery
Fontbakery Technical Report

If you think a check is flawed or have an idea for a check, please file an issue at https://github.com/fonttools/fontbakery/issues and remember to include a pointer to the repo and branch you're checking.

DEPRECATION WARNING

By late-December 2024, FontBakery version 0.13.0 introduced a new naming scheme for the check-IDs.

Fontbakery detected usage of old IDs and performed an automatic backwards-compatibility translation for you.
This automatic translation will be deprecated in the next major release.

Please start using the new check-IDs as documented at /Lib/fontbakery/legacy_checkids.py

The following legacy check-IDs were detected:
- com.google.fonts/check/fontdata_namecheck
- com.google.fonts/check/outline_jaggy_segments
- com.google.fonts/check/outline_semi_vertical
- com.google.fonts/check/ttx_roundtrip
- com.google.fonts/check/outline_colinear_vectors
- com.google.fonts/check/outline_short_segments
- com.google.fonts/check/version_bump
- com.google.fonts/check/outline_alignment_miss

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS
3 0 3 19 55 8 150
1% 0% 1% 8% 23% 3% 63%

Meaning of check results:

If you get ERRORs, please help us improve the tool by reporting them at our issue tracker.

(but other kinds of bug reports and/or feature requests are also always welcome, of course!)

FontBakery version: 0.13.1

OpenType Specification Checks

⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩

Check mark characters are in GDEF mark glyph class.

Check ID: <FontBakeryCheck:opentype/gdef_mark_chars>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class: uni20DD (U+20DD), uniFE00 (U+FE00), uniFE01 (U+FE01), uniFE02 (U+FE02) and uniFE03 (U+FE03)

    [code: mark-chars]

Check glyphs in mark glyph class are non-spacing.

Check ID: <FontBakeryCheck:opentype/gdef_spacing_marks>
⚠️ Ponomar-Regular.ttf
  • ⚠️ 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: uni0485 (U+0485), uni04860301 (U+E001), uni0488 (U+0488), uni0489 (U+0489), uniA670 (U+A670), uniA671 (U+A671) and uniA672 (U+A672)

    [code: spacing-mark-glyphs]

Universal Profile Checks

💥⚠️⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️

EXPERIMENTAL CHECK - Since 2024/12/28
Check base characters have non-zero advance width.

Check ID: <FontBakeryCheck:base_has_width>
💥 Ponomar-Regular.ttf
  • 💥 ERROR

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

      File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checkrunner.py", line 222, in _run_check
        subresults = list(subresults)
      File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checks/base_has_width.py", line 46, in check_base_has_width
        problems = bullet_list(context, problems)
      File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/utils.py", line 155, in bullet_list
        return f"{indentation}{bullet} " + pretty_print_list(
                                           ~~~~~~~~~~~~~~~~~^
            config,
            ^^^^^^^
        ...<2 lines>...
            glue=f"\n\n{indentation}{bullet} ",
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        )
        ^
      File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/utils.py", line 140, in pretty_print_list
        if config.get("full_lists"):
           ^^^^^^^^^^
    
    
    [code: failed-check]

Check if each glyph has the recommended amount of contours.

Check ID: <FontBakeryCheck:contour_count>
⚠️ Ponomar-Regular.ttf
  • ⚠️ 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: uni002A	Contours detected: 2	Expected: 1 or 4
    
    - Glyph name: uni0435	Contours detected: 1	Expected: 2
    
    - Glyph name: uni043A	Contours detected: 2	Expected: 1
    
    - Glyph name: uni0450	Contours detected: 2	Expected: 3
    
    - Glyph name: uni0451	Contours detected: 3	Expected: 4
    
    - Glyph name: uni0456	Contours detected: 1	Expected: 2
    
    - Glyph name: uni045C	Contours detected: 3	Expected: 2
    
    - Glyph name: uni046E	Contours detected: 1	Expected: 2
    
    - Glyph name: uni046F	Contours detected: 1	Expected: 2
    
    - Glyph name: uni0473	Contours detected: 2	Expected: 3
    
    - Glyph name: uni0488	Contours detected: 12	Expected: 8
    
    - Glyph name: uni0489	Contours detected: 12	Expected: 8
    
    - Glyph name: uni25CC	Contours detected: 8	Expected: 16 or 12
    
    - Glyph name: uniFFFC	Contours detected: 150	Expected: 22
    
    - Glyph name: uni0435	Contours detected: 1	Expected: 2
    
    - Glyph name: uni043A	Contours detected: 2	Expected: 1
    
    - Glyph name: uni0450	Contours detected: 2	Expected: 3
    
    - Glyph name: uni0451	Contours detected: 3	Expected: 4
    
    - Glyph name: uni0456	Contours detected: 1	Expected: 2
    
    - Glyph name: uni045C	Contours detected: 3	Expected: 2
    
    - Glyph name: uni046E	Contours detected: 1	Expected: 2
    
    - Glyph name: uni046F	Contours detected: 1	Expected: 2
    
    - Glyph name: uni0473	Contours detected: 2	Expected: 3
    
    - Glyph name: uni0488	Contours detected: 12	Expected: 8
    
    - Glyph name: uni0489	Contours detected: 12	Expected: 8
    
    - Glyph name: uni25CC	Contours detected: 8	Expected: 16 or 12
    
    - Glyph name: uniFFFC	Contours detected: 150	Expected: 22
    
    [code: contour-count]

Are there caret positions declared for every ligature?

Check ID: <FontBakeryCheck:ligature_carets>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

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

    [code: lacks-caret-pos]

Check math signs have the same width.

Check ID: <FontBakeryCheck:math_signs_width>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

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

    Width = 453: uni002B

    Width = 611: uni003C

    Width = 376: uni003D

    Width = 600: uni003E

    Width = 399: uni00AC

    Width = 579: divide, plusminus, multiply

    Width = 375: minus

    [code: width-outliers]

Check there are no overlapping path segments

Check ID: <FontBakeryCheck:overlapping_path_segments>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    The following glyphs have overlapping path segments:

    * uni0026 (U+0026): L<<108.0,463.0>--<108.0,464.0>> has the same coordinates as a previous segment.
    
    * uni0026 (U+0026): B<<108.0,464.0>-<108.0,464.0>-<108.0,464.0>> has the same coordinates as a previous segment.
    
    * uniA657 (U+A657): L<<413.0,326.0>--<412.0,326.0>> has the same coordinates as a previous segment.
    
    [code: overlapping-path-segments]

Does the font contain a soft hyphen?

Check ID: <FontBakeryCheck:soft_hyphen>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.

    [code: softhyphen]

Ensure Stylistic Sets have description.

Check ID: <FontBakeryCheck:stylisticset_description>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

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

    [code: missing-description]

Article Checks

⚠️

Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.

Check ID: <FontBakeryCheck:googlefonts/article/images>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    Family metadata at /Users/simon/others-repos/fonts//ofl/ponomar does not have an article.

    [code: lacks-article]

Metadata Checks

🔥⚠️⏩⏩⏩⏩ℹ️

METADATA.pb: Check URL on copyright string is the same as in repository_url field.

Check ID: <FontBakeryCheck:googlefonts/metadata/consistent_repo_urls>
🔥 Ponomar-Regular.ttf

Check for codepoints not covered by METADATA subsets.

Check ID: <FontBakeryCheck:googlefonts/metadata/unreachable_subsetting>
⚠️ Ponomar-Regular.ttf
  • ⚠️ 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+007F : try adding symbols
    • U+017F LATIN SMALL LETTER LONG S: try adding latin-ext
    • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: coptic, math, tifinagh, cherokee
    • U+0305 COMBINING OVERLINE: try adding one of: elbasan, math, glagolitic, gothic, coptic
    • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
    • U+0307 COMBINING DOT ABOVE: try adding one of: tai-le, hebrew, math, duployan, todhri, syriac, tifinagh, malayalam, old-permic, coptic, canadian-aboriginal
    • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
    • U+030F COMBINING DOUBLE GRAVE ACCENT: not included in any glyphset definition
    • U+0311 COMBINING INVERTED BREVE: try adding one of: coptic, todhri
    • U+0327 COMBINING CEDILLA: try adding math
    • U+032E COMBINING BREVE BELOW: try adding syriac
    • U+0332 COMBINING LOW LINE: try adding math
    • U+033E COMBINING VERTICAL TILDE: not included in any glyphset definition
    • U+034F COMBINING GRAPHEME JOINER: not included in any glyphset definition
    • U+0358 COMBINING DOT ABOVE RIGHT: try adding osage
    • U+10FB GEORGIAN PARAGRAPH SEPARATOR: try adding one of: georgian, glagolitic
    • U+1DC0 COMBINING DOTTED GRAVE ACCENT: not included in any glyphset definition
    • U+1DC1 COMBINING DOTTED ACUTE ACCENT: not included in any glyphset definition
    • U+1DF6 COMBINING KAVYKA ABOVE RIGHT: not included in any glyphset definition
    • U+1DF7 COMBINING KAVYKA ABOVE LEFT: not included in any glyphset definition
    • U+1DF8 COMBINING DOT ABOVE LEFT: try adding syriac
    • U+1DF9 COMBINING WIDE INVERTED BRIDGE BELOW: not included in any glyphset definition
    • 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
    • U+2008 PUNCTUATION SPACE: try adding symbols2
    • U+200A HAIR SPACE: try adding symbols2
    • U+200C ZERO WIDTH NON-JOINER: try adding one of: khmer, thai, hanifi-rohingya, chakma, rejang, javanese, duployan, mahajani, gujarati, tirhuta, syriac, nko, brahmi, new-tai-lue, kaithi, takri, gunjala-gondi, kannada, phags-pa, hanunoo, newa, balinese, sharada, thaana, modi, tai-le, yi, meetei-mayek, arabic, siddham, tibetan, bhaiksuki, avestan, myanmar, syloti-nagri, pahawh-hmong, batak, sinhala, bengali, manichaean, masaram-gondi, sogdian, saurashtra, dogra, khudawadi, malayalam, tagalog, cham, limbu, tai-viet, lepcha, grantha, tagbanwa, mongolian, kharoshthi, oriya, buhid, hebrew, tai-tham, lao, telugu, hatran, tifinagh, kayah-li, zanabazar-square, gurmukhi, khojki, psalter-pahlavi, sundanese, buginese, tamil, warang-citi, devanagari, mandaic
    • U+200D ZERO WIDTH JOINER: try adding one of: khmer, thai, hanifi-rohingya, chakma, rejang, javanese, duployan, mahajani, gujarati, tirhuta, syriac, nko, brahmi, new-tai-lue, kaithi, takri, gunjala-gondi, kannada, phags-pa, hanunoo, newa, balinese, sharada, thaana, modi, tai-le, yi, meetei-mayek, arabic, siddham, tibetan, bhaiksuki, avestan, myanmar, syloti-nagri, pahawh-hmong, batak, sinhala, bengali, manichaean, masaram-gondi, sogdian, saurashtra, dogra, khudawadi, malayalam, tagalog, old-hungarian, cham, limbu, tai-viet, lepcha, grantha, tagbanwa, mongolian, kharoshthi, oriya, buhid, hebrew, tai-tham, lao, telugu, tifinagh, kayah-li, zanabazar-square, gurmukhi, khojki, psalter-pahlavi, sundanese, buginese, tamil, warang-citi, devanagari, mandaic
    • U+200E LEFT-TO-RIGHT MARK: try adding one of: thaana, hebrew, syriac, nko, arabic, phags-pa
    • U+200F RIGHT-TO-LEFT MARK: try adding one of: thaana, hebrew, syriac, nko, phags-pa
    • U+2010 HYPHEN: try adding one of: kharoshthi, hebrew, sora-sompeng, yi, kayah-li, arabic, cham, kaithi, sundanese, coptic, armenian, lisu, syloti-nagri
    • U+2011 NON-BREAKING HYPHEN: try adding one of: yi, arabic, syloti-nagri
    • U+2020 DAGGER: try adding one of: latin-ext, adlam
    • U+2024 ONE DOT LEADER: try adding armenian
    • U+2025 TWO DOT LEADER: try adding phags-pa
    • U+2027 HYPHENATION POINT: not included in any glyphset definition
    • U+202F NARROW NO-BREAK SPACE: try adding one of: phags-pa, yi, mongolian
    • U+203B REFERENCE MARK: not included in any glyphset definition
    • U+2052 COMMERCIAL MINUS SIGN: not included in any glyphset definition
    • U+2053 SWUNG DASH: try adding coptic
    • U+2056 THREE DOT PUNCTUATION: try adding coptic
    • U+2058 FOUR DOT PUNCTUATION: try adding coptic
    • U+2059 FIVE DOT PUNCTUATION: try adding coptic
    • U+205C DOTTED CROSS: not included in any glyphset definition
    • U+205D TRICOLON: try adding one of: meroitic, carian, old-hungarian, meroitic-hieroglyphs
    • U+205E VERTICAL FOUR DOTS: try adding old-hungarian
    • U+2060 WORD JOINER: not included in any glyphset definition
    • U+2074 SUPERSCRIPT FOUR: try adding math
    • U+20DD COMBINING ENCLOSING CIRCLE: try adding symbols
    • U+2219 BULLET OPERATOR: try adding one of: yi, tai-tham, symbols, math
    • U+223B HOMOTHETIC: try adding math
    • U+223C TILDE OPERATOR: try adding math
    • U+223D REVERSED TILDE: try adding math
    • U+2241 NOT TILDE: try adding math
    • U+25CC DOTTED CIRCLE: try adding one of: khmer, hanifi-rohingya, javanese, duployan, gujarati, tirhuta, nko, brahmi, kannada, sharada, newa, thaana, tai-le, yi, siddham, miao, syloti-nagri, batak, ahom, sinhala, bengali, sogdian, saurashtra, khudawadi, mende-kikakui, tai-tham, kharoshthi, zanabazar-square, gurmukhi, khojki, sundanese, warang-citi, pahawh-hmong, devanagari, thai, rejang, marchen, gunjala-gondi, armenian, balinese, modi, bhaiksuki, masaram-gondi, malayalam, limbu, tai-viet, grantha, elbasan, tagbanwa, mongolian, hebrew, wancho, telugu, psalter-pahlavi, buginese, chakma, mahajani, syriac, kaithi, takri, tibetan, cham, oriya, math, adlam, osage, tifinagh, caucasian-albanian, kayah-li, tamil, tagalog, coptic, canadian-aboriginal, mandaic, new-tai-lue, bassa-vah, old-permic, phags-pa, hanunoo, soyombo, symbols, meetei-mayek, myanmar, manichaean, dogra, lepcha, music, buhid, lao
    • U+2626 ORTHODOX CROSS: try adding symbols
    • U+263D FIRST QUARTER MOON: try adding symbols
    • U+263E LAST QUARTER MOON: try adding symbols
    • U+271A HEAVY GREEK CROSS: try adding symbols
    • U+2720 MALTESE CROSS: try adding symbols
    • U+2734 EIGHT POINTED BLACK STAR: try adding symbols
    • U+29DF DOUBLE-ENDED MULTIMAP: try adding math
    • U+2E2A TWO DOTS OVER ONE DOT PUNCTUATION: not included in any glyphset definition
    • U+2E2B ONE DOT OVER TWO DOTS PUNCTUATION: not included in any glyphset definition
    • U+2E2C SQUARED FOUR DOT PUNCTUATION: not included in any glyphset definition
    • U+2E2D FIVE DOT MARK: not included in any glyphset definition
    • U+2E2F VERTICAL TILDE: not included in any glyphset definition
    • U+2E34 RAISED COMMA: try adding coptic
    • U+2E43 DASH WITH LEFT UPTURN: try adding glagolitic
    • U+2E45 INVERTED LOW KAVYKA: not included in any glyphset definition
    • U+2E46 INVERTED LOW KAVYKA WITH KAVYKA ABOVE: not included in any glyphset definition
    • U+2E47 LOW KAVYKA: not included in any glyphset definition
    • U+2E48 LOW KAVYKA WITH DOT: not included in any glyphset definition
    • U+2E49 DOUBLE STACKED COMMA: not included in any glyphset definition
    • U+E000 : not included in any glyphset definition
    • U+E001 : not included in any glyphset definition
    • U+E002 : not included in any glyphset definition
    • U+E003 : not included in any glyphset definition
    • U+E004 : not included in any glyphset definition
    • U+E005 : not included in any glyphset definition
    • U+E016 : not included in any glyphset definition
    • U+E0E0 : not included in any glyphset definition
    • U+E0E1 : not included in any glyphset definition
    • U+E0E2 : not included in any glyphset definition
    • U+E0E3 : not included in any glyphset definition
    • U+E0E4 : not included in any glyphset definition
    • U+E0E5 : not included in any glyphset definition
    • U+E0E6 : not included in any glyphset definition
    • U+E0E7 : not included in any glyphset definition
    • U+E0E8 : not included in any glyphset definition
    • U+E0E9 : not included in any glyphset definition
    • U+E0EA : not included in any glyphset definition
    • U+E0EB : not included in any glyphset definition
    • U+E0EC : not included in any glyphset definition
    • U+E0ED : not included in any glyphset definition
    • U+E0EE : not included in any glyphset definition
    • U+E0EF : not included in any glyphset definition
    • U+E0F5 : not included in any glyphset definition
    • U+E1A5 : not included in any glyphset definition
    • U+E2EA : not included in any glyphset definition
    • U+E3BE : not included in any glyphset definition
    • U+E3BF : not included in any glyphset definition
    • U+E3C0 : not included in any glyphset definition
    • U+E5D0 : not included in any glyphset definition
    • U+E5D1 : not included in any glyphset definition
    • U+E5D2 : not included in any glyphset definition
    • U+E5D3 : not included in any glyphset definition
    • U+E5D4 : not included in any glyphset definition
    • U+E5D5 : not included in any glyphset definition
    • U+E5D6 : not included in any glyphset definition
    • U+E5D7 : not included in any glyphset definition
    • U+E612 : not included in any glyphset definition
    • U+E714 : not included in any glyphset definition
    • U+E800 : not included in any glyphset definition
    • U+E8E5 : not included in any glyphset definition
    • U+E901 : not included in any glyphset definition
    • U+E903 : not included in any glyphset definition
    • U+E904 : not included in any glyphset definition
    • U+E926 : not included in any glyphset definition
    • U+E928 : not included in any glyphset definition
    • U+E92D : not included in any glyphset definition
    • U+E92E : not included in any glyphset definition
    • U+EC45 : not included in any glyphset definition
    • U+EC46 : not included in any glyphset definition
    • U+EC47 : not included in any glyphset definition
    • U+EC48 : not included in any glyphset definition
    • U+EC49 : not included in any glyphset definition
    • U+EC4A : not included in any glyphset definition
    • U+EC4B : not included in any glyphset definition
    • U+EC4C : not included in any glyphset definition
    • U+EC4D : not included in any glyphset definition
    • U+EC50 : not included in any glyphset definition
    • U+EF00 : not included in any glyphset definition
    • U+EF01 : not included in any glyphset definition
    • U+EF02 : not included in any glyphset definition
    • U+EF03 : not included in any glyphset definition
    • U+EF04 : not included in any glyphset definition
    • U+EF05 : not included in any glyphset definition
    • U+EF06 : not included in any glyphset definition
    • U+EF07 : not included in any glyphset definition
    • U+EF08 : not included in any glyphset definition
    • U+EF09 : not included in any glyphset definition
    • U+EF0A : not included in any glyphset definition
    • U+EF0B : not included in any glyphset definition
    • U+EF10 : not included in any glyphset definition
    • U+EF11 : not included in any glyphset definition
    • U+EF12 : not included in any glyphset definition
    • U+EF13 : not included in any glyphset definition
    • U+EF14 : not included in any glyphset definition
    • U+EF15 : not included in any glyphset definition
    • U+EF16 : not included in any glyphset definition
    • U+EF17 : not included in any glyphset definition
    • U+EF20 : not included in any glyphset definition
    • U+EF21 : not included in any glyphset definition
    • U+EF22 : not included in any glyphset definition
    • U+EF23 : not included in any glyphset definition
    • U+EF24 : not included in any glyphset definition
    • U+EF25 : not included in any glyphset definition
    • U+EF26 : not included in any glyphset definition
    • U+EF27 : not included in any glyphset definition
    • U+EF28 : not included in any glyphset definition
    • U+EF29 : not included in any glyphset definition
    • U+EF2A : not included in any glyphset definition
    • U+EF2B : not included in any glyphset definition
    • U+EF2C : not included in any glyphset definition
    • U+EF2D : not included in any glyphset definition
    • U+EF2E : not included in any glyphset definition
    • U+EF2F : not included in any glyphset definition
    • U+EF30 : not included in any glyphset definition
    • U+EF31 : not included in any glyphset definition
    • U+EF32 : not included in any glyphset definition
    • U+EF33 : not included in any glyphset definition
    • U+EF34 : not included in any glyphset definition
    • U+EF35 : not included in any glyphset definition
    • U+EF36 : not included in any glyphset definition
    • U+EF37 : not included in any glyphset definition
    • U+F400 : not included in any glyphset definition
    • U+F401 : not included in any glyphset definition
    • U+F402 : not included in any glyphset definition
    • U+F403 : not included in any glyphset definition
    • U+F404 : not included in any glyphset definition
    • U+F405 : not included in any glyphset definition
    • U+F410 : not included in any glyphset definition
    • U+F411 : not included in any glyphset definition
    • U+F412 : not included in any glyphset definition
    • U+F413 : not included in any glyphset definition
    • U+F414 : not included in any glyphset definition
    • U+F420 : not included in any glyphset definition
    • U+F421 : not included in any glyphset definition
    • U+F422 : not included in any glyphset definition
    • U+F423 : not included in any glyphset definition
    • U+F430 : not included in any glyphset definition
    • U+F431 : not included in any glyphset definition
    • U+F432 : not included in any glyphset definition
    • U+F433 : not included in any glyphset definition
    • U+F434 : not included in any glyphset definition
    • U+F435 : not included in any glyphset definition
    • U+F436 : not included in any glyphset definition
    • U+F437 : not included in any glyphset definition
    • U+F438 : not included in any glyphset definition
    • U+F439 : not included in any glyphset definition
    • U+F441 : not included in any glyphset definition
    • U+F442 : not included in any glyphset definition
    • U+F443 : not included in any glyphset definition
    • U+F444 : not included in any glyphset definition
    • U+F445 : not included in any glyphset definition
    • U+F446 : not included in any glyphset definition
    • U+F447 : not included in any glyphset definition
    • U+F448 : not included in any glyphset definition
    • U+F449 : not included in any glyphset definition
    • U+F44A : not included in any glyphset definition
    • U+F44B : not included in any glyphset definition
    • U+F44C : not included in any glyphset definition
    • U+F44D : not included in any glyphset definition
    • U+F44E : not included in any glyphset definition
    • U+F44F : not included in any glyphset definition
    • U+F450 : not included in any glyphset definition
    • U+F451 : not included in any glyphset definition
    • U+F452 : not included in any glyphset definition
    • U+F453 : not included in any glyphset definition
    • U+F454 : not included in any glyphset definition
    • U+F455 : not included in any glyphset definition
    • U+F456 : not included in any glyphset definition
    • U+F457 : not included in any glyphset definition
    • U+F458 : not included in any glyphset definition
    • U+F459 : not included in any glyphset definition
    • U+F45A : not included in any glyphset definition
    • U+F461 : not included in any glyphset definition
    • U+F462 : not included in any glyphset definition
    • U+F463 : not included in any glyphset definition
    • U+F464 : not included in any glyphset definition
    • U+F465 : not included in any glyphset definition
    • U+F466 : not included in any glyphset definition
    • U+F467 : not included in any glyphset definition
    • U+F468 : not included in any glyphset definition
    • U+F469 : not included in any glyphset definition
    • U+F46A : not included in any glyphset definition
    • U+F46B : not included in any glyphset definition
    • U+F46C : not included in any glyphset definition
    • U+F46D : not included in any glyphset definition
    • U+F46E : not included in any glyphset definition
    • U+F46F : not included in any glyphset definition
    • U+F470 : not included in any glyphset definition
    • U+F471 : not included in any glyphset definition
    • U+F472 : not included in any glyphset definition
    • U+F473 : not included in any glyphset definition
    • U+F474 : not included in any glyphset definition
    • U+F475 : not included in any glyphset definition
    • U+F476 : not included in any glyphset definition
    • U+F477 : not included in any glyphset definition
    • U+F478 : not included in any glyphset definition
    • U+F479 : not included in any glyphset definition
    • U+F47A : not included in any glyphset definition
    • U+F4DE : not included in any glyphset definition
    • U+F4FE : not included in any glyphset definition
    • U+F57F : not included in any glyphset definition
    • U+F600 : not included in any glyphset definition
    • U+F601 : not included in any glyphset definition
    • U+F602 : not included in any glyphset definition
    • U+F603 : not included in any glyphset definition
    • U+F604 : not included in any glyphset definition
    • U+F605 : not included in any glyphset definition
    • U+F606 : not included in any glyphset definition
    • U+FB00 LATIN SMALL LIGATURE FF: not included in any glyphset definition
    • U+FB01 LATIN SMALL LIGATURE FI: not included in any glyphset definition
    • U+FB02 LATIN SMALL LIGATURE FL: not included in any glyphset definition
    • U+FB05 LATIN SMALL LIGATURE LONG S T: not included in any glyphset definition
    • U+FE00 VARIATION SELECTOR-1: try adding one of: phags-pa, yi, manichaean
    • U+FE01 VARIATION SELECTOR-2: not included in any glyphset definition
    • U+FE02 VARIATION SELECTOR-3: not included in any glyphset definition
    • U+FE03 VARIATION SELECTOR-4: not included in any glyphset definition
    • U+FE26 COMBINING CONJOINING MACRON: try adding one of: coptic, caucasian-albanian
    • U+FFF9 INTERLINEAR ANNOTATION ANCHOR: try adding symbols
    • U+FFFA INTERLINEAR ANNOTATION SEPARATOR: try adding symbols
    • U+FFFB INTERLINEAR ANNOTATION TERMINATOR: try adding symbols
    • U+FFFC OBJECT REPLACEMENT CHARACTER: not included in any glyphset definition
    • U+1F311 NEW MOON SYMBOL: not included in any glyphset definition
    • U+1F312 WAXING CRESCENT MOON SYMBOL: not included in any glyphset definition
    • U+1F313 FIRST QUARTER MOON SYMBOL: not included in any glyphset definition
    • U+1F314 WAXING GIBBOUS MOON SYMBOL: not included in any glyphset definition
    • U+1F315 FULL MOON SYMBOL: try adding symbols
    • U+1F316 WANING GIBBOUS MOON SYMBOL: not included in any glyphset definition
    • U+1F317 LAST QUARTER MOON SYMBOL: not included in any glyphset definition
    • U+1F318 WANING CRESCENT MOON SYMBOL: not included in any glyphset definition
    • U+1F319 CRESCENT MOON: not included in any glyphset definition
    • U+1F347 GRAPES: not included in any glyphset definition
    • U+1F377 WINE GLASS: not included in any glyphset definition
    • U+1F41F FISH: try adding symbols
    • U+1F540 CIRCLED CROSS POMMEE: try adding symbols
    • U+1F541 CROSS POMMEE WITH HALF-CIRCLE BELOW: try adding symbols
    • U+1F542 CROSS POMMEE: try adding symbols
    • U+1F543 NOTCHED LEFT SEMICIRCLE WITH THREE DOTS: try adding symbols
    • U+1F544 NOTCHED RIGHT SEMICIRCLE WITH THREE DOTS: try adding symbols
    • U+1F545 SYMBOL FOR MARKS CHAPTER: try adding symbols
    • U+1F900 CIRCLED CROSS FORMEE WITH FOUR DOTS: try adding symbols
    • U+1F901 CIRCLED CROSS FORMEE WITH TWO DOTS: try adding symbols
    • U+1F902 CIRCLED CROSS FORMEE: try adding symbols
    • U+1F903 LEFT HALF CIRCLE WITH FOUR DOTS: try adding symbols
    • U+1F904 LEFT HALF CIRCLE WITH THREE DOTS: try adding symbols
    • U+1F905 LEFT HALF CIRCLE WITH TWO DOTS: try adding symbols
    • U+1F906 LEFT HALF CIRCLE WITH DOT: try adding symbols
    • U+1F907 LEFT HALF CIRCLE: try adding symbols
    • U+1F908 DOWNWARD FACING HOOK: try adding symbols
    • U+1F909 DOWNWARD FACING NOTCHED HOOK: try adding symbols
    • U+1F90A DOWNWARD FACING HOOK WITH DOT: try adding symbols
    • U+1F90B DOWNWARD FACING NOTCHED HOOK WITH DOT: try adding symbols
    • U+F0023 : not included in any glyphset definition
    • U+F0030 : not included in any glyphset definition

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

    [code: unreachable-subsetting]

Glyphset Checks

💥

Shapes languages in all GF glyphsets.

Check ID: <FontBakeryCheck:googlefonts/glyphsets/shape_languages>
💥 Ponomar-Regular.ttf
  • 💥 ERROR

    Failed with ModuleNotFoundError: No module named 'shaperglot.checker'

      File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checkrunner.py", line 222, in _run_check
        subresults = list(subresults)
      File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphsets/shape_languages.py", line 19, in check_glyphsets_shape_languages
        from shaperglot.checker import Checker
    
    
    [code: failed-check]

Description Checks

🔥⚠️⚠️⚠️ℹ️ℹ️

DESCRIPTION.en_us.html should end in a linebreak.

Check ID: <FontBakeryCheck:googlefonts/description/eof_linebreak>
⚠️ METADATA.pb
  • ⚠️ WARN

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

    [code: missing-eof-linebreak]
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

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

    [code: missing-eof-linebreak]

On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.

Check ID: <FontBakeryCheck:googlefonts/description/family_update>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo. Please consider mentioning note-worthy improvements made to the family recently.

    [code: description-not-updated]

DESCRIPTION.en_us.html must have more than 200 bytes.

Check ID: <FontBakeryCheck:googlefonts/description/min_length>
🔥 METADATA.pb
  • 🔥 FAIL

    DESCRIPTION.en_us.html must have size larger than 200 bytes.

    [code: too-short]

Shaping Checks

💥⏩⏩⏩

Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.

Check ID: <FontBakeryCheck:soft_dotted>
💥 Ponomar-Regular.ttf
  • 💥 ERROR

    Failed with ModuleNotFoundError: No module named 'shaperglot.checker'

      File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checkrunner.py", line 222, in _run_check
        subresults = list(subresults)
      File "/Users/simon/work/gf-dashboard/venv/lib/python3.13/site-packages/fontbakery/checks/soft_dotted.py", line 144, in check_soft_dotted
        from shaperglot.checker import Checker
    
    
    [code: failed-check]

Outline Checks

⚠️⚠️⚠️

Do any segments have colinear vectors?

Check ID: <FontBakeryCheck:outline_colinear_vectors>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    The following glyphs have colinear vectors:

    * u1F545.alt1 (U+E5D0): L<<510.0,802.0>--<485.0,778.0>> -> L<<485.0,778.0>--<465.0,761.0>>
    
    * u1F545.alt2 (U+E5D1): L<<269.0,462.0>--<271.0,653.0>> -> L<<271.0,653.0>--<271.0,659.0>>
    
    * u1F545.alt7 (U+E5D6): L<<172.0,600.0>--<196.0,602.0>> -> L<<196.0,602.0>--<217.0,602.0>>
    
    * u1F545.alt7 (U+E5D6): L<<81.0,324.0>--<85.0,371.0>> -> L<<85.0,371.0>--<90.0,400.0>>
    
    * u1F545.alt8 (U+E5D7): L<<375.0,205.0>--<398.0,262.0>> -> L<<398.0,262.0>--<415.0,315.0>>
    
    * u1F545.alt8 (U+E5D7): L<<452.0,306.0>--<446.0,246.0>> -> L<<446.0,246.0>--<435.0,176.0>>
    
    * u1F545.alt8 (U+E5D7): L<<457.0,365.0>--<452.0,306.0>> -> L<<452.0,306.0>--<446.0,246.0>>
    
    * u1F545.alt8 (U+E5D7): L<<504.0,276.0>--<497.0,339.0>> -> L<<497.0,339.0>--<493.0,379.0>>
    
    * u1F545.alt8 (U+E5D7): L<<517.0,208.0>--<504.0,276.0>> -> L<<504.0,276.0>--<497.0,339.0>>
    
    * u1F545.alt8 (U+E5D7): L<<726.0,285.0>--<742.0,348.0>> -> L<<742.0,348.0>--<754.0,415.0>>
    
    * u1F545.alt8 (U+E5D7): L<<742.0,348.0>--<754.0,415.0>> -> L<<754.0,415.0>--<767.0,464.0>>
    
    * u1F545.alt8 (U+E5D7): L<<886.0,436.0>--<902.0,364.0>> -> L<<902.0,364.0>--<921.0,269.0>>
    
    * uni0049.ss02 (U+F449): L<<494.0,280.0>--<494.0,222.0>> -> L<<494.0,222.0>--<499.0,128.0>>
    
    * uni005A (U+005A): L<<187.0,38.0>--<189.0,38.0>> -> L<<189.0,38.0>--<382.0,42.0>>
    
    * uni0074.ss02 (U+F474): L<<59.0,70.0>--<45.0,85.0>> -> L<<45.0,85.0>--<44.0,86.0>>
    
    * uni0304 (U+0304): L<<-295.0,575.0>--<-295.0,575.0>> -> L<<-295.0,575.0>--<-34.0,575.0>>
    
    * uni040C (U+040C): L<<586.0,180.0>--<586.0,130.0>> -> L<<586.0,130.0>--<585.0,91.0>>
    
    * uni040E (U+040E): L<<395.0,-93.0>--<393.0,-146.0>> -> L<<393.0,-146.0>--<393.0,-148.0>>
    
    * uni040E (U+040E): L<<430.0,471.0>--<395.0,-93.0>> -> L<<395.0,-93.0>--<393.0,-146.0>>
    
    * uni0423 (U+0423): L<<394.0,-94.0>--<392.0,-147.0>> -> L<<392.0,-147.0>--<392.0,-149.0>>
    
    * uni0423 (U+0423): L<<429.0,470.0>--<394.0,-94.0>> -> L<<394.0,-94.0>--<392.0,-147.0>>
    
    * uni044F (U+044F): L<<198.0,444.0>--<353.0,442.0>> -> L<<353.0,442.0>--<401.0,442.0>>
    
    * uni0458 (U+0458): L<<225.0,-266.0>--<228.0,291.0>> -> L<<228.0,291.0>--<228.0,431.0>>
    
    * uni0458.var (U+E0F5): L<<225.0,-266.0>--<228.0,291.0>> -> L<<228.0,291.0>--<228.0,431.0>>
    
    * uni04BB (U+04BB): L<<58.0,218.0>--<58.0,290.0>> -> L<<58.0,290.0>--<61.0,408.0>>
    
    * uni203B (U+203B): L<<295.0,340.0>--<339.0,383.0>> -> L<<339.0,383.0>--<382.0,425.0>>
    
    * uni2DE0 (U+2DE0): L<<-219.0,628.0>--<-215.0,663.0>> -> L<<-215.0,663.0>--<-210.0,690.0>>
    
    * uni2DE6 (U+2DE6): L<<-391.0,516.0>--<-391.0,532.0>> -> L<<-391.0,532.0>--<-390.0,552.0>>
    
    [code: found-colinear-vectors]

Do outlines contain any jaggy segments?

Check ID: <FontBakeryCheck:outline_jaggy_segments>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    The following glyphs have jaggy segments:

    * u1F312 (U+1F312): B<<468.0,49.0>-<442.0,33.0>-<425.0,33.0>>/B<<425.0,33.0>-<432.0,32.0>-<435.0,32.0>> = 8.13010235415596
    
    * u1F318 (U+1F318): B<<376.5,763.0>-<384.0,766.0>-<393.0,768.0>>/L<<393.0,768.0>--<379.0,768.0>> = 12.528807709151492
    
    * u1F377 (U+1F377): B<<466.5,415.5>-<489.0,424.0>-<507.0,431.0>>/B<<507.0,431.0>-<499.0,430.0>-<487.5,430.0>> = 14.12548915823142
    
    * u1F41F (U+1F41F): B<<516.0,308.0>-<543.0,314.0>-<730.0,332.0>>/B<<730.0,332.0>-<702.0,336.0>-<675.5,337.5>> = 13.62826507913694
    
    * u1F41F (U+1F41F): L<<833.0,445.0>--<914.0,405.0>>/B<<914.0,405.0>-<900.0,416.0>-<900.0,434.0>> = 11.875815566048908
    
    * uni263D (U+263D): B<<117.0,764.0>-<107.0,766.0>-<96.0,767.0>>/B<<96.0,767.0>-<110.0,763.0>-<128.5,749.0>> = 10.750966993188039
    
    * uni263D (U+263D): B<<124.5,28.5>-<113.0,20.0>-<106.0,20.0>>/B<<106.0,20.0>-<113.0,19.0>-<116.0,18.5>> = 8.13010235415596
    
    * uni263E (U+263E): B<<359.5,749.0>-<378.0,763.0>-<392.0,767.0>>/B<<392.0,767.0>-<382.0,766.0>-<372.0,764.0>> = 10.234802763423207
    
    * uni263E (U+263E): B<<372.0,18.5>-<375.0,19.0>-<382.0,20.0>>/B<<382.0,20.0>-<376.0,20.0>-<364.0,28.5>> = 8.13010235415596
    
    * uni2DF5 (U+2DF5): B<<25.0,604.5>-<30.0,618.0>-<37.0,638.0>>/B<<37.0,638.0>-<34.0,632.0>-<17.0,632.0>> = 7.2750049578891804
    
    * uni2DF50487 (U+F410): B<<25.0,604.5>-<30.0,618.0>-<37.0,638.0>>/B<<37.0,638.0>-<34.0,632.0>-<17.0,632.0>> = 7.2750049578891804
    
    * uniA656 (U+A656): B<<676.5,437.5>-<684.0,451.0>-<691.0,464.0>>/B<<691.0,464.0>-<677.0,447.0>-<659.5,433.0>> = 11.171704082337422
    
    [code: found-jaggy-segments]

Do outlines contain any semi-vertical or semi-horizontal lines?

Check ID: <FontBakeryCheck:outline_semi_vertical>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

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

    * onequarter (U+00BC): L<<216.0,635.0>--<215.0,361.0>>
    
    * u1F545.alt2 (U+E5D1): L<<172.0,761.0>--<173.0,450.0>>
    
    * u1F545.alt2 (U+E5D1): L<<173.0,404.0>--<175.0,0.0>>
    
    * u1F545.alt2 (U+E5D1): L<<690.0,761.0>--<691.0,438.0>>
    
    * u1F545.alt2 (U+E5D1): L<<691.0,341.0>--<692.0,0.0>>
    
    * uni004E (U+004E): L<<556.0,185.0>--<554.0,514.0>>
    
    * uni0054 (U+0054): L<<350.0,504.0>--<352.0,124.0>>
    
    * uni0065 (U+0065): L<<385.0,256.0>--<119.0,258.0>>
    
    * uni00D1 (U+00D1): L<<556.0,185.0>--<554.0,514.0>>
    
    * uni00E8 (U+00E8): L<<385.0,256.0>--<119.0,258.0>>
    
    * uni00E9 (U+00E9): L<<385.0,256.0>--<119.0,258.0>>
    
    * uni00EA (U+00EA): L<<385.0,256.0>--<119.0,258.0>>
    
    * uni00EB (U+00EB): L<<385.0,256.0>--<119.0,258.0>>
    
    * uni0458 (U+0458): L<<225.0,-266.0>--<228.0,291.0>>
    
    * uni0458.var (U+E0F5): L<<225.0,-266.0>--<228.0,291.0>>
    
    * uni04AF (U+04AF): L<<267.0,0.0>--<265.0,-280.0>>
    
    * uni052A (U+052A): L<<219.0,24.0>--<414.0,25.0>>
    
    * uni2DE0 (U+2DE0): L<<-237.0,710.0>--<-32.0,711.0>>
    
    [code: found-semi-vertical]

Font File Checks

🔥⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️

Check Google Fonts glyph coverage.

Check ID: <FontBakeryCheck:googlefonts/glyph_coverage>
🔥 Ponomar-Regular.ttf
  • 🔥 FAIL

    Missing required codepoints:

    - 0x2122 (TRADE MARK SIGN)
    
    [code: missing-codepoints]

Ensure fonts have ScriptLangTags declared on the 'meta' table.

Check ID: <FontBakeryCheck:googlefonts/meta/script_lang_tags>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

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

    [code: lacks-meta-table]

Checking OS/2 achVendID.

Check ID: <FontBakeryCheck:googlefonts/vendor_id>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    OS/2 VendorID value ' ' 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]

Check font follows the Google Fonts vertical metric schema

Check ID: <FontBakeryCheck:googlefonts/vertical_metrics>
⚠️ Ponomar-Regular.ttf
  • ⚠️ WARN

    We recommend the absolute sum of the hhea metrics should be between 1.2-1.5x of the font's upm. This font has 1.61x (1610)

    [code: bad-hhea-range]