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.
Summary
💥 ERROR | ☠ FATAL | 🔥 FAIL | ⚠️ WARN | ⏩ SKIP | ℹ️ INFO | ✅ PASS |
---|---|---|---|---|---|---|
0 | 0 | 5 | 11 | 88 | 6 | 126 |
0% | 0% | 2% | 5% | 37% | 3% | 53% |
Meaning of check results:
- 💥 An ERROR is something wrong with FontBakery itself, possibly a bug.
- ☠ A FATAL is an extremely severe issue that must be addressed immediately.
- 🔥 A FAIL is a problem with the font that must be fixed.
- ⚠️ A WARN is something that you should consider addressing.
- ℹ️ An INFO result simply prints something useful. Typically stats.
- ✅ A PASS means the font looks good for the given checking routine.
- ⏩ And a SKIP happens when the check does not apply to the given font.
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.2
OpenType Specification Checks
⚠️⏩⏩⏩⏩⏩⏩⏩Check GDEF mark glyph class doesn't have characters that are not marks.
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ 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+FBBA, U+FBBB, U+FBBD, U+FBBE, U+FBBF and U+FBC1
[code: non-mark-chars]
Universal Profile Checks
🔥🔥🔥⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️Check that glyph for U+0674 ARABIC LETTER HIGH HAMZA is not a mark.
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ WARN
The arabic letter high hamza (U+0674) should have roughly the same size the arabic letter hamza (U+0621) while raised above baseline, but a different glyph outline area was detected.
[code: glyph-area]
Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks.
🔥 NotoSansArabicUI[wdth,wght].ttf
-
🔥 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
"fourdotsabovear" is defined in GDEF as a mark (class 3).
[code: mark-in-gdef] -
🔥 FAIL
"fourdotsbelowar" 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
"ringar" is defined in GDEF as a mark (class 3).
[code: mark-in-gdef] -
🔥 FAIL
"tahbelowar" is defined in GDEF as a mark (class 3).
[code: mark-in-gdef]
EXPERIMENTAL CHECK - Since 2024/12/28
Check base characters have non-zero advance width.
🔥 NotoSansArabicUI[wdth,wght].ttf
-
🔥 FAIL
The following glyphs had zero advance width: - dotabovear (U+FBB2)
[code: zero-width-bases]- dotbelowar (U+FBB3) - twodotshorizontalabovear (U+FBB4) - twodotshorizontalbelowar (U+FBB5) - threedotsupabovear (U+FBB6) - threedotsupbelowar (U+FBB7) - threedotsdownabovear (U+FBB8) - threedotsdownbelowar (U+FBB9) - fourdotsabovear (U+FBBA) - fourdotsbelowar (U+FBBB) - twodotsverticalabovear (U+FBBD) - twodotsverticalbelowar (U+FBBE) - ringar (U+FBBF) - tahbelowar (U+FBC1)
Checking OS/2 usWinAscent & usWinDescent.
🔥 NotoSansArabicUI[wdth,wght].ttf
-
🔥 FAIL
OS/2.usWinDescent value should be equal or greater than 512, but got 293 instead
[code: descent]
Ensure files are not too large.
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ WARN
Font file is 1.0Mb; ideally it should be less than 1.0Mb
[code: large-font]
Detect any interpolation issues in the font.
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ WARN
Interpolation issues were found in the font:
[code: interpolation-issues]- Contour 2 start point differs in glyph 'uni08A5' between location wght=704,wdth=100 and location wght=900,wdth=100 - Contour 2 in glyph 'uni08A5': becomes underweight between wght=704,wdth=100 and wght=900,wdth=100. - Contour 3 start point differs in glyph 'uni08A5' between location wght=704,wdth=100 and location wght=900,wdth=100 - Contour 3 in glyph 'uni08A5': becomes underweight between wght=704,wdth=100 and wght=900,wdth=100. - Contour 2 start point differs in glyph 'uni08A5' between location wght=900,wdth=100 and location wght=100,wdth=62 - Contour 2 in glyph 'uni08A5': becomes underweight between wght=900,wdth=100 and wght=100,wdth=62. - Contour 3 start point differs in glyph 'uni08A5' between location wght=900,wdth=100 and location wght=100,wdth=62 - Contour 3 in glyph 'uni08A5': becomes underweight between wght=900,wdth=100 and wght=100,wdth=62. - Contour 2 start point differs in glyph 'uni08A5' between location wght=704,wdth=62 and location wght=900,wdth=62 - Contour 2 in glyph 'uni08A5': becomes underweight between wght=704,wdth=62 and wght=900,wdth=62. - Contour 3 start point differs in glyph 'uni08A5' between location wght=704,wdth=62 and location wght=900,wdth=62 - Contour 3 in glyph 'uni08A5': becomes underweight between wght=704,wdth=62 and wght=900,wdth=62. - Contour 2 start point differs in glyph 'uni08A5.fina' between location wght=704,wdth=100 and location wght=900,wdth=100 - Contour 2 in glyph 'uni08A5.fina': becomes underweight between wght=704,wdth=100 and wght=900,wdth=100. - Contour 3 start point differs in glyph 'uni08A5.fina' between location wght=704,wdth=100 and location wght=900,wdth=100 - Contour 3 in glyph 'uni08A5.fina': becomes underweight between wght=704,wdth=100 and wght=900,wdth=100. - Contour 2 start point differs in glyph 'uni08A5.fina' between location wght=900,wdth=100 and location wght=100,wdth=62 - Contour 2 in glyph 'uni08A5.fina': becomes underweight between wght=900,wdth=100 and wght=100,wdth=62. - Contour 3 start point differs in glyph 'uni08A5.fina' between location wght=900,wdth=100 and location wght=100,wdth=62 - Contour 3 in glyph 'uni08A5.fina': becomes underweight between wght=900,wdth=100 and wght=100,wdth=62. - Contour 2 start point differs in glyph 'uni08A5.fina' between location wght=704,wdth=62 and location wght=900,wdth=62 - Contour 2 in glyph 'uni08A5.fina': becomes underweight between wght=704,wdth=62 and wght=900,wdth=62. - Contour 3 start point differs in glyph 'uni08A5.fina' between location wght=704,wdth=62 and location wght=900,wdth=62 - Contour 3 in glyph 'uni08A5.fina': becomes underweight between wght=704,wdth=62 and wght=900,wdth=62. - Contour 5 start point differs in glyph 'uniFD3E' between location wght=100,wdth=100 and location wght=704,wdth=100 - Contour 5 in glyph 'uniFD3E': becomes underweight between wght=100,wdth=100 and wght=704,wdth=100. - Contour 5 start point differs in glyph 'uniFD3E' between location wght=704,wdth=100 and location wght=900,wdth=100 - Contour 5 in glyph 'uniFD3E': becomes underweight between wght=704,wdth=100 and wght=900,wdth=100. - Contour 5 start point differs in glyph 'uniFD3E' between location wght=100,wdth=62 and location wght=704,wdth=62 - Contour 5 in glyph 'uniFD3E': becomes underweight between wght=100,wdth=62 and wght=704,wdth=62. - Contour 5 start point differs in glyph 'uniFD3E' between location wght=704,wdth=62 and location wght=900,wdth=62 - Contour 5 in glyph 'uniFD3E': becomes underweight between wght=704,wdth=62 and wght=900,wdth=62.
Check font contains no unreachable glyphs
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ WARN
The following glyphs could not be reached by codepoint or substitution rules:
[code: unreachable-glyphs]- uni06060607.pt - uni06440622.isol - uni06440623.isol - uni06440625.isol - uni06440627.isol - uni06440671.001 - uni06440671.isol - uni06440672.isol - uni06440673.isol - uni064406D2.fina - uni06B50627.isol - uni06B60627.isol - uni06B70627.isol - uni06B80627.isol - uniFDFD.001
Glyph names are all valid?
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ WARN
The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit: behThreedotsupbelowVabovear.fina, behThreedotsupbelowVabovear.init, behThreedotsupbelowVabovear.medi, dalTwodotsverticalbelowTahabovear.fina, seenThreedotsbelowthreedotsar.fina, seenThreedotsbelowthreedotsar.init and seenThreedotsbelowthreedotsar.medi
[code: legacy-long-names]
Article Checks
⚠️Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ WARN
Family metadata at fonts/NotoSansArabicUI/googlefonts/variable-ttf does not have an article.
[code: lacks-article]
Metadata Checks
⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩Check for codepoints not covered by METADATA subsets.
⚠️ NotoSansArabicUI[wdth,wght].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+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, coptic, math, cherokee
- U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
- U+0307 COMBINING DOT ABOVE: try adding one of: syriac, coptic, hebrew, malayalam, old-permic, tai-le, tifinagh, todhri, duployan, canadian-aboriginal, math
- 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+0326 COMBINING COMMA BELOW: try adding math
- U+0327 COMBINING CEDILLA: try adding math
- U+0328 COMBINING OGONEK: not included in any glyphset definition
- U+034F COMBINING GRAPHEME JOINER: not included in any glyphset definition
- U+08E2 ARABIC DISPUTED END OF AYAH: not included in any glyphset definition
- U+200F RIGHT-TO-LEFT MARK: try adding one of: syriac, hebrew, phags-pa, nko, thaana
- U+25CC DOTTED CIRCLE: try adding one of: mahajani, modi, warang-citi, javanese, telugu, adlam, sundanese, nko, duployan, batak, myanmar, coptic, mandaic, bassa-vah, kaithi, tifinagh, ahom, bhaiksuki, tibetan, tai-viet, zanabazar-square, masaram-gondi, gurmukhi, mende-kikakui, limbu, syloti-nagri, devanagari, lao, lepcha, sogdian, khudawadi, tamil, caucasian-albanian, hanunoo, soyombo, new-tai-lue, mongolian, meetei-mayek, tagalog, buginese, thaana, armenian, kharoshthi, wancho, cham, tai-tham, tai-le, manichaean, osage, music, dogra, takri, rejang, phags-pa, siddham, math, syriac, malayalam, sinhala, miao, chakma, balinese, elbasan, hebrew, newa, old-permic, tirhuta, hanifi-rohingya, kannada, canadian-aboriginal, kayah-li, bengali, khojki, thai, symbols, brahmi, gunjala-gondi, sharada, oriya, psalter-pahlavi, khmer, grantha, tagbanwa, marchen, saurashtra, buhid, yi, gujarati, pahawh-hmong
Or you can add the above codepoints to one of the subsets supported by the font:
[code: unreachable-subsetting]arabic
,latin
,latin-ext
Glyphset Checks
⚠️Shapes languages in all GF glyphsets.
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ WARN
GF_TransLatin_Arabic glyphset:
WARN messages Languages Auxiliary orthography codepoints: Shaper didn't attach uni064E to uni25CC when shaping the text '◌َ' Shaper didn't attach uni0650 to uni25CC when shaping the text '◌ِ' Shaper didn't attach uni064F to uni25CC when shaping the text '◌ُ' Shaper didn't attach uni0652 to uni25CC when shaping the text '◌ْ' Shaper didn't attach uni0656 to the base glyph when shaping the text '◌ٖ' Shaper didn't attach uni0670 to uni25CC when shaping the text '◌ٰ' fa_Arab (Persian) and fa_Arab (Persian) Auxiliary orthography codepoints: Shaper didn't attach uni064B to uni25CC when shaping the text '◌ً' Shaper didn't attach uni064C to uni25CC when shaping the text '◌ٌ' Shaper didn't attach uni064D to uni25CC when shaping the text '◌ٍ' Shaper didn't attach uni064E to uni25CC when shaping the text '◌َ' Shaper didn't attach uni064F to uni25CC when shaping the text '◌ُ' Shaper didn't attach uni0650 to uni25CC when shaping the text '◌ِ' Shaper didn't attach uni0651 to uni25CC when shaping the text '◌ّ' Shaper didn't attach uni0652 to uni25CC when shaping the text '◌ْ' Shaper didn't attach uni0654 to uni25CC when shaping the text '◌ٔ' Shaper didn't attach uni0656 to the base glyph when shaping the text '◌ٖ' Shaper didn't attach uni0657 to the base glyph when shaping the text '◌ٗ' Shaper didn't attach uni0658 to the base glyph when shaping the text '◌٘' Shaper didn't attach uni0670 to uni25CC when shaping the text '◌ٰ' ur_Arab (Urdu) and ur_Arab (Urdu) Auxiliary orthography codepoints: Shaper didn't attach uni064B to uni25CC when shaping the text '◌ً' Shaper didn't attach uni064C to uni25CC when shaping the text '◌ٌ' Shaper didn't attach uni064D to uni25CC when shaping the text '◌ٍ' Shaper didn't attach uni064E to uni25CC when shaping the text '◌َ' Shaper didn't attach uni064F to uni25CC when shaping the text '◌ُ' Shaper didn't attach uni0650 to uni25CC when shaping the text '◌ِ' Shaper didn't attach uni0651 to uni25CC when shaping the text '◌ّ' Shaper didn't attach uni0652 to uni25CC when shaping the text '◌ْ' ckb_Arab (Central Kurdish) Auxiliary orthography codepoints: Shaper didn't attach uni064E to uni25CC when shaping the text '◌َ' Shaper didn't attach uni064F to uni25CC when shaping the text '◌ُ' Shaper didn't attach uni0650 to uni25CC when shaping the text '◌ِ' sd_Arab (Sindhi) Auxiliary orthography codepoints: The following auxiliary characters are missing from the font: Ŀ The following auxiliary characters are missing from the font: ŀ ca_Latn (Catalan) Auxiliary orthography codepoints: The following auxiliary characters are missing from the font: ſ de_Latn (German) and fr_Latn (French) Auxiliary orthography codepoints: The following auxiliary characters are missing from the font: ʻ en_Latn (English) Auxiliary orthography codepoints: The following auxiliary characters are missing from the font: Ǥ The following auxiliary characters are missing from the font: Ŋ The following auxiliary characters are missing from the font: Ŧ The following auxiliary characters are missing from the font: Ʒ The following auxiliary characters are missing from the font: Ǯ The following auxiliary characters are missing from the font: ǥ The following auxiliary characters are missing from the font: ŋ The following auxiliary characters are missing from the font: ŧ The following auxiliary characters are missing from the font: ʒ The following auxiliary characters are missing from the font: ǯ fi_Latn (Finnish) Auxiliary orthography codepoints: The following auxiliary characters are missing from the font: Ŋ The following auxiliary characters are missing from the font: Ŧ The following auxiliary characters are missing from the font: ŋ The following auxiliary characters are missing from the font: ŧ nb_Latn (Norwegian Bokmål) Auxiliary orthography codepoints: The following auxiliary characters are missing from the font: IJ The following auxiliary characters are missing from the font: ij nl_Latn (Dutch)
Description Checks
🔥⏩⏩⏩⏩⏩⏩⏩⏩Check for presence of an ARTICLE.en_us.html file
🔥 NotoSansArabicUI[wdth,wght].ttf
-
🔥 FAIL
This is a Noto font but it lacks an ARTICLE.en_us.html file.
[code: missing-article] -
🔥 FAIL
This is a Noto font but it lacks a DESCRIPTION.en_us.html file.
[code: missing-description]
Shaping Checks
🔥⚠️⏩⏩⏩Ensure dotted circle glyph is present and can attach marks.
🔥 NotoSansArabicUI[wdth,wght].ttf
-
🔥 FAIL
The following glyphs could not be attached to the dotted circle glyph:
[code: unattached-dotted-circle-marks]- acutecomb - dotabovear - dotbelowar - fourdotsabovear - fourdotsbelowar - gravecomb - ringar - tahbelowar - threedotsdownabovear - threedotsdownbelowar - threedotsupabovear - threedotsupbelowar - tildecomb - twodotshorizontalabovear - twodotshorizontalbelowar - twodotsverticalabovear - twodotsverticalbelowar - uni0302 - uni0304 - uni0306 - uni0307 - uni0308 - uni030A - uni030B - uni030C - uni0326 - uni0327 - uni0328 - uni0612 - uni0613 - uni0614 - uni0615 - uni0616 - uni0617 - uni0618 - uni0619 - uni061A - uni064B - uni064C - uni064D - uni064E - uni064F - uni0650 - uni0651 - uni0652 - uni0653 - uni0654 - uni0655 - uni0656 - uni0657 - uni0658 - uni0659 - uni065A - uni065B - uni065C - uni065D - uni065E - uni065F - uni0670 - uni06DC - uni06DF - uni06E0 - uni06E1 - uni06E2 - uni06E3 - uni06E4 - uni06E7 - uni06E8 - uni06EA - uni06EB - uni06EC - uni06ED - uni08D3 - uni08D4 - uni08D5 - uni08D5.1 - uni08D6 - uni08D6.1 - uni08D7 - uni08D8 - uni08D9 - uni08DA - uni08DB - uni08DC - uni08DD - uni08DE - uni08DF - uni08E0 - uni08E1 - uni08E3 - uni08E4 - uni08E5 - uni08E6 - uni08E7 - uni08E8 - uni08E9 - uni08EA - uni08EB - uni08EC - uni08ED - uni08EE - uni08EF - uni08F0 - uni08F1 - uni08F2 - uni08F3 - uni08F4 - uni08F5 - uni08F6 - uni08F7 - uni08F8 - uni08F9 - uni08FA - uni08FB - uni08FC - uni08FD - uni08FE - uni08FF
Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ 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: į̆ į̇ į̈ į̊ į̋ į̦̀ į̦́ į̦̂ į̦̃ į̦̄ į̦̆ į̦̇ į̦̈ į̦̊ į̦̋ į̦̌ į̧̀ į̧́ į̧̂ į̧̃
[code: soft-dotted]
Font File Checks
⚠️⏩⏩⏩⏩⏩ℹ️ℹ️ℹ️Ensure fonts have ScriptLangTags declared on the 'meta' table.
⚠️ NotoSansArabicUI[wdth,wght].ttf
-
⚠️ WARN
This font file does not have a 'meta' table.
[code: lacks-meta-table]