googlefonts / praise-script

Praise Script fonts
SIL Open Font License 1.1
2 stars 3 forks source link

QA Report #11

Closed vv-monsalve closed 1 year ago

vv-monsalve commented 2 years ago

Hi @lilasymons,

After merging the PR I've pulled the latest files, and here are some first notes from the QA process:

Glyphs changes

Overall the changes look good! Some mark position has improved, and fractions are more noticeable firsthand.

Praise-Glyphs-ba Desktop_Windows_10_chrome_71 0_

Building the fonts

vv-monsalve commented 2 years ago

This is the Fontbakery report. The reported fails don't apply for now.

Most important would be to pay attention to the Warns (display the triangle mark in the report to inspect the details):

Fontbakery report

Fontbakery version: 0.8.10

[10] Praise-Regular.ttf
🔥 FAIL: Check Google Fonts glyph coverage. (com.google.fonts/check/glyph_coverage)
> >Google Fonts expects that fonts in its collection support at least the minimal set of characters defined in the `GF-latin-core` glyph-set. > * 🔥 **FAIL** Missing required codepoints: - 0x0132 (LATIN CAPITAL LIGATURE IJ) - And 0x0133 (LATIN SMALL LIGATURE IJ) [code: missing-codepoints]
🔥 FAIL: Version number has increased since previous release on Google Fonts? (com.google.fonts/check/version_bump)
* 🔥 **FAIL** Version number 1.100006103515625 is equal to version on Google Fonts. * 🔥 **FAIL** Version number 1.100006103515625 is equal to version on Google Fonts GitHub repo.
WARN: Glyphs are similiar to Google Fonts version? (com.google.fonts/check/production_glyphs_similarity)
* ⚠ **WARN** Following glyphs differ greatly from Google Fonts version: * AE.ss01 * AE.ss03 * AE.ss04 * AE.ss05 * AEacute.ss01 * AEacute.ss03 * AEacute.ss04 * AEacute.ss05 * D * Dcaron * Dcroat * Dcroat.ss04 * Eth * Eth.ss04 * Hbar * Hbar.ss02 * Hbar.ss05 * Hbar.titl * Ldot.titl * Lslash * Lslash.ss04 * OE.ss01 * OE.ss03 * OE.ss04 * OE.ss05 * Oslash.ss01 * Oslash.ss04 * Oslash.ss05 * Oslashacute.ss01 * Oslashacute.ss04 * Oslashacute.ss05 * P.ss02 * P.ss04 * Thorn * V * backslash * colonmonetary * currency * dcaron * dcroat.ss01 * dcroat.ss05 * dollar * dong * dotlessi.ss05 * dotlessi.titl * ellipsis * f_f_i.ss01 * f_f_i.ss03 * f_f_i.titl * fi.ss01 * fi.titl * fl.ss02 * fraction * g.ornm * h.ss05 * hbar.ss05 * hcircumflex.ss05 * i.loclTRK.ss05 * i.loclTRK.titl * i.titl * iacute.ss05 * iacute.titl * ibreve.ss05 * ibreve.titl * icircumflex.ss05 * icircumflex.titl * idieresis.ss05 * idieresis.titl * igrave.ss05 * igrave.titl * imacron.ss05 * imacron.titl * iogonek.ss05 * iogonek.titl * itilde.ss05 * itilde.titl * k * lcaron * lcaron.ss01 * lcaron.ss04 * ldot.titl * logicalnot * lslash.ss01 * lslash.ss03 * lslash.ss04 * lslash.ss05 * lslash.titl * multiply * oe * oe.ss02 * oe.ss03 * oe.titl * onehalf * onequarter * oslash.titl * oslashacute.titl * plus * plusminus * slash * t_h.ss01 * t_h.ss05 * tbar * tbar.ss02 * tbar.ss03 * tbar.ss04 * tbar.ss05 * tbar.titl * thorn.ss02 * thorn.titl * threequarters * uni0137 * uni01C5 * uni01C6.ss03 * uni01C7.ss01 * uni01C7.ss03 * uni01C7.ss05 * uni01C8.ss01 * uni01C8.ss04 * uni01C8.ss05 * uni01CA.ss03 * uni01CB.ss05 * uni01CC.ss05 * uni01D0.ss05 * uni01D0.titl * uni0209.ss05 * uni0209.titl * uni020B.ss05 * uni020B.titl * uni1EC9.ss05 * uni1EC9.titl * uni1ECB.titl * uni2052 * uni20A6 * uni20A9 * uni20B1 * uni20B2 * uni20B5 and uni2215
WARN: Are there caret positions declared for every ligature? (com.google.fonts/check/ligature_carets)
> >All ligatures in a font must have corresponding caret (text cursor) positions defined in the GDEF table, otherwhise, users may experience issues with caret rendering. > >If using GlyphsApp or UFOs, ligature carets can be defined as anchors with names starting with 'caret_'. These can be compiled with fontmake as of version v2.4.0. > * ⚠ **WARN** This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: Ensure fonts have ScriptLangTags declared on the 'meta' table. (com.google.fonts/check/meta/script_lang_tags)
> >The OpenType 'meta' table originated at Apple. Microsoft added it to OT with just two DataMap records: > >- dlng: comma-separated ScriptLangTags that indicate which scripts, or languages and scripts, with possible variants, the font is designed for. > >- slng: comma-separated ScriptLangTags that indicate which scripts, or languages and scripts, with possible variants, the font supports. > >The slng structure is intended to describe which languages and scripts the font overall supports. For example, a Traditional Chinese font that also contains Latin characters, can indicate Hant,Latn, showing that it supports Hant, the Traditional Chinese variant of the Hani script, and it also supports the Latn script. > >The dlng structure is far more interesting. A font may contain various glyphs, but only a particular subset of the glyphs may be truly "leading" in the design, while other glyphs may have been included for technical reasons. Such a Traditional Chinese font could only list Hant there, showing that it’s designed for Traditional Chinese, but the font would omit Latn, because the developers don’t think the font is really recommended for purely Latin-script use. > >The tags used in the structures can comprise just script, or also language and script. For example, if a font has Bulgarian Cyrillic alternates in the locl feature for the cyrl BGR OT languagesystem, it could also indicate in dlng explicitly that it supports bul-Cyrl. (Note that the scripts and languages in meta use the ISO language and script codes, not the OpenType ones). > >This check ensures that the font has the meta table containing the slng and dlng structures. > >All families in the Google Fonts collection should contain the 'meta' table. Windows 10 already uses it when deciding on which fonts to fall back to. The Google Fonts API and also other environments could use the data for smarter filtering. Most importantly, those entries should be added to the Noto fonts. > >In the font making process, some environments store this data in external files already. But the meta table provides a convenient way to store this inside the font file, so some tools may add the data, and unrelated tools may read this data. This makes the solution much more portable and universal. > * ⚠ **WARN** This font file does not have a 'meta' table. [code: lacks-meta-table]
WARN: Check font contains no unreachable glyphs (com.google.fonts/check/unreachable_glyphs)
> >Glyphs are either accessible directly through Unicode codepoints or through substitution rules. > >In Color Fonts, glyphs are also referenced by the COLR table. > >Any glyphs not accessible by either of these means are redundant and serve only to increase the font's file size. > * ⚠ **WARN** The following glyphs could not be reached by codepoint or substitution rules: - AE.ss02 - AEacute.ss02 - AEacute.ss03 - AEacute.ss04 - AEacute.ss05 - Aacute.ss02 - Aacute.ss03 - Aacute.ss04 - Aacute.ss05 - Abreve.ss02 - Abreve.ss03 - Abreve.ss04 - Abreve.ss05 - Acircumflex.ss02 - Acircumflex.ss03 - Acircumflex.ss04 - Acircumflex.ss05 - Adieresis.ss02 - Adieresis.ss03 - Adieresis.ss04 - Adieresis.ss05 - Agrave.ss02 - Agrave.ss03 - Agrave.ss04 - Agrave.ss05 - Amacron.ss02 - Amacron.ss03 - Amacron.ss04 - Amacron.ss05 - Aogonek.ss02 - Aogonek.ss03 - Aogonek.ss04 - Aogonek.ss05 - Aring.ss02 - Aring.ss03 - Aring.ss04 - Aring.ss05 - Aringacute.ss02 - Aringacute.ss03 - Aringacute.ss04 - Aringacute.ss05 - Atilde.ss02 - Atilde.ss03 - Atilde.ss04 - Atilde.ss05 - B.ss02 - B.ss03 - B.ss04 - B.ss05 - Cacute.ss02 - Cacute.ss03 - Cacute.ss04 - Cacute.ss05 - Ccaron.ss02 - Ccaron.ss03 - Ccaron.ss04 - Ccaron.ss05 - Ccedilla.ss02 - Ccedilla.ss03 - Ccedilla.ss04 - Ccedilla.ss05 - Ccircumflex.ss02 - Ccircumflex.ss03 - Ccircumflex.ss04 - Ccircumflex.ss05 - Cdotaccent.ss02 - Cdotaccent.ss03 - Cdotaccent.ss04 - Cdotaccent.ss05 - D.ss02 - D.ss03 - D.ss04 - D.ss05 - Dcaron.ss02 - Dcaron.ss03 - Dcaron.ss04 - Dcaron.ss05 - Dcroat.ss02 - Dcroat.ss03 - Dcroat.ss04 - Dcroat.ss05 - Eacute.ss02 - Eacute.ss03 - Eacute.ss04 - Eacute.ss05 - Ebreve.ss02 - Ebreve.ss03 - Ebreve.ss04 - Ebreve.ss05 - Ecaron.ss02 - Ecaron.ss03 - Ecaron.ss04 - Ecaron.ss05 - Ecircumflex.ss02 - Ecircumflex.ss03 - Ecircumflex.ss04 - Ecircumflex.ss05 - Edieresis.ss02 - Edieresis.ss03 - Edieresis.ss04 - Edieresis.ss05 - Edotaccent.ss02 - Edotaccent.ss03 - Edotaccent.ss04 - Edotaccent.ss05 - Egrave.ss02 - Egrave.ss03 - Egrave.ss04 - Egrave.ss05 - Emacron.ss02 - Emacron.ss03 - Emacron.ss04 - Emacron.ss05 - Eng.ss02 - Eng.ss03 - Eng.ss04 - Eng.ss05 - Eogonek.ss02 - Eogonek.ss03 - Eogonek.ss04 - Eogonek.ss05 - F.ss02 - F.ss03 - F.ss04 - F.ss05 - Gbreve.ss02 - Gbreve.ss03 - Gbreve.ss04 - Gbreve.ss05 - Gcaron.ss02 - Gcaron.ss03 - Gcaron.ss04 - Gcaron.ss05 - Gcircumflex.ss02 - Gcircumflex.ss03 - Gcircumflex.ss04 - Gcircumflex.ss05 - Gdotaccent.ss02 - Gdotaccent.ss03 - Gdotaccent.ss04 - Gdotaccent.ss05 - Hbar.ss02 - Hbar.ss03 - Hbar.ss04 - Hbar.ss05 - Hcircumflex.ss02 - Hcircumflex.ss03 - Hcircumflex.ss04 - Hcircumflex.ss05 - Iacute.ss02 - Iacute.ss03 - Iacute.ss04 - Iacute.ss05 - Ibreve.ss02 - Ibreve.ss03 - Ibreve.ss04 - Ibreve.ss05 - Icircumflex.ss02 - Icircumflex.ss03 - Icircumflex.ss04 - Icircumflex.ss05 - Idieresis.ss02 - Idieresis.ss03 - Idieresis.ss04 - Idieresis.ss05 - Idotaccent.ss02 - Idotaccent.ss03 - Idotaccent.ss04 - Idotaccent.ss05 - Igrave.ss02 - Igrave.ss03 - Igrave.ss04 - Igrave.ss05 - Imacron.ss02 - Imacron.ss03 - Imacron.ss04 - Imacron.ss05 - Iogonek.ss02 - Iogonek.ss03 - Iogonek.ss04 - Iogonek.ss05 - Itilde.ss02 - Itilde.ss03 - Itilde.ss04 - Itilde.ss05 - Jcircumflex.ss02 - Jcircumflex.ss03 - Jcircumflex.ss04 - Jcircumflex.ss05 - Lacute.ss02 - Lacute.ss03 - Lacute.ss04 - Lacute.ss05 - Lcaron.ss02 - Lcaron.ss03 - Lcaron.ss04 - Lcaron.ss05 - Ldot.ss02 - Ldot.ss03 - Ldot.ss04 - Ldot.ss05 - Lslash.ss02 - Lslash.ss03 - Lslash.ss04 - Lslash.ss05 - M.ss02 - M.ss03 - M.ss04 - M.ss05 - NULL - Nacute.ss02 - Nacute.ss03 - Nacute.ss04 - Nacute.ss05 - Ncaron.ss02 - Ncaron.ss03 - Ncaron.ss04 - Ncaron.ss05 - Ntilde.ss02 - Ntilde.ss03 - Ntilde.ss04 - Ntilde.ss05 - OE.ss02 - OE.ss03 - OE.ss04 - OE.ss05 - Oacute.ss02 - Oacute.ss03 - Oacute.ss04 - Oacute.ss05 - Obreve.ss02 - Obreve.ss03 - Obreve.ss04 - Obreve.ss05 - Ocircumflex.ss02 - Ocircumflex.ss03 - Ocircumflex.ss04 - Ocircumflex.ss05 - Odieresis.ss02 - Odieresis.ss03 - Odieresis.ss04 - Odieresis.ss05 - Ograve.ss02 - Ograve.ss03 - Ograve.ss04 - Ograve.ss05 - Ohorn.ss02 - Ohorn.ss03 - Ohorn.ss04 - Ohorn.ss05 - Ohungarumlaut.ss02 - Ohungarumlaut.ss03 - Ohungarumlaut.ss04 - Ohungarumlaut.ss05 - Omacron.ss02 - Omacron.ss03 - Omacron.ss04 - Omacron.ss05 - Oslash.ss02 - Oslash.ss05 - Oslashacute.ss02 - Oslashacute.ss03 - Oslashacute.ss04 - Oslashacute.ss05 - Otilde.ss02 - Otilde.ss03 - Otilde.ss04 - Otilde.ss05 - P.ss02 - P.ss03 - P.ss04 - P.ss05 - Q.ss02 - Q.ss03 - Q.ss04 - Q.ss05 - Racute.ss02 - Racute.ss03 - Racute.ss04 - Racute.ss05 - Rcaron.ss02 - Rcaron.ss03 - Rcaron.ss04 - Rcaron.ss05 - Sacute.ss02 - Sacute.ss03 - Sacute.ss04 - Sacute.ss05 - Scaron.ss02 - Scaron.ss03 - Scaron.ss04 - Scaron.ss05 - Scedilla.ss02 - Scedilla.ss03 - Scedilla.ss04 - Scedilla.ss05 - Scircumflex.ss02 - Scircumflex.ss03 - Scircumflex.ss04 - Scircumflex.ss05 - Tbar.ss02 - Tbar.ss03 - Tbar.ss04 - Tbar.ss05 - Tcaron.ss02 - Tcaron.ss03 - Tcaron.ss04 - Tcaron.ss05 - Thorn.ss02 - Thorn.ss03 - Thorn.ss04 - Thorn.ss05 - Uacute.ss02 - Uacute.ss03 - Uacute.ss04 - Uacute.ss05 - Ubreve.ss02 - Ubreve.ss03 - Ubreve.ss04 - Ubreve.ss05 - Ucircumflex.ss02 - Ucircumflex.ss03 - Ucircumflex.ss04 - Ucircumflex.ss05 - Udieresis.ss02 - Udieresis.ss03 - Udieresis.ss04 - Udieresis.ss05 - Ugrave.ss02 - Ugrave.ss03 - Ugrave.ss04 - Ugrave.ss05 - Uhorn.ss02 - Uhorn.ss03 - Uhorn.ss04 - Uhorn.ss05 - Uhungarumlaut.ss02 - Uhungarumlaut.ss03 - Uhungarumlaut.ss04 - Uhungarumlaut.ss05 - Umacron.ss02 - Umacron.ss03 - Umacron.ss04 - Umacron.ss05 - Uogonek.ss02 - Uogonek.ss03 - Uogonek.ss04 - Uogonek.ss05 - Uring.ss02 - Uring.ss03 - Uring.ss04 - Uring.ss05 - Utilde.ss02 - Utilde.ss03 - Utilde.ss04 - Utilde.ss05 - V.ss02 - V.ss03 - V.ss04 - V.ss05 - Wacute.ss02 - Wacute.ss03 - Wacute.ss04 - Wacute.ss05 - Wcircumflex.ss02 - Wcircumflex.ss03 - Wcircumflex.ss04 - Wcircumflex.ss05 - Wdieresis.ss02 - Wdieresis.ss03 - Wdieresis.ss04 - Wdieresis.ss05 - Wgrave.ss02 - Wgrave.ss03 - Wgrave.ss04 - Wgrave.ss05 - X.ss02 - X.ss03 - X.ss04 - X.ss05 - Yacute.ss02 - Yacute.ss03 - Yacute.ss04 - Yacute.ss05 - Ycircumflex.ss02 - Ycircumflex.ss03 - Ycircumflex.ss04 - Ycircumflex.ss05 - Ydieresis.ss02 - Ydieresis.ss03 - Ydieresis.ss04 - Ydieresis.ss05 - Ygrave.ss02 - Ygrave.ss03 - Ygrave.ss04 - Ygrave.ss05 - Zacute.ss02 - Zacute.ss03 - Zacute.ss04 - Zacute.ss05 - Zcaron.ss02 - Zcaron.ss03 - Zcaron.ss04 - Zcaron.ss05 - Zdotaccent.ss02 - Zdotaccent.ss03 - Zdotaccent.ss04 - Zdotaccent.ss05 - aacute.ss02 - aacute.ss04 - aacute.ss05 - abreve.ss02 - abreve.ss04 - abreve.ss05 - acircumflex.ss02 - acircumflex.ss04 - acircumflex.ss05 - adieresis.ss02 - adieresis.ss04 - adieresis.ss05 - aeacute.ss02 - aeacute.ss04 - aeacute.ss05 - agrave.ss02 - agrave.ss04 - agrave.ss05 - amacron.ss02 - amacron.ss04 - amacron.ss05 - ampersand.ss02 - ampersand.ss03 - aogonek.ss02 - aogonek.ss04 - aogonek.ss05 - aring.ss02 - aring.ss04 - aring.ss05 - aringacute.ss02 - aringacute.ss04 - aringacute.ss05 - at.ss05 - atilde.ss02 - atilde.ss04 - atilde.ss05 - bullet.1 - bullet.2 - bullet.3 - bullet.4 - bullet.5 - bullet.6 - bullet.7 - bullet.8 - cacute.ss02 - cacute.ss04 - cacute.ss05 - ccaron.ss02 - ccaron.ss04 - ccaron.ss05 - ccedilla.ss02 - ccedilla.ss04 - ccedilla.ss05 - ccircumflex.ss02 - ccircumflex.ss04 - ccircumflex.ss05 - cdotaccent.ss02 - cdotaccent.ss04 - cdotaccent.ss05 - dcaron.ss02 - dcaron.ss03 - dcaron.ss04 - dcaron.ss05 - dcroat.ss02 - dcroat.ss03 - dcroat.ss04 - dcroat.ss05 - eacute.ss02 - eacute.ss04 - eacute.ss05 - ebreve.ss02 - ebreve.ss04 - ebreve.ss05 - ecaron.ss02 - ecaron.ss04 - ecaron.ss05 - ecircumflex.ss02 - ecircumflex.ss04 - ecircumflex.ss05 - edieresis.ss02 - edieresis.ss04 - edieresis.ss05 - edotaccent.ss02 - edotaccent.ss04 - edotaccent.ss05 - egrave.ss02 - egrave.ss04 - egrave.ss05 - eight.lf - eight.ss02 - eight.ss03 - eight.ss04 - eight.ss05 - emacron.ss02 - emacron.ss04 - emacron.ss05 - eng.ss02 - eng.ss03 - eng.ss04 - eng.ss05 - eogonek.ss02 - eogonek.ss04 - eogonek.ss05 - f_f.ss02 - f_f.ss03 - f_f.ss04 - f_f.ss05 - f_f_i.ss02 - f_f_i.ss03 - f_f_i.ss04 - f_f_i.ss05 - f_f_l.ss02 - f_f_l.ss03 - f_f_l.ss04 - f_f_l.ss05 - fi.ss02 - fi.ss03 - fi.ss04 - fi.ss05 - five.lf - five.ss02 - five.ss03 - five.ss04 - five.ss05 - fl.ss02 - fl.ss03 - fl.ss04 - fl.ss05 - four.lf - four.ss02 - four.ss03 - four.ss04 - four.ss05 - gbreve.ss02 - gbreve.ss03 - gbreve.ss04 - gbreve.ss05 - gcaron.ss02 - gcaron.ss03 - gcaron.ss04 - gcaron.ss05 - gcircumflex.ss02 - gcircumflex.ss03 - gcircumflex.ss04 - gcircumflex.ss05 - gdotaccent.ss02 - gdotaccent.ss03 - gdotaccent.ss04 - gdotaccent.ss05 - germandbls.ss02 - germandbls.ss03 - germandbls.ss04 - germandbls.ss05 - hbar.ss02 - hbar.ss03 - hbar.ss04 - hbar.ss05 - hcircumflex.ss02 - hcircumflex.ss03 - hcircumflex.ss04 - hcircumflex.ss05 - i.loclTRK.ss02 - i.loclTRK.ss04 - i.loclTRK.ss05 - iacute.ss02 - iacute.ss04 - iacute.ss05 - ibreve.ss02 - ibreve.ss04 - ibreve.ss05 - icircumflex.ss02 - icircumflex.ss04 - icircumflex.ss05 - idieresis.ss02 - idieresis.ss04 - idieresis.ss05 - igrave.ss02 - igrave.ss04 - igrave.ss05 - imacron.ss02 - imacron.ss04 - imacron.ss05 - iogonek.ss02 - iogonek.ss04 - iogonek.ss05 - itilde.ss02 - itilde.ss04 - itilde.ss05 - j.init - j.ss03.init - j.ss04.init - j.ss05.init - jcircumflex.init - jcircumflex.ss02 - jcircumflex.ss03 - jcircumflex.ss03.init - jcircumflex.ss04 - jcircumflex.ss04.init - jcircumflex.ss05 - jcircumflex.ss05.init - lacute.ss02 - lacute.ss03 - lacute.ss04 - lacute.ss05 - lcaron.ss02 - lcaron.ss03 - lcaron.ss04 - lcaron.ss05 - ldot.ss02 - ldot.ss03 - ldot.ss04 - ldot.ss05 - lslash.ss02 - lslash.ss03 - lslash.ss04 - lslash.ss05 - nacute.ss02 - nacute.ss04 - nacute.ss05 - ncaron.ss02 - ncaron.ss04 - ncaron.ss05 - nine.lf - nine.ss02 - nine.ss03 - nine.ss04 - nine.ss05 - ntilde.ss02 - ntilde.ss04 - ntilde.ss05 - oacute.ss02 - oacute.ss04 - oacute.ss05 - obreve.ss02 - obreve.ss04 - obreve.ss05 - ocircumflex.ss02 - ocircumflex.ss04 - ocircumflex.ss05 - odieresis.ss02 - odieresis.ss04 - odieresis.ss05 - oe.ss02 - oe.ss03 - oe.ss04 - oe.ss05 - ograve.ss02 - ograve.ss04 - ograve.ss05 - ohorn.ss02 - ohorn.ss04 - ohorn.ss05 - ohungarumlaut.ss02 - ohungarumlaut.ss04 - ohungarumlaut.ss05 - omacron.ss02 - omacron.ss04 - omacron.ss05 - one.lf - one.ss02 - one.ss03 - one.ss04 - one.ss05 - oslashacute.ss02 - oslashacute.ss04 - oslashacute.ss05 - otilde.ss02 - otilde.ss04 - otilde.ss05 - racute.init - racute.ss01.init - racute.ss02 - racute.ss03 - racute.ss03.init - racute.ss04 - racute.ss05 - racute.ss05.init - rcaron.init - rcaron.ss01.init - rcaron.ss02 - rcaron.ss03 - rcaron.ss03.init - rcaron.ss04 - rcaron.ss05 - rcaron.ss05.init - sacute.ss02 - sacute.ss04 - sacute.ss05 - scaron.ss02 - scaron.ss04 - scaron.ss05 - scedilla.ss02 - scedilla.ss04 - scedilla.ss05 - scircumflex.ss02 - scircumflex.ss04 - scircumflex.ss05 - seven.lf - seven.ss02 - seven.ss03 - seven.ss04 - seven.ss05 - six.lf - six.ss02 - six.ss03 - six.ss04 - six.ss05 - t_h.ss02 - t_h.ss03 - t_h.ss04 - t_h.ss05 - tbar.ss02 - tbar.ss03 - tbar.ss04 - tbar.ss05 - tcaron.ss02 - tcaron.ss03 - tcaron.ss04 - tcaron.ss05 - thorn.ss02 - thorn.ss03 - thorn.ss04 - thorn.ss05 - three.lf - three.ss02 - three.ss03 - three.ss04 - three.ss05 - two.lf - two.ss02 - two.ss03 - two.ss04 - two.ss05 - uacute.ss02 - uacute.ss04 - uacute.ss05 - ubreve.ss02 - ubreve.ss04 - ubreve.ss05 - ucircumflex.ss02 - ucircumflex.ss04 - ucircumflex.ss05 - udieresis.ss02 - udieresis.ss04 - udieresis.ss05 - ugrave.ss02 - ugrave.ss04 - ugrave.ss05 - uhorn.ss02 - uhorn.ss04 - uhorn.ss05 - uhungarumlaut.ss02 - uhungarumlaut.ss04 - uhungarumlaut.ss05 - umacron.ss02 - umacron.ss04 - umacron.ss05 - uni0122.ss02 - uni0122.ss03 - uni0122.ss04 - uni0122.ss05 - uni0123.ss02 - uni0123.ss03 - uni0123.ss04 - uni0123.ss05 - uni0136.ss02 - uni0136.ss03 - uni0136.ss04 - uni0136.ss05 - uni0137.ss02 - uni0137.ss03 - uni0137.ss04 - uni0137.ss05 - uni013B.ss02 - uni013B.ss03 - uni013B.ss04 - uni013B.ss05 - uni013C.ss02 - uni013C.ss03 - uni013C.ss04 - uni013C.ss05 - uni0145.ss02 - uni0145.ss03 - uni0145.ss04 - uni0145.ss05 - uni0146.ss02 - uni0146.ss04 - uni0146.ss05 - uni0156.ss02 - uni0156.ss03 - uni0156.ss04 - uni0156.ss05 - uni0157.init - uni0157.ss01.init - uni0157.ss02 - uni0157.ss03 - uni0157.ss03.init - uni0157.ss04 - uni0157.ss05 - uni0157.ss05.init - uni0162.ss02 - uni0162.ss03 - uni0162.ss04 - uni0162.ss05 - uni0163.ss02 - uni0163.ss03 - uni0163.ss04 - uni0163.ss05 - uni01C4.ss02 - uni01C4.ss03 - uni01C4.ss04 - uni01C4.ss05 - uni01C5.ss02 - uni01C5.ss03 - uni01C5.ss04 - uni01C5.ss05 - uni01C6.ss02 - uni01C6.ss03 - uni01C6.ss04 - uni01C6.ss05 - uni01C7.ss02 - uni01C7.ss03 - uni01C7.ss04 - uni01C7.ss05 - uni01C8.ss02 - uni01C8.ss03 - uni01C8.ss04 - uni01C8.ss05 - uni01C9.ss02 - uni01C9.ss03 - uni01C9.ss04 - uni01C9.ss05 - uni01CA.ss02 - uni01CA.ss03 - uni01CA.ss04 - uni01CA.ss05 - uni01CB.ss02 - uni01CB.ss03 - uni01CB.ss04 - uni01CB.ss05 - uni01CC.ss02 - uni01CC.ss03 - uni01CC.ss04 - uni01CC.ss05 - uni01CD.ss02 - uni01CD.ss03 - uni01CD.ss04 - uni01CD.ss05 - uni01CE.ss02 - uni01CE.ss04 - uni01CE.ss05 - uni01CF.ss02 - uni01CF.ss03 - uni01CF.ss04 - uni01CF.ss05 - uni01D0.ss02 - uni01D0.ss04 - uni01D0.ss05 - uni01D1.ss02 - uni01D1.ss03 - uni01D1.ss04 - uni01D1.ss05 - uni01D3.ss02 - uni01D3.ss03 - uni01D3.ss04 - uni01D3.ss05 - uni01D5.ss02 - uni01D5.ss03 - uni01D5.ss04 - uni01D5.ss05 - uni01D9.ss02 - uni01D9.ss03 - uni01D9.ss04 - uni01D9.ss05 - uni01DB.ss02 - uni01DB.ss03 - uni01DB.ss04 - uni01DB.ss05 - uni01EA.ss02 - uni01EA.ss03 - uni01EA.ss04 - uni01EA.ss05 - uni01EB.ss02 - uni01EB.ss04 - uni01EB.ss05 - uni0200.ss02 - uni0200.ss03 - uni0200.ss04 - uni0200.ss05 - uni0201.ss02 - uni0201.ss04 - uni0201.ss05 - uni0202.ss02 - uni0202.ss03 - uni0202.ss04 - uni0202.ss05 - uni0203.ss02 - uni0203.ss04 - uni0203.ss05 - uni0204.ss02 - uni0204.ss03 - uni0204.ss04 - uni0204.ss05 - uni0205.ss02 - uni0205.ss04 - uni0205.ss05 - uni0206.ss02 - uni0206.ss03 - uni0206.ss04 - uni0206.ss05 - uni0207.ss02 - uni0207.ss04 - uni0207.ss05 - uni0208.ss02 - uni0208.ss03 - uni0208.ss04 - uni0208.ss05 - uni0209.ss02 - uni0209.ss04 - uni0209.ss05 - uni020A.ss02 - uni020A.ss03 - uni020A.ss04 - uni020A.ss05 - uni020B.ss02 - uni020B.ss04 - uni020B.ss05 - uni020C.ss02 - uni020C.ss03 - uni020C.ss04 - uni020C.ss05 - uni020D.ss02 - uni020D.ss04 - uni020D.ss05 - uni020E.ss02 - uni020E.ss03 - uni020E.ss04 - uni020E.ss05 - uni020F.ss02 - uni020F.ss04 - uni020F.ss05 - uni0210.ss02 - uni0210.ss03 - uni0210.ss04 - uni0210.ss05 - uni0211.init - uni0211.ss01.init - uni0211.ss02 - uni0211.ss03 - uni0211.ss03.init - uni0211.ss04 - uni0211.ss05 - uni0211.ss05.init - uni0212.ss02 - uni0212.ss03 - uni0212.ss04 - uni0212.ss05 - uni0213.init - uni0213.ss01.init - uni0213.ss02 - uni0213.ss03 - uni0213.ss03.init - uni0213.ss04 - uni0213.ss05 - uni0213.ss05.init - uni0214.ss02 - uni0214.ss03 - uni0214.ss04 - uni0214.ss05 - uni0215.ss02 - uni0215.ss04 - uni0215.ss05 - uni0216.ss02 - uni0216.ss03 - uni0216.ss04 - uni0216.ss05 - uni0217.ss02 - uni0217.ss04 - uni0217.ss05 - uni0218.ss02 - uni0218.ss03 - uni0218.ss04 - uni0218.ss05 - uni0219.ss02 - uni0219.ss04 - uni0219.ss05 - uni021A.ss02 - uni021A.ss03 - uni021A.ss04 - uni021A.ss05 - uni021B.ss02 - uni021B.ss03 - uni021B.ss04 - uni021B.ss05 - uni022A.ss02 - uni022A.ss03 - uni022A.ss04 - uni022A.ss05 - uni022B.ss02 - uni022B.ss04 - uni022B.ss05 - uni022C.ss02 - uni022C.ss03 - uni022C.ss04 - uni022C.ss05 - uni022D.ss02 - uni022D.ss04 - uni022D.ss05 - uni0230.ss02 - uni0230.ss03 - uni0230.ss04 - uni0230.ss05 - uni0231.ss02 - uni0231.ss04 - uni0231.ss05 - uni0232.ss02 - uni0232.ss03 - uni0232.ss04 - uni0232.ss05 - uni0233.ss02 - uni0233.ss03 - uni0233.ss04 - uni0233.ss05 - uni0259.ss02 - uni1E9E.ss03 - uni1EA0.ss02 - uni1EA0.ss03 - uni1EA0.ss04 - uni1EA0.ss05 - uni1EA1.ss02 - uni1EA1.ss04 - uni1EA1.ss05 - uni1EA2.ss02 - uni1EA2.ss03 - uni1EA2.ss04 - uni1EA2.ss05 - uni1EA3.ss02 - uni1EA3.ss04 - uni1EA3.ss05 - uni1EA4.ss02 - uni1EA4.ss03 - uni1EA4.ss04 - uni1EA4.ss05 - uni1EA5.ss02 - uni1EA5.ss04 - uni1EA5.ss05 - uni1EA6.ss02 - uni1EA6.ss03 - uni1EA6.ss04 - uni1EA6.ss05 - uni1EA7.ss02 - uni1EA7.ss04 - uni1EA7.ss05 - uni1EA8.ss02 - uni1EA8.ss03 - uni1EA8.ss04 - uni1EA8.ss05 - uni1EA9.ss02 - uni1EA9.ss04 - uni1EA9.ss05 - uni1EAA.ss02 - uni1EAA.ss03 - uni1EAA.ss04 - uni1EAA.ss05 - uni1EAB.ss02 - uni1EAB.ss04 - uni1EAB.ss05 - uni1EAC.ss02 - uni1EAC.ss03 - uni1EAC.ss04 - uni1EAC.ss05 - uni1EAD.ss02 - uni1EAD.ss04 - uni1EAD.ss05 - uni1EAE.ss02 - uni1EAE.ss03 - uni1EAE.ss04 - uni1EAE.ss05 - uni1EAF.ss02 - uni1EAF.ss04 - uni1EAF.ss05 - uni1EB0.ss02 - uni1EB0.ss03 - uni1EB0.ss04 - uni1EB0.ss05 - uni1EB1.ss02 - uni1EB1.ss04 - uni1EB1.ss05 - uni1EB2.ss02 - uni1EB2.ss03 - uni1EB2.ss04 - uni1EB2.ss05 - uni1EB3.ss02 - uni1EB3.ss04 - uni1EB3.ss05 - uni1EB4.ss02 - uni1EB4.ss03 - uni1EB4.ss04 - uni1EB4.ss05 - uni1EB5.ss02 - uni1EB5.ss04 - uni1EB5.ss05 - uni1EB6.ss02 - uni1EB6.ss03 - uni1EB6.ss04 - uni1EB6.ss05 - uni1EB7.ss02 - uni1EB7.ss04 - uni1EB7.ss05 - uni1EB8.ss02 - uni1EB8.ss03 - uni1EB8.ss04 - uni1EB8.ss05 - uni1EB9.ss02 - uni1EB9.ss04 - uni1EB9.ss05 - uni1EBA.ss02 - uni1EBA.ss03 - uni1EBA.ss04 - uni1EBA.ss05 - uni1EBB.ss02 - uni1EBB.ss04 - uni1EBB.ss05 - uni1EBC.ss02 - uni1EBC.ss03 - uni1EBC.ss04 - uni1EBC.ss05 - uni1EBD.ss02 - uni1EBD.ss04 - uni1EBD.ss05 - uni1EBE.ss02 - uni1EBE.ss03 - uni1EBE.ss04 - uni1EBE.ss05 - uni1EBF.ss02 - uni1EBF.ss04 - uni1EBF.ss05 - uni1EC0.ss02 - uni1EC0.ss03 - uni1EC0.ss04 - uni1EC0.ss05 - uni1EC1.ss02 - uni1EC1.ss04 - uni1EC1.ss05 - uni1EC2.ss02 - uni1EC2.ss03 - uni1EC2.ss04 - uni1EC2.ss05 - uni1EC3.ss02 - uni1EC3.ss04 - uni1EC3.ss05 - uni1EC4.ss02 - uni1EC4.ss03 - uni1EC4.ss04 - uni1EC4.ss05 - uni1EC5.ss02 - uni1EC5.ss04 - uni1EC5.ss05 - uni1EC6.ss02 - uni1EC6.ss03 - uni1EC6.ss04 - uni1EC6.ss05 - uni1EC7.ss02 - uni1EC7.ss04 - uni1EC7.ss05 - uni1EC8.ss02 - uni1EC8.ss03 - uni1EC8.ss04 - uni1EC8.ss05 - uni1EC9.ss02 - uni1EC9.ss04 - uni1EC9.ss05 - uni1ECA.ss02 - uni1ECA.ss03 - uni1ECA.ss04 - uni1ECA.ss05 - uni1ECB.ss02 - uni1ECB.ss04 - uni1ECB.ss05 - uni1ECC.ss02 - uni1ECC.ss03 - uni1ECC.ss04 - uni1ECC.ss05 - uni1ECD.ss02 - uni1ECD.ss04 - uni1ECD.ss05 - uni1ECE.ss02 - uni1ECE.ss03 - uni1ECE.ss04 - uni1ECE.ss05 - uni1ECF.ss02 - uni1ECF.ss04 - uni1ECF.ss05 - uni1ED0.ss02 - uni1ED0.ss03 - uni1ED0.ss04 - uni1ED0.ss05 - uni1ED1.ss02 - uni1ED1.ss04 - uni1ED1.ss05 - uni1ED2.ss02 - uni1ED2.ss03 - uni1ED2.ss04 - uni1ED2.ss05 - uni1ED3.ss02 - uni1ED3.ss04 - uni1ED3.ss05 - uni1ED4.ss02 - uni1ED4.ss03 - uni1ED4.ss04 - uni1ED4.ss05 - uni1ED5.ss02 - uni1ED5.ss04 - uni1ED5.ss05 - uni1ED6.ss02 - uni1ED6.ss03 - uni1ED6.ss04 - uni1ED6.ss05 - uni1ED7.ss02 - uni1ED7.ss04 - uni1ED7.ss05 - uni1ED8.ss02 - uni1ED8.ss03 - uni1ED8.ss04 - uni1ED8.ss05 - uni1ED9.ss02 - uni1ED9.ss04 - uni1ED9.ss05 - uni1EDA.ss02 - uni1EDA.ss03 - uni1EDA.ss04 - uni1EDA.ss05 - uni1EDB.ss02 - uni1EDB.ss04 - uni1EDB.ss05 - uni1EDC.ss02 - uni1EDC.ss03 - uni1EDC.ss04 - uni1EDC.ss05 - uni1EDD.ss02 - uni1EDD.ss04 - uni1EDD.ss05 - uni1EDE.ss02 - uni1EDE.ss03 - uni1EDE.ss04 - uni1EDE.ss05 - uni1EDF.ss02 - uni1EDF.ss04 - uni1EDF.ss05 - uni1EE0.ss02 - uni1EE0.ss03 - uni1EE0.ss04 - uni1EE0.ss05 - uni1EE1.ss02 - uni1EE1.ss04 - uni1EE1.ss05 - uni1EE2.ss02 - uni1EE2.ss03 - uni1EE2.ss04 - uni1EE2.ss05 - uni1EE3.ss02 - uni1EE3.ss04 - uni1EE3.ss05 - uni1EE4.ss02 - uni1EE4.ss03 - uni1EE4.ss04 - uni1EE4.ss05 - uni1EE5.ss02 - uni1EE5.ss04 - uni1EE5.ss05 - uni1EE6.ss02 - uni1EE6.ss03 - uni1EE6.ss04 - uni1EE6.ss05 - uni1EE7.ss02 - uni1EE7.ss04 - uni1EE7.ss05 - uni1EE8.ss02 - uni1EE8.ss03 - uni1EE8.ss04 - uni1EE8.ss05 - uni1EE9.ss02 - uni1EE9.ss04 - uni1EE9.ss05 - uni1EEA.ss02 - uni1EEA.ss03 - uni1EEA.ss04 - uni1EEA.ss05 - uni1EEB.ss02 - uni1EEB.ss04 - uni1EEB.ss05 - uni1EEC.ss02 - uni1EEC.ss03 - uni1EEC.ss04 - uni1EEC.ss05 - uni1EED.ss02 - uni1EED.ss04 - uni1EED.ss05 - uni1EEE.ss02 - uni1EEE.ss03 - uni1EEE.ss04 - uni1EEE.ss05 - uni1EEF.ss02 - uni1EEF.ss04 - uni1EEF.ss05 - uni1EF0.ss02 - uni1EF0.ss03 - uni1EF0.ss04 - uni1EF0.ss05 - uni1EF1.ss02 - uni1EF1.ss04 - uni1EF1.ss05 - uni1EF4.ss02 - uni1EF4.ss03 - uni1EF4.ss04 - uni1EF4.ss05 - uni1EF5.ss02 - uni1EF5.ss03 - uni1EF5.ss04 - uni1EF5.ss05 - uni1EF6.ss02 - uni1EF6.ss03 - uni1EF6.ss04 - uni1EF6.ss05 - uni1EF7.ss02 - uni1EF7.ss03 - uni1EF7.ss04 - uni1EF7.ss05 - uni1EF8.ss02 - uni1EF8.ss03 - uni1EF8.ss04 - uni1EF8.ss05 - uni1EF9.ss02 - uni1EF9.ss03 - uni1EF9.ss04 - uni1EF9.ss05 - uogonek.ss02 - uogonek.ss04 - uogonek.ss05 - uring.ss02 - uring.ss04 - uring.ss05 - utilde.ss02 - utilde.ss04 - utilde.ss05 - wacute.ss02 - wacute.ss04 - wacute.ss05 - wcircumflex.ss02 - wcircumflex.ss04 - wcircumflex.ss05 - wdieresis.ss02 - wdieresis.ss04 - wdieresis.ss05 - wgrave.ss02 - wgrave.ss04 - wgrave.ss05 - x.init - x.ss01.init - x.ss03.init - x.ss04.init - x.ss05.init - yacute.ss02 - yacute.ss03 - yacute.ss04 - yacute.ss05 - ycircumflex.ss02 - ycircumflex.ss03 - ycircumflex.ss04 - ycircumflex.ss05 - ydieresis.ss02 - ydieresis.ss03 - ydieresis.ss04 - ydieresis.ss05 - ygrave.ss02 - ygrave.ss03 - ygrave.ss04 - ygrave.ss05 - zacute.ss02 - zacute.ss04 - zacute.ss05 - zcaron.ss02 - zcaron.ss04 - zcaron.ss05 - zdotaccent.ss02 - zdotaccent.ss04 - zdotaccent.ss05 - zero.lf - zero.ss02 - zero.ss03 - zero.ss04 - And zero.ss05 [code: unreachable-glyphs]
WARN: Check if each glyph has the recommended amount of contours. (com.google.fonts/check/contour_count)
> >Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be constructured in a handful of ways. This means a glyph's contour count will only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3 contours, depending on whether its double story or single story. > >However, a quotedbl should have 2 contours, unless the font belongs to a display family. > >This check currently does not cover variable fonts because there's plenty of alternative ways of constructing glyphs with multiple outlines for each feature in a VarFont. The expected contour count data for this check is currently optimized for the typical construction of glyphs in static fonts. > * ⚠ **WARN** This font has a 'Soft Hyphen' character (codepoint 0x00AD) which is supposed to be zero-width and invisible, and is used to mark a hyphenation possibility within a word in the absence of or overriding dictionary hyphenation. It is mostly an obsolete mechanism now, and the character is only included in fonts for legacy codepage coverage. [code: softhyphen] * ⚠ **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: percent Contours detected: 4 Expected: 5 - Glyph name: A Contours detected: 1 Expected: 2 - Glyph name: B Contours detected: 1 Expected: 2 or 3 - Glyph name: D Contours detected: 1 Expected: 2 - Glyph name: H Contours detected: 2 Expected: 1 - Glyph name: L Contours detected: 2 Expected: 1 - Glyph name: O Contours detected: 1 Expected: 2 - Glyph name: f Contours detected: 2 Expected: 1 - Glyph name: j Contours detected: 3 Expected: 2 - Glyph name: p Contours detected: 3 Expected: 2 - Glyph name: s Contours detected: 2 Expected: 1 - Glyph name: y Contours detected: 2 Expected: 1 - Glyph name: uni00AD Contours detected: 1 Expected: 0 - Glyph name: Agrave Contours detected: 2 Expected: 3 - Glyph name: Aacute Contours detected: 2 Expected: 3 - Glyph name: Acircumflex Contours detected: 2 Expected: 3 - Glyph name: Atilde Contours detected: 2 Expected: 3 - Glyph name: Adieresis Contours detected: 3 Expected: 4 - Glyph name: Eth Contours detected: 1 Expected: 2 - Glyph name: Ograve Contours detected: 2 Expected: 3 - Glyph name: Oacute Contours detected: 2 Expected: 3 - Glyph name: Ocircumflex Contours detected: 2 Expected: 3 - Glyph name: Otilde Contours detected: 2 Expected: 3 - Glyph name: Odieresis Contours detected: 3 Expected: 4 - Glyph name: yacute Contours detected: 3 Expected: 2 - Glyph name: thorn Contours detected: 3 Expected: 2 - Glyph name: ydieresis Contours detected: 4 Expected: 3 - Glyph name: Amacron Contours detected: 2 Expected: 3 - Glyph name: Abreve Contours detected: 2 Expected: 3 - Glyph name: aogonek Contours detected: 3 Expected: 2 - Glyph name: Dcaron Contours detected: 2 Expected: 3 - Glyph name: Dcroat Contours detected: 1 Expected: 2 - Glyph name: eogonek Contours detected: 3 Expected: 2 - Glyph name: Hcircumflex Contours detected: 3 Expected: 2 - Glyph name: Hbar Contours detected: 3 Expected: 2 - Glyph name: hbar Contours detected: 2 Expected: 1 - Glyph name: jcircumflex Contours detected: 3 Expected: 2 - Glyph name: Lacute Contours detected: 3 Expected: 2 - Glyph name: uni013B Contours detected: 3 Expected: 2 - Glyph name: Lcaron Contours detected: 3 Expected: 2 - Glyph name: Ldot Contours detected: 3 Expected: 2 - Glyph name: Lslash Contours detected: 2 Expected: 1 - Glyph name: eng Contours detected: 2 Expected: 1 - Glyph name: Omacron Contours detected: 2 Expected: 3 - Glyph name: Obreve Contours detected: 2 Expected: 3 - Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4 - Glyph name: Racute Contours detected: 2 Expected: 3 - Glyph name: uni0156 Contours detected: 2 Expected: 3 - Glyph name: Rcaron Contours detected: 2 Expected: 3 - Glyph name: sacute Contours detected: 3 Expected: 2 - Glyph name: scircumflex Contours detected: 3 Expected: 2 - Glyph name: scedilla Contours detected: 3 Expected: 1 or 2 - Glyph name: scaron Contours detected: 3 Expected: 2 - Glyph name: Tbar Contours detected: 2 Expected: 1 - Glyph name: Uogonek Contours detected: 2 Expected: 1 - Glyph name: uogonek Contours detected: 2 Expected: 1 - Glyph name: ycircumflex Contours detected: 3 Expected: 2 - Glyph name: ohorn Contours detected: 3 Expected: 2 - Glyph name: Uhorn Contours detected: 2 Expected: 1 - Glyph name: uhorn Contours detected: 2 Expected: 1 - Glyph name: uni01C4 Contours detected: 2 Expected: 4 - Glyph name: uni01C5 Contours detected: 3 Expected: 4 - Glyph name: uni01C7 Contours detected: 3 Expected: 2 - Glyph name: uni01C8 Contours detected: 5 Expected: 3 - Glyph name: uni01C9 Contours detected: 4 Expected: 3 - Glyph name: uni01CB Contours detected: 4 Expected: 3 - Glyph name: uni01CC Contours detected: 4 Expected: 3 - Glyph name: uni01CD Contours detected: 2 Expected: 3 - Glyph name: uni01D1 Contours detected: 2 Expected: 3 - Glyph name: uni01EB Contours detected: 3 Expected: 2 - Glyph name: uni0200 Contours detected: 3 Expected: 4 - Glyph name: uni0202 Contours detected: 2 Expected: 3 - Glyph name: uni020C Contours detected: 3 Expected: 4 - Glyph name: uni020E Contours detected: 2 Expected: 3 - Glyph name: uni0210 Contours detected: 3 Expected: 4 - Glyph name: uni0212 Contours detected: 2 Expected: 3 - Glyph name: uni0219 Contours detected: 3 Expected: 2 - Glyph name: uni022A Contours detected: 4 Expected: 5 - Glyph name: uni022C Contours detected: 3 Expected: 4 - Glyph name: uni0230 Contours detected: 3 Expected: 4 - Glyph name: uni0233 Contours detected: 3 Expected: 2 - Glyph name: uni0237 Contours detected: 2 Expected: 1 - Glyph name: uni1EA0 Contours detected: 2 Expected: 3 - Glyph name: uni1EA2 Contours detected: 2 Expected: 3 - Glyph name: uni1EA4 Contours detected: 3 Expected: 4 - Glyph name: uni1EA6 Contours detected: 3 Expected: 4 - Glyph name: uni1EA8 Contours detected: 3 Expected: 4 - Glyph name: uni1EAA Contours detected: 3 Expected: 4 - Glyph name: uni1EAC Contours detected: 3 Expected: 4 - Glyph name: uni1EAE Contours detected: 3 Expected: 4 - Glyph name: uni1EB0 Contours detected: 3 Expected: 4 - Glyph name: uni1EB2 Contours detected: 3 Expected: 4 - Glyph name: uni1EB4 Contours detected: 3 Expected: 4 - Glyph name: uni1EB6 Contours detected: 3 Expected: 4 - Glyph name: uni1ECC Contours detected: 2 Expected: 3 - Glyph name: uni1ECE Contours detected: 2 Expected: 3 - Glyph name: uni1ED0 Contours detected: 3 Expected: 4 - Glyph name: uni1ED2 Contours detected: 3 Expected: 4 - Glyph name: uni1ED4 Contours detected: 3 Expected: 4 - Glyph name: uni1ED6 Contours detected: 3 Expected: 4 - Glyph name: uni1ED8 Contours detected: 3 Expected: 4 - Glyph name: uni1EDB Contours detected: 4 Expected: 3 - Glyph name: uni1EDD Contours detected: 4 Expected: 3 - Glyph name: uni1EDF Contours detected: 4 Expected: 3 - Glyph name: uni1EE1 Contours detected: 4 Expected: 3 - Glyph name: uni1EE3 Contours detected: 4 Expected: 3 - Glyph name: uni1EE8 Contours detected: 3 Expected: 2 - Glyph name: uni1EE9 Contours detected: 3 Expected: 2 - Glyph name: uni1EEA Contours detected: 3 Expected: 2 - Glyph name: uni1EEB Contours detected: 3 Expected: 2 - Glyph name: uni1EEC Contours detected: 3 Expected: 2 - Glyph name: uni1EED Contours detected: 3 Expected: 2 - Glyph name: uni1EEE Contours detected: 3 Expected: 2 - Glyph name: uni1EEF Contours detected: 3 Expected: 2 - Glyph name: uni1EF0 Contours detected: 3 Expected: 2 - Glyph name: uni1EF1 Contours detected: 3 Expected: 2 - Glyph name: ygrave Contours detected: 3 Expected: 2 - Glyph name: uni1EF5 Contours detected: 3 Expected: 2 - Glyph name: uni1EF7 Contours detected: 3 Expected: 2 - Glyph name: uni1EF9 Contours detected: 3 Expected: 2 - Glyph name: uni20A6 Contours detected: 4 Expected: 1, 3 or 5 - Glyph name: uni20A9 Contours detected: 6 Expected: 1, 3, 4 or 7 - Glyph name: fi Contours detected: 4 Expected: 1, 2 or 3 - Glyph name: fl Contours detected: 3 Expected: 1 or 2 - Glyph name: A Contours detected: 1 Expected: 2 - Glyph name: Aacute Contours detected: 2 Expected: 3 - Glyph name: Abreve Contours detected: 2 Expected: 3 - Glyph name: Acircumflex Contours detected: 2 Expected: 3 - Glyph name: Adieresis Contours detected: 3 Expected: 4 - Glyph name: Agrave Contours detected: 2 Expected: 3 - Glyph name: Amacron Contours detected: 2 Expected: 3 - Glyph name: Atilde Contours detected: 2 Expected: 3 - Glyph name: B Contours detected: 1 Expected: 2 or 3 - Glyph name: D Contours detected: 1 Expected: 2 - Glyph name: Dcaron Contours detected: 2 Expected: 3 - Glyph name: Dcroat Contours detected: 1 Expected: 2 - Glyph name: Eth Contours detected: 1 Expected: 2 - Glyph name: H Contours detected: 2 Expected: 1 - Glyph name: Hbar Contours detected: 3 Expected: 2 - Glyph name: Hcircumflex Contours detected: 3 Expected: 2 - Glyph name: L Contours detected: 2 Expected: 1 - Glyph name: Lacute Contours detected: 3 Expected: 2 - Glyph name: Lcaron Contours detected: 3 Expected: 2 - Glyph name: Ldot Contours detected: 3 Expected: 2 - Glyph name: Lslash Contours detected: 2 Expected: 1 - Glyph name: O Contours detected: 1 Expected: 2 - Glyph name: Oacute Contours detected: 2 Expected: 3 - Glyph name: Ocircumflex Contours detected: 2 Expected: 3 - Glyph name: Odieresis Contours detected: 3 Expected: 4 - Glyph name: Ograve Contours detected: 2 Expected: 3 - Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4 - Glyph name: Omacron Contours detected: 2 Expected: 3 - Glyph name: Otilde Contours detected: 2 Expected: 3 - Glyph name: Racute Contours detected: 2 Expected: 3 - Glyph name: Rcaron Contours detected: 2 Expected: 3 - Glyph name: Tbar Contours detected: 2 Expected: 1 - Glyph name: Uhorn Contours detected: 2 Expected: 1 - Glyph name: Uogonek Contours detected: 2 Expected: 1 - Glyph name: aogonek Contours detected: 3 Expected: 2 - Glyph name: eng Contours detected: 2 Expected: 1 - Glyph name: eogonek Contours detected: 3 Expected: 2 - Glyph name: f Contours detected: 2 Expected: 1 - Glyph name: fi Contours detected: 4 Expected: 3 - Glyph name: fl Contours detected: 3 Expected: 2 - Glyph name: hbar Contours detected: 2 Expected: 1 - Glyph name: j Contours detected: 3 Expected: 2 - Glyph name: jcircumflex Contours detected: 3 Expected: 2 - Glyph name: ohorn Contours detected: 3 Expected: 2 - Glyph name: p Contours detected: 3 Expected: 2 - Glyph name: percent Contours detected: 4 Expected: 5 - Glyph name: s Contours detected: 2 Expected: 1 - Glyph name: sacute Contours detected: 3 Expected: 2 - Glyph name: scaron Contours detected: 3 Expected: 2 - Glyph name: scircumflex Contours detected: 3 Expected: 2 - Glyph name: thorn Contours detected: 3 Expected: 2 - Glyph name: uhorn Contours detected: 2 Expected: 1 - Glyph name: uni00AD Contours detected: 1 Expected: 0 - Glyph name: uni013B Contours detected: 3 Expected: 2 - Glyph name: uni0156 Contours detected: 2 Expected: 3 - Glyph name: uni01C4 Contours detected: 2 Expected: 4 - Glyph name: uni01C5 Contours detected: 3 Expected: 4 - Glyph name: uni01C7 Contours detected: 3 Expected: 2 - Glyph name: uni01C8 Contours detected: 5 Expected: 3 - Glyph name: uni01C9 Contours detected: 4 Expected: 3 - Glyph name: uni01CB Contours detected: 4 Expected: 3 - Glyph name: uni01CC Contours detected: 4 Expected: 3 - Glyph name: uni01CD Contours detected: 2 Expected: 3 - Glyph name: uni01D1 Contours detected: 2 Expected: 3 - Glyph name: uni0219 Contours detected: 3 Expected: 2 - Glyph name: uni022A Contours detected: 4 Expected: 5 - Glyph name: uni022C Contours detected: 3 Expected: 4 - Glyph name: uni0230 Contours detected: 3 Expected: 4 - Glyph name: uni0233 Contours detected: 3 Expected: 2 - Glyph name: uni0237 Contours detected: 2 Expected: 1 - Glyph name: uni1EA0 Contours detected: 2 Expected: 3 - Glyph name: uni1EA2 Contours detected: 2 Expected: 3 - Glyph name: uni1EA4 Contours detected: 3 Expected: 4 - Glyph name: uni1EA6 Contours detected: 3 Expected: 4 - Glyph name: uni1EA8 Contours detected: 3 Expected: 4 - Glyph name: uni1EAA Contours detected: 3 Expected: 4 - Glyph name: uni1EAC Contours detected: 3 Expected: 4 - Glyph name: uni1EAE Contours detected: 3 Expected: 4 - Glyph name: uni1EB0 Contours detected: 3 Expected: 4 - Glyph name: uni1EB2 Contours detected: 3 Expected: 4 - Glyph name: uni1EB4 Contours detected: 3 Expected: 4 - Glyph name: uni1EB6 Contours detected: 3 Expected: 4 - Glyph name: uni1ECC Contours detected: 2 Expected: 3 - Glyph name: uni1ECE Contours detected: 2 Expected: 3 - Glyph name: uni1ED0 Contours detected: 3 Expected: 4 - Glyph name: uni1ED2 Contours detected: 3 Expected: 4 - Glyph name: uni1ED4 Contours detected: 3 Expected: 4 - Glyph name: uni1ED6 Contours detected: 3 Expected: 4 - Glyph name: uni1ED8 Contours detected: 3 Expected: 4 - Glyph name: uni1EDB Contours detected: 4 Expected: 3 - Glyph name: uni1EDD Contours detected: 4 Expected: 3 - Glyph name: uni1EDF Contours detected: 4 Expected: 3 - Glyph name: uni1EE1 Contours detected: 4 Expected: 3 - Glyph name: uni1EE3 Contours detected: 4 Expected: 3 - Glyph name: uni1EE8 Contours detected: 3 Expected: 2 - Glyph name: uni1EE9 Contours detected: 3 Expected: 2 - Glyph name: uni1EEA Contours detected: 3 Expected: 2 - Glyph name: uni1EEB Contours detected: 3 Expected: 2 - Glyph name: uni1EEC Contours detected: 3 Expected: 2 - Glyph name: uni1EED Contours detected: 3 Expected: 2 - Glyph name: uni1EEE Contours detected: 3 Expected: 2 - Glyph name: uni1EEF Contours detected: 3 Expected: 2 - Glyph name: uni1EF0 Contours detected: 3 Expected: 2 - Glyph name: uni1EF1 Contours detected: 3 Expected: 2 - Glyph name: uni1EF5 Contours detected: 3 Expected: 2 - Glyph name: uni1EF7 Contours detected: 3 Expected: 2 - Glyph name: uni1EF9 Contours detected: 3 Expected: 2 - Glyph name: uni20A6 Contours detected: 4 Expected: 1, 3 or 5 - Glyph name: uni20A9 Contours detected: 6 Expected: 1, 3, 4 or 7 - Glyph name: uogonek Contours detected: 2 Expected: 1 - Glyph name: y Contours detected: 2 Expected: 1 - Glyph name: yacute Contours detected: 3 Expected: 2 - Glyph name: ycircumflex Contours detected: 3 Expected: 2 - Glyph name: ydieresis Contours detected: 4 Expected: 3 - And Glyph name: ygrave Contours detected: 3 Expected: 2 [code: contour-count]
WARN: Ensure dotted circle glyph is present and can attach marks. (com.google.fonts/check/dotted_circle)
> >The dotted circle character (U+25CC) is inserted by shaping engines before mark glyphs which do not have an associated base, especially in the context of broken syllabic clusters. > >For fonts containing combining marks, it is recommended that the dotted circle character be included so that these isolated marks can be displayed properly; for fonts supporting complex scripts, this should be considered mandatory. > >Additionally, when a dotted circle glyph is present, it should be able to display all marks correctly, meaning that it should contain anchors for all attaching marks. > * ⚠ **WARN** No dotted circle glyph present [code: missing-dotted-circle]
WARN: Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value (com.google.fonts/check/gpos_kerning_info)
* ⚠ **WARN** GPOS table lacks kerning information. [code: lacks-kern-info]
WARN: Do outlines contain any jaggy segments? (com.google.fonts/check/outline_jaggy_segments)
> >This check heuristically detects outline segments which form a particularly small angle, indicative of an outline error. This may cause false positives in cases such as extreme ink traps, so should be regarded as advisory and backed up by manual inspection. > * ⚠ **WARN** The following glyphs have jaggy segments: * ordfeminine (U+00AA): B<<182.5,362.5>-<183.0,367.0>-<184.0,371.0>>/B<<184.0,371.0>-<165.0,334.0>-<150.5,320.5>> = 13.144867617550734 [code: found-jaggy-segments]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 2 8 110 8 99 0
0% 1% 4% 48% 4% 44% 0%

Note: The following loglevels were omitted in this report:

vv-monsalve commented 1 year ago
  • Knowing kerning is a WIP please ensure previously working kerning pairs are kept, e.g. 12 Ty and T in general

Follow up about this on the new separate issue for Kerning #15

  • Inspecting the source file, there are some notes about some features not being complete or done (images below)

Feature isol has not been defined

  • Keep in mind that features like fina "are meant exclusively for writing systems that have inherent ‘joining behaviour’, e.g., Arabic and similar scripts." For them to work for other scripts, like Latin, they should be built with lookups. Glyphs tutorial on positional alternates has useful information.

Follow up about this on the new separate issue fo Stylistic Sets #14