Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Athiti font: correct positioning of U+201E (double low-9 quotation mark) #9044

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

sebalis
Copy link

@sebalis sebalis commented Feb 6, 2025

This PR is an attempt at correcting issue #9043 using FontForge. As I have no experience with FontForge, I will describe my process: I simply opened the TTF files for each variant, measured the height of the U+201A shape, and used the Transform dialog to move the U+201E shape to the same height. I then executed File → Generate Fonts to produce new versions of the TTF files. For every variant, there were two warnings. The first informed me about a convention that TrueType fonts should have an em-size that is a power of 2, while these fonts have 1000. The second was “Missing points at Extrema” for various glyphs (quotedbl, quotesingle, parenleft, parenright, braceleft, braceright, uni0E04, uni0E05, uni0E28, uni0E56, minute, second – so seemingly not the glyph that I was changing). I chose to ignore these.

Copy link

google-cla bot commented Feb 6, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@sebalis
Copy link
Author

sebalis commented Feb 6, 2025

I have tried to create a Google account in order to sign the CLA. But Google demands that I supply a mobile phone number, contrary to the information given in https://support.google.com/accounts/answer/1733224?hl=en (“If you have a mobile phone, this info is optional but highly recommended”), and that I refuse to do. I would otherwise be happy to sign the CLA as shown on https://cla.developers.google.com/about/google-individual. Please advise.

@sebalis sebalis force-pushed the athiti-correct-u201e branch from f8df9b7 to 4f44598 Compare February 6, 2025 02:12
@sebalis
Copy link
Author

sebalis commented Feb 6, 2025

(force-pushed to correct author information, the previously mentioned problem with the CLA remains)

@emmamarichal
Copy link
Collaborator

hi @sebalis! Thank you for that PR. Unfortunately, I can see to many fails in the fontbakery report, compared to the current version on the API. If you have the opportunity to solve them, I would be happy to review that PR again, to see if we can push that update! Thank you!

Your version:

FontBakery report

fontbakery version: 0.13.1

Check results

[41] Athiti-Bold.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 1, encoding 0) is "Version 1.032".


    [code: mismatch]

  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]

🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Are there unwanted tables? unwanted_tables
  • 🔥 FAIL

    The following unwanted font tables were found:

  • FFTM - Table contains redundant FontForge timestamp info

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Check font family directory name. googlefonts/metadata/family_directory_name
  • 🔥 FAIL

    Family name on METADATA.pb is "Athiti"
    Directory name is "."
    Expected "athiti"


    [code: bad-directory-name]
🔥 FAIL Shapes languages in all GF glyphsets. googlefonts/glyphsets/shape_languages
  • 🔥 FAIL

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
  • 🔥 FAIL

    Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file.


    [code: lacks-git-url]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform MACINTOSH contains a line-break.


    [code: line-break]

  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]

🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 621: less, greater

Width = 604: equal

Width = 504: logicalnot

Width = 634: plusminus

Width = 496: multiply

Width = 520: divide

Width = 472: approxequal

Width = 570: notequal

Width = 631: greaterequal, lessequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 840, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: yi, tifinagh, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak. googlefonts/description/eof_linebreak
  • ⚠️ WARN

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


    [code: missing-eof-linebreak]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated. googlefonts/description/family_update
  • ⚠️ 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]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<202.0,461.0>--<214.0,298.0>> -> L<<214.0,298.0>--<214.0,0.0>>

* Eng (U+014A): L<<467.0,159.0>--<455.0,322.0>> -> L<<455.0,322.0>--<455.0,620.0>>

* M (U+004D): L<<216.0,467.0>--<220.0,300.0>> -> L<<220.0,300.0>--<209.0,0.0>>

* M (U+004D): L<<531.0,0.0>--<520.0,300.0>> -> L<<520.0,300.0>--<524.0,467.0>>

* N (U+004E): L<<202.0,461.0>--<214.0,298.0>> -> L<<214.0,298.0>--<214.0,0.0>>

* N (U+004E): L<<467.0,159.0>--<455.0,322.0>> -> L<<455.0,322.0>--<455.0,620.0>>

* Nacute (U+0143): L<<202.0,461.0>--<214.0,298.0>> -> L<<214.0,298.0>--<214.0,0.0>>

* Nacute (U+0143): L<<467.0,159.0>--<455.0,322.0>> -> L<<455.0,322.0>--<455.0,620.0>>

* Ncaron (U+0147): L<<202.0,461.0>--<214.0,298.0>> -> L<<214.0,298.0>--<214.0,0.0>>

* Ncaron (U+0147): L<<467.0,159.0>--<455.0,322.0>> -> L<<455.0,322.0>--<455.0,620.0>>

* 52 more.

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

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

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

* ae (U+00E6): L<<700.0,187.0>--<468.0,189.0>>

* aeacute (U+01FD): L<<700.0,187.0>--<468.0,189.0>>

* e (U+0065): L<<416.0,187.0>--<184.0,189.0>>

* eacute (U+00E9): L<<416.0,187.0>--<184.0,189.0>>

* ebreve (U+0115): L<<416.0,187.0>--<184.0,189.0>>

* ecaron (U+011B): L<<416.0,187.0>--<184.0,189.0>>

* ecircumflex (U+00EA): L<<416.0,187.0>--<184.0,189.0>>

* edieresis (U+00EB): L<<416.0,187.0>--<184.0,189.0>>

* edotaccent (U+0117): L<<416.0,187.0>--<184.0,189.0>>

* egrave (U+00E8): L<<416.0,187.0>--<184.0,189.0>>

* 13 more.

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

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


    [code: unknown]
ℹ️ INFO Check if OS/2 xAvgCharWidth is correct. opentype/xavgcharwidth
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    .


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

    Hinting filesize impact:

Athiti-Bold.ttf
Dehinted Size 110.6kb
Hinted Size 182.5kb
Increase 71.8kb
Change 64.9 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

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

    Please consider adding a family.minisite_url entry.


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

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[47] Athiti-ExtraLight.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 1, encoding 0) is "Version 1.032".


    [code: mismatch]

  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]

🔥 FAIL Does full font name begin with the font family name? opentype/name/match_familyname_fullfont
  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-ExtraLight' does not begin with the font family name 'Athiti ExtraLight' in platformID 1, encodingID 0, languageID 0(0000), and nameID 1.


    [code: mismatch-font-names]

  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-ExtraLight' does not begin with the font family name 'Athiti ExtraLight' in platformID 3, encodingID 1, languageID 1033(0409), and nameID 1.


    [code: mismatch-font-names]

🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Are there unwanted tables? unwanted_tables
  • 🔥 FAIL

    The following unwanted font tables were found:

  • FFTM - Table contains redundant FontForge timestamp info

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Space and non-breaking space have the same width? whitespace_widths
  • 🔥 FAIL

    Space and non-breaking space have differing width: The space glyph named space is 300 font units wide, non-breaking space named (uni00A0) is 260 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width.


    [code: different-widths]
🔥 FAIL Check font family directory name. googlefonts/metadata/family_directory_name
  • 🔥 FAIL

    Family name on METADATA.pb is "Athiti"
    Directory name is "."
    Expected "athiti"


    [code: bad-directory-name]
🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table? googlefonts/metadata/nameid/family_and_full_names
  • 🔥 FAIL

    METADATA.pb: Fullname "Athiti ExtraLight" does not match name table entry "Athiti-ExtraLight"!


    [code: fullname-mismatch]
🔥 FAIL Check METADATA.pb font weights are correct. googlefonts/metadata/weightclass
  • 🔥 FAIL

    OS/2 table has usWeightClass=250, meaning "Thin" on the Google Fonts API.

On METADATA.pb it should be 100, corresponding to CSS weight name "Thin", but instead got 200.

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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
  • 🔥 FAIL

    Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file.


    [code: lacks-git-url]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform MACINTOSH contains a line-break.


    [code: line-break]

  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]

🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti ExtraLight Athiti ExtraLight
Subfamily Name Regular Regular
Full Name Athiti-ExtraLight Athiti ExtraLight
Postscript Name Athiti-ExtraLight Athiti-ExtraLight
Typographic Family Name Athiti Athiti
Typographic Subfamily Name ExtraLight ExtraLight
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

🔥 FAIL Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name. googlefonts/weightclass
  • 🔥 FAIL

    Best SubFamily name is 'ExtraLight'. Expected OS/2 usWeightClass is 200, got 250.


    [code: bad-value]
⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 617: less, greater

Width = 590: notequal, equal

Width = 442: logicalnot

Width = 472: multiply

Width = 520: minus, divide

Width = 462: approxequal

Width = 589: greaterequal, lessequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 864, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: yi, tifinagh, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak. googlefonts/description/eof_linebreak
  • ⚠️ WARN

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


    [code: missing-eof-linebreak]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated. googlefonts/description/family_update
  • ⚠️ 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]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<115.0,559.0>--<121.0,322.0>> -> L<<121.0,322.0>--<121.0,0.0>>

* Eng (U+014A): L<<488.0,51.0>--<482.0,288.0>> -> L<<482.0,288.0>--<482.0,610.0>>

* M (U+004D): L<<137.0,544.0>--<129.0,320.0>> -> L<<129.0,320.0>--<112.0,0.0>>

* M (U+004D): L<<554.0,0.0>--<537.0,320.0>> -> L<<537.0,320.0>--<529.0,544.0>>

* N (U+004E): L<<115.0,559.0>--<121.0,322.0>> -> L<<121.0,322.0>--<121.0,0.0>>

* N (U+004E): L<<488.0,51.0>--<482.0,288.0>> -> L<<482.0,288.0>--<482.0,610.0>>

* Nacute (U+0143): L<<115.0,559.0>--<121.0,322.0>> -> L<<121.0,322.0>--<121.0,0.0>>

* Nacute (U+0143): L<<488.0,51.0>--<482.0,288.0>> -> L<<482.0,288.0>--<482.0,610.0>>

* Ncaron (U+0147): L<<115.0,559.0>--<121.0,322.0>> -> L<<121.0,322.0>--<121.0,0.0>>

* Ncaron (U+0147): L<<488.0,51.0>--<482.0,288.0>> -> L<<482.0,288.0>--<482.0,610.0>>

* 75 more.

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

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

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

* uni018F (U+018F): L<<132.0,327.0>--<494.0,324.0>>

[code: found-semi-vertical]

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


    [code: unknown]
ℹ️ INFO Check if OS/2 xAvgCharWidth is correct. opentype/xavgcharwidth
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    .


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

    Hinting filesize impact:

Athiti-ExtraLight.ttf
Dehinted Size 110.4kb
Hinted Size 171.2kb
Increase 60.8kb
Change 55.1 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

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

    Please consider adding a family.minisite_url entry.


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

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[45] Athiti-Light.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 1, encoding 0) is "Version 1.032".


    [code: mismatch]

  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]

🔥 FAIL Does full font name begin with the font family name? opentype/name/match_familyname_fullfont
  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-Light' does not begin with the font family name 'Athiti Light' in platformID 1, encodingID 0, languageID 0(0000), and nameID 1.


    [code: mismatch-font-names]

  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-Light' does not begin with the font family name 'Athiti Light' in platformID 3, encodingID 1, languageID 1033(0409), and nameID 1.


    [code: mismatch-font-names]

🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Are there unwanted tables? unwanted_tables
  • 🔥 FAIL

    The following unwanted font tables were found:

  • FFTM - Table contains redundant FontForge timestamp info

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Space and non-breaking space have the same width? whitespace_widths
  • 🔥 FAIL

    Space and non-breaking space have differing width: The space glyph named space is 300 font units wide, non-breaking space named (uni00A0) is 260 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width.


    [code: different-widths]
🔥 FAIL Check font family directory name. googlefonts/metadata/family_directory_name
  • 🔥 FAIL

    Family name on METADATA.pb is "Athiti"
    Directory name is "."
    Expected "athiti"


    [code: bad-directory-name]
🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table? googlefonts/metadata/nameid/family_and_full_names
  • 🔥 FAIL

    METADATA.pb: Fullname "Athiti Light" does not match name table entry "Athiti-Light"!


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
  • 🔥 FAIL

    Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file.


    [code: lacks-git-url]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform MACINTOSH contains a line-break.


    [code: line-break]

  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]

🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti Light Athiti Light
Subfamily Name Regular Regular
Full Name Athiti-Light Athiti Light
Postscript Name Athiti-Light Athiti-Light
Typographic Family Name Athiti Athiti
Typographic Subfamily Name Light Light
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 569: plus

Width = 582: equal

Width = 447: logicalnot

Width = 583: plusminus

Width = 473: multiply

Width = 526: minus, divide

Width = 465: approxequal

Width = 584: notequal

Width = 588: greaterequal, lessequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 857, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: yi, tifinagh, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak. googlefonts/description/eof_linebreak
  • ⚠️ WARN

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


    [code: missing-eof-linebreak]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated. googlefonts/description/family_update
  • ⚠️ 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]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<125.0,538.0>--<133.0,324.0>> -> L<<133.0,324.0>--<133.0,0.0>>

* Eng (U+014A): L<<484.0,74.0>--<477.0,288.0>> -> L<<477.0,288.0>--<477.0,612.0>>

* M (U+004D): L<<146.0,522.0>--<140.0,319.0>> -> L<<140.0,319.0>--<124.0,0.0>>

* M (U+004D): L<<550.0,0.0>--<535.0,319.0>> -> L<<535.0,319.0>--<529.0,522.0>>

* N (U+004E): L<<125.0,538.0>--<133.0,324.0>> -> L<<133.0,324.0>--<133.0,0.0>>

* N (U+004E): L<<484.0,74.0>--<477.0,288.0>> -> L<<477.0,288.0>--<477.0,612.0>>

* Nacute (U+0143): L<<125.0,538.0>--<133.0,324.0>> -> L<<133.0,324.0>--<133.0,0.0>>

* Nacute (U+0143): L<<484.0,74.0>--<477.0,288.0>> -> L<<477.0,288.0>--<477.0,612.0>>

* Ncaron (U+0147): L<<125.0,538.0>--<133.0,324.0>> -> L<<133.0,324.0>--<133.0,0.0>>

* Ncaron (U+0147): L<<484.0,74.0>--<477.0,288.0>> -> L<<477.0,288.0>--<477.0,612.0>>

* 61 more.

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

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

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

* ae (U+00E6): L<<656.0,214.0>--<389.0,215.0>>

* aeacute (U+01FD): L<<656.0,214.0>--<389.0,215.0>>

* daggerdbl (U+2021): L<<269.0,175.0>--<270.0,392.0>>

* daggerdbl (U+2021): L<<307.0,392.0>--<308.0,175.0>>

* e (U+0065): L<<371.0,214.0>--<103.0,215.0>>

* eacute (U+00E9): L<<371.0,214.0>--<103.0,215.0>>

* ebreve (U+0115): L<<371.0,214.0>--<103.0,215.0>>

* ecaron (U+011B): L<<371.0,214.0>--<103.0,215.0>>

* ecircumflex (U+00EA): L<<371.0,214.0>--<103.0,215.0>>

* edieresis (U+00EB): L<<371.0,214.0>--<103.0,215.0>>

* 15 more.

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

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


    [code: unknown]
ℹ️ INFO Check if OS/2 xAvgCharWidth is correct. opentype/xavgcharwidth
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    .


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

    Hinting filesize impact:

Athiti-Light.ttf
Dehinted Size 108.0kb
Hinted Size 173.0kb
Increase 65.0kb
Change 60.2 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

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

    Please consider adding a family.minisite_url entry.


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

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[44] Athiti-Medium.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 1, encoding 0) is "Version 1.032".


    [code: mismatch]

  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]

🔥 FAIL Does full font name begin with the font family name? opentype/name/match_familyname_fullfont
  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-Medium' does not begin with the font family name 'Athiti Medium' in platformID 1, encodingID 0, languageID 0(0000), and nameID 1.


    [code: mismatch-font-names]

  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-Medium' does not begin with the font family name 'Athiti Medium' in platformID 3, encodingID 1, languageID 1033(0409), and nameID 1.


    [code: mismatch-font-names]

🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Are there unwanted tables? unwanted_tables
  • 🔥 FAIL

    The following unwanted font tables were found:

  • FFTM - Table contains redundant FontForge timestamp info

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Space and non-breaking space have the same width? whitespace_widths
  • 🔥 FAIL

    Space and non-breaking space have differing width: The space glyph named space is 300 font units wide, non-breaking space named (uni00A0) is 260 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width.


    [code: different-widths]
🔥 FAIL Check font family directory name. googlefonts/metadata/family_directory_name
  • 🔥 FAIL

    Family name on METADATA.pb is "Athiti"
    Directory name is "."
    Expected "athiti"


    [code: bad-directory-name]
🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table? googlefonts/metadata/nameid/family_and_full_names
  • 🔥 FAIL

    METADATA.pb: Fullname "Athiti Medium" does not match name table entry "Athiti-Medium"!


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
  • 🔥 FAIL

    Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file.


    [code: lacks-git-url]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform MACINTOSH contains a line-break.


    [code: line-break]

  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]

🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti Medium Athiti Medium
Subfamily Name Regular Regular
Full Name Athiti-Medium Athiti Medium
Postscript Name Athiti-Medium Athiti-Medium
Typographic Family Name Athiti Athiti
Typographic Subfamily Name Medium Medium
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 560: less, equal, greater

Width = 460: logicalnot

Width = 590: plusminus

Width = 476: multiply

Width = 472: approxequal

Width = 570: notequal

Width = 585: greaterequal, lessequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 840, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: yi, tifinagh, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak. googlefonts/description/eof_linebreak
  • ⚠️ WARN

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


    [code: missing-eof-linebreak]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated. googlefonts/description/family_update
  • ⚠️ 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]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<151.0,485.0>--<161.0,328.0>> -> L<<161.0,328.0>--<161.0,0.0>>

* Eng (U+014A): L<<474.0,131.0>--<464.0,288.0>> -> L<<464.0,288.0>--<464.0,616.0>>

* M (U+004D): L<<166.0,467.0>--<166.0,318.0>> -> L<<166.0,318.0>--<154.0,0.0>>

* M (U+004D): L<<540.0,0.0>--<528.0,318.0>> -> L<<528.0,318.0>--<528.0,467.0>>

* N (U+004E): L<<151.0,485.0>--<161.0,328.0>> -> L<<161.0,328.0>--<161.0,0.0>>

* N (U+004E): L<<474.0,131.0>--<464.0,288.0>> -> L<<464.0,288.0>--<464.0,616.0>>

* Nacute (U+0143): L<<151.0,485.0>--<161.0,328.0>> -> L<<161.0,328.0>--<161.0,0.0>>

* Nacute (U+0143): L<<474.0,131.0>--<464.0,288.0>> -> L<<464.0,288.0>--<464.0,616.0>>

* Ncaron (U+0147): L<<151.0,485.0>--<161.0,328.0>> -> L<<161.0,328.0>--<161.0,0.0>>

* Ncaron (U+0147): L<<474.0,131.0>--<464.0,288.0>> -> L<<464.0,288.0>--<464.0,616.0>>

* 56 more.

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

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


    [code: unknown]
ℹ️ INFO Check if OS/2 xAvgCharWidth is correct. opentype/xavgcharwidth
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    .


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

    Hinting filesize impact:

Athiti-Medium.ttf
Dehinted Size 109.9kb
Hinted Size 178.4kb
Increase 68.5kb
Change 62.3 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

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

    Please consider adding a family.minisite_url entry.


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

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[44] Athiti-Regular.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 1, encoding 0) is "Version 1.032".


    [code: mismatch]

  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]

🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Are there unwanted tables? unwanted_tables
  • 🔥 FAIL

    The following unwanted font tables were found:

  • FFTM - Table contains redundant FontForge timestamp info

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Space and non-breaking space have the same width? whitespace_widths
  • 🔥 FAIL

    Space and non-breaking space have differing width: The space glyph named space is 300 font units wide, non-breaking space named (uni00A0) is 260 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width.


    [code: different-widths]
🔥 FAIL Check font family directory name. googlefonts/metadata/family_directory_name
  • 🔥 FAIL

    Family name on METADATA.pb is "Athiti"
    Directory name is "."
    Expected "athiti"


    [code: bad-directory-name]
🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table? googlefonts/metadata/nameid/family_and_full_names
  • 🔥 FAIL

    METADATA.pb: Fullname "Athiti Regular" does not match name table entry "Athiti-Regular"!


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
  • 🔥 FAIL

    Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file.


    [code: lacks-git-url]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform MACINTOSH contains a line-break.


    [code: line-break]

  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]

🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti Athiti
Subfamily Name Regular Regular
Full Name Athiti-Regular Athiti Regular
Postscript Name Athiti-Regular Athiti-Regular
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: quotedbl	Contours detected: 1	Expected: 2
  • Glyph name: uni00AD Contours detected: 1 Expected: 0

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 557: plus

Width = 572: equal

Width = 453: logicalnot

Width = 586: plusminus

Width = 474: multiply

Width = 532: minus, divide

Width = 468: approxequal

Width = 578: notequal

Width = 587: greaterequal, lessequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 850, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: yi, tifinagh, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak. googlefonts/description/eof_linebreak
  • ⚠️ WARN

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


    [code: missing-eof-linebreak]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated. googlefonts/description/family_update
  • ⚠️ 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]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<136.0,516.0>--<144.0,326.0>> -> L<<144.0,326.0>--<144.0,0.0>>

* Eng (U+014A): L<<480.0,98.0>--<471.0,288.0>> -> L<<471.0,288.0>--<471.0,614.0>>

* M (U+004D): L<<154.0,499.0>--<151.0,319.0>> -> L<<151.0,319.0>--<137.0,0.0>>

* M (U+004D): L<<546.0,0.0>--<532.0,319.0>> -> L<<532.0,319.0>--<528.0,499.0>>

* N (U+004E): L<<137.0,516.0>--<145.0,326.0>> -> L<<145.0,326.0>--<145.0,0.0>>

* N (U+004E): L<<481.0,98.0>--<472.0,288.0>> -> L<<472.0,288.0>--<472.0,614.0>>

* Nacute (U+0143): L<<136.0,516.0>--<144.0,326.0>> -> L<<144.0,326.0>--<144.0,0.0>>

* Nacute (U+0143): L<<480.0,98.0>--<471.0,288.0>> -> L<<471.0,288.0>--<471.0,614.0>>

* Ncaron (U+0147): L<<136.0,516.0>--<144.0,326.0>> -> L<<144.0,326.0>--<144.0,0.0>>

* Ncaron (U+0147): L<<480.0,98.0>--<471.0,288.0>> -> L<<471.0,288.0>--<471.0,614.0>>

* 69 more.

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

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

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

* ae (U+00E6): L<<656.0,208.0>--<401.0,210.0>>

* aeacute (U+01FD): L<<656.0,208.0>--<401.0,210.0>>

* e (U+0065): L<<374.0,208.0>--<114.0,210.0>>

* eacute (U+00E9): L<<374.0,208.0>--<114.0,210.0>>

* ebreve (U+0115): L<<374.0,208.0>--<114.0,210.0>>

* ecaron (U+011B): L<<374.0,208.0>--<114.0,210.0>>

* ecircumflex (U+00EA): L<<374.0,208.0>--<114.0,210.0>>

* edieresis (U+00EB): L<<374.0,208.0>--<114.0,210.0>>

* edotaccent (U+0117): L<<374.0,208.0>--<114.0,210.0>>

* egrave (U+00E8): L<<374.0,208.0>--<114.0,210.0>>

* 13 more.

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

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


    [code: unknown]
ℹ️ INFO Check if OS/2 xAvgCharWidth is correct. opentype/xavgcharwidth
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    .


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

    Hinting filesize impact:

Athiti-Regular.ttf
Dehinted Size 110.1kb
Hinted Size 182.9kb
Increase 72.8kb
Change 66.1 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

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

    Please consider adding a family.minisite_url entry.


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

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[44] Athiti-SemiBold.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 1, encoding 0) is "Version 1.032".


    [code: mismatch]

  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]

🔥 FAIL Does full font name begin with the font family name? opentype/name/match_familyname_fullfont
  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-SemiBold' does not begin with the font family name 'Athiti SemiBold' in platformID 1, encodingID 0, languageID 0(0000), and nameID 1.


    [code: mismatch-font-names]

  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-SemiBold' does not begin with the font family name 'Athiti SemiBold' in platformID 3, encodingID 1, languageID 1033(0409), and nameID 1.


    [code: mismatch-font-names]

🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Are there unwanted tables? unwanted_tables
  • 🔥 FAIL

    The following unwanted font tables were found:

  • FFTM - Table contains redundant FontForge timestamp info

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Check font family directory name. googlefonts/metadata/family_directory_name
  • 🔥 FAIL

    Family name on METADATA.pb is "Athiti"
    Directory name is "."
    Expected "athiti"


    [code: bad-directory-name]
🔥 FAIL METADATA.pb font.name and font.full_name fields match the values declared on the name table? googlefonts/metadata/nameid/family_and_full_names
  • 🔥 FAIL

    METADATA.pb: Fullname "Athiti SemiBold" does not match name table entry "Athiti-SemiBold"!


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL? googlefonts/description/git_url
  • 🔥 FAIL

    Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file.


    [code: lacks-git-url]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform MACINTOSH contains a line-break.


    [code: line-break]

  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]

🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti SemiBold Athiti SemiBold
Subfamily Name Regular Regular
Full Name Athiti-SemiBold Athiti SemiBold
Postscript Name Athiti-SemiBold Athiti-SemiBold
Typographic Family Name Athiti Athiti
Typographic Subfamily Name SemiBold SemiBold
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: quotedbl	Contours detected: 1	Expected: 2
  • Glyph name: uni00AD Contours detected: 1 Expected: 0

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 583: less, greater

Width = 577: equal

Width = 477: logicalnot

Width = 607: plusminus

Width = 484: multiply

Width = 532: divide

Width = 472: approxequal

Width = 570: notequal

Width = 603: greaterequal, lessequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 840, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: yi, tifinagh, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak. googlefonts/description/eof_linebreak
  • ⚠️ WARN

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


    [code: missing-eof-linebreak]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated. googlefonts/description/family_update
  • ⚠️ 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]
⚠️ WARN Check copyright namerecords match license file. googlefonts/name/license
⚠️ WARN License URL matches License text on name table? googlefonts/name/license_url
  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<170.0,476.0>--<181.0,316.0>> -> L<<181.0,316.0>--<181.0,0.0>>

* Eng (U+014A): L<<471.0,142.0>--<460.0,301.0>> -> L<<460.0,301.0>--<460.0,618.0>>

* Euro (U+20AC): L<<216.0,322.0>--<215.0,299.0>> -> L<<215.0,299.0>--<216.0,275.0>>

* M (U+004D): L<<185.0,467.0>--<187.0,311.0>> -> L<<187.0,311.0>--<175.0,0.0>>

* M (U+004D): L<<536.0,0.0>--<525.0,311.0>> -> L<<525.0,311.0>--<526.0,467.0>>

* N (U+004E): L<<170.0,476.0>--<181.0,316.0>> -> L<<181.0,316.0>--<181.0,0.0>>

* N (U+004E): L<<471.0,142.0>--<460.0,301.0>> -> L<<460.0,301.0>--<460.0,618.0>>

* Nacute (U+0143): L<<170.0,476.0>--<181.0,316.0>> -> L<<181.0,316.0>--<181.0,0.0>>

* Nacute (U+0143): L<<471.0,142.0>--<460.0,301.0>> -> L<<460.0,301.0>--<460.0,618.0>>

* Ncaron (U+0147): L<<170.0,476.0>--<181.0,316.0>> -> L<<181.0,316.0>--<181.0,0.0>>

* 50 more.

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

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

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

* M (U+004D): L<<525.0,311.0>--<526.0,467.0>>

* florin (U+0192): L<<290.0,466.0>--<407.0,467.0>>

* uni1E42 (U+1E42): L<<525.0,311.0>--<526.0,467.0>>

[code: found-semi-vertical]

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


    [code: unknown]
ℹ️ INFO Check if OS/2 xAvgCharWidth is correct. opentype/xavgcharwidth
ℹ️ INFO List all superfamily filepaths superfamily/list
  • ℹ️ INFO

    .


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

    Hinting filesize impact:

Athiti-SemiBold.ttf
Dehinted Size 109.6kb
Hinted Size 181.1kb
Increase 71.5kb
Change 65.2 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

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

    Please consider adding a family.minisite_url entry.


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

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[2] Family checks
🔥 FAIL OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts. googlefonts/use_typo_metrics
  • 🔥 FAIL

    OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['Athiti-Bold.ttf', 'Athiti-ExtraLight.ttf', 'Athiti-Light.ttf', 'Athiti-Medium.ttf', 'Athiti-Regular.ttf', 'Athiti-SemiBold.ttf'].


    [code: missing-os2-fsselection-bit7]
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 105 113 321 49 743 0
0% 0% 8% 8% 24% 4% 56% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@emmamarichal
Copy link
Collaborator

Current live version:

FontBakery report

fontbakery version: 0.13.1

Check results

[35] Athiti-Bold.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL PPEM must be an integer on hinted fonts. integer_ppem_if_hinted
  • 🔥 FAIL

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

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

# create virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/gftools
[code: bad-flags]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]
🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 621: less, greater

Width = 604: equal

Width = 504: logicalnot

Width = 634: plusminus

Width = 496: multiply

Width = 520: divide

Width = 472: approxequal

Width = 570: notequal

Width = 631: lessequal, greaterequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 840, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

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

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<202.0,461.0>--<214.0,298.0>> -> L<<214.0,298.0>--<214.0,0.0>>

* Eng (U+014A): L<<467.0,159.0>--<455.0,322.0>> -> L<<455.0,322.0>--<455.0,620.0>>

* M (U+004D): L<<216.0,467.0>--<220.0,300.0>> -> L<<220.0,300.0>--<209.0,0.0>>

* M (U+004D): L<<531.0,0.0>--<520.0,300.0>> -> L<<520.0,300.0>--<524.0,467.0>>

* N (U+004E): L<<202.0,461.0>--<214.0,298.0>> -> L<<214.0,298.0>--<214.0,0.0>>

* N (U+004E): L<<467.0,159.0>--<455.0,322.0>> -> L<<455.0,322.0>--<455.0,620.0>>

* Nacute (U+0143): L<<202.0,461.0>--<214.0,298.0>> -> L<<214.0,298.0>--<214.0,0.0>>

* Nacute (U+0143): L<<467.0,159.0>--<455.0,322.0>> -> L<<455.0,322.0>--<455.0,620.0>>

* Ncaron (U+0147): L<<202.0,461.0>--<214.0,298.0>> -> L<<214.0,298.0>--<214.0,0.0>>

* Ncaron (U+0147): L<<467.0,159.0>--<455.0,322.0>> -> L<<455.0,322.0>--<455.0,620.0>>

* 52 more.

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

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

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

* ae (U+00E6): L<<700.0,187.0>--<468.0,189.0>>

* aeacute (U+01FD): L<<700.0,187.0>--<468.0,189.0>>

* e (U+0065): L<<416.0,187.0>--<184.0,189.0>>

* eacute (U+00E9): L<<416.0,187.0>--<184.0,189.0>>

* ebreve (U+0115): L<<416.0,187.0>--<184.0,189.0>>

* ecaron (U+011B): L<<416.0,187.0>--<184.0,189.0>>

* ecircumflex (U+00EA): L<<416.0,187.0>--<184.0,189.0>>

* edieresis (U+00EB): L<<416.0,187.0>--<184.0,189.0>>

* edotaccent (U+0117): L<<416.0,187.0>--<184.0,189.0>>

* egrave (U+00E8): L<<416.0,187.0>--<184.0,189.0>>

* 13 more.

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

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


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

    .


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

    Hinting filesize impact:

Athiti-Bold.ttf
Dehinted Size 103.5kb
Hinted Size 174.2kb
Increase 70.7kb
Change 68.3 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[39] Athiti-ExtraLight.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]
🔥 FAIL Does full font name begin with the font family name? opentype/name/match_familyname_fullfont
  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-ExtraLight' does not begin with the font family name 'Athiti ExtraLight' in platformID 3, encodingID 1, languageID 1033(0409), and nameID 1.


    [code: mismatch-font-names]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL PPEM must be an integer on hinted fonts. integer_ppem_if_hinted
  • 🔥 FAIL

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

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

# create virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/gftools
[code: bad-flags]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Space and non-breaking space have the same width? whitespace_widths
  • 🔥 FAIL

    Space and non-breaking space have differing width: The space glyph named space is 300 font units wide, non-breaking space named (uni00A0) is 260 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width.


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]
🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti ExtraLight Athiti ExtraLight
Subfamily Name Regular Regular
Full Name Athiti-ExtraLight Athiti ExtraLight
Postscript Name Athiti-ExtraLight Athiti-ExtraLight
Typographic Family Name Athiti Athiti
Typographic Subfamily Name ExtraLight ExtraLight
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

🔥 FAIL Check the OS/2 usWeightClass is appropriate for the font's best SubFamily name. googlefonts/weightclass
  • 🔥 FAIL

    Best SubFamily name is 'ExtraLight'. Expected OS/2 usWeightClass is 200, got 250.


    [code: bad-value]
⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 617: less, greater

Width = 590: notequal, equal

Width = 442: logicalnot

Width = 472: multiply

Width = 520: divide, minus

Width = 462: approxequal

Width = 589: lessequal, greaterequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 864, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

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

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<115.0,559.0>--<121.0,322.0>> -> L<<121.0,322.0>--<121.0,0.0>>

* Eng (U+014A): L<<488.0,51.0>--<482.0,288.0>> -> L<<482.0,288.0>--<482.0,610.0>>

* M (U+004D): L<<137.0,544.0>--<129.0,320.0>> -> L<<129.0,320.0>--<112.0,0.0>>

* M (U+004D): L<<554.0,0.0>--<537.0,320.0>> -> L<<537.0,320.0>--<529.0,544.0>>

* N (U+004E): L<<115.0,559.0>--<121.0,322.0>> -> L<<121.0,322.0>--<121.0,0.0>>

* N (U+004E): L<<488.0,51.0>--<482.0,288.0>> -> L<<482.0,288.0>--<482.0,610.0>>

* Nacute (U+0143): L<<115.0,559.0>--<121.0,322.0>> -> L<<121.0,322.0>--<121.0,0.0>>

* Nacute (U+0143): L<<488.0,51.0>--<482.0,288.0>> -> L<<482.0,288.0>--<482.0,610.0>>

* Ncaron (U+0147): L<<115.0,559.0>--<121.0,322.0>> -> L<<121.0,322.0>--<121.0,0.0>>

* Ncaron (U+0147): L<<488.0,51.0>--<482.0,288.0>> -> L<<482.0,288.0>--<482.0,610.0>>

* 75 more.

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

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

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

* uni018F (U+018F): L<<132.0,327.0>--<494.0,324.0>>

[code: found-semi-vertical]

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


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

    .


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

    Hinting filesize impact:

Athiti-ExtraLight.ttf
Dehinted Size 103.1kb
Hinted Size 162.9kb
Increase 59.8kb
Change 58.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[38] Athiti-Light.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]
🔥 FAIL Does full font name begin with the font family name? opentype/name/match_familyname_fullfont
  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-Light' does not begin with the font family name 'Athiti Light' in platformID 3, encodingID 1, languageID 1033(0409), and nameID 1.


    [code: mismatch-font-names]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL PPEM must be an integer on hinted fonts. integer_ppem_if_hinted
  • 🔥 FAIL

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

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

# create virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/gftools
[code: bad-flags]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Space and non-breaking space have the same width? whitespace_widths
  • 🔥 FAIL

    Space and non-breaking space have differing width: The space glyph named space is 300 font units wide, non-breaking space named (uni00A0) is 260 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width.


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]
🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti Light Athiti Light
Subfamily Name Regular Regular
Full Name Athiti-Light Athiti Light
Postscript Name Athiti-Light Athiti-Light
Typographic Family Name Athiti Athiti
Typographic Subfamily Name Light Light
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 569: plus

Width = 582: equal

Width = 447: logicalnot

Width = 583: plusminus

Width = 473: multiply

Width = 526: divide, minus

Width = 465: approxequal

Width = 584: notequal

Width = 588: lessequal, greaterequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 857, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

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

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<125.0,538.0>--<133.0,324.0>> -> L<<133.0,324.0>--<133.0,0.0>>

* Eng (U+014A): L<<484.0,74.0>--<477.0,288.0>> -> L<<477.0,288.0>--<477.0,612.0>>

* M (U+004D): L<<146.0,522.0>--<140.0,319.0>> -> L<<140.0,319.0>--<124.0,0.0>>

* M (U+004D): L<<550.0,0.0>--<535.0,319.0>> -> L<<535.0,319.0>--<529.0,522.0>>

* N (U+004E): L<<125.0,538.0>--<133.0,324.0>> -> L<<133.0,324.0>--<133.0,0.0>>

* N (U+004E): L<<484.0,74.0>--<477.0,288.0>> -> L<<477.0,288.0>--<477.0,612.0>>

* Nacute (U+0143): L<<125.0,538.0>--<133.0,324.0>> -> L<<133.0,324.0>--<133.0,0.0>>

* Nacute (U+0143): L<<484.0,74.0>--<477.0,288.0>> -> L<<477.0,288.0>--<477.0,612.0>>

* Ncaron (U+0147): L<<125.0,538.0>--<133.0,324.0>> -> L<<133.0,324.0>--<133.0,0.0>>

* Ncaron (U+0147): L<<484.0,74.0>--<477.0,288.0>> -> L<<477.0,288.0>--<477.0,612.0>>

* 61 more.

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

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

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

* ae (U+00E6): L<<656.0,214.0>--<389.0,215.0>>

* aeacute (U+01FD): L<<656.0,214.0>--<389.0,215.0>>

* daggerdbl (U+2021): L<<269.0,175.0>--<270.0,392.0>>

* daggerdbl (U+2021): L<<307.0,392.0>--<308.0,175.0>>

* e (U+0065): L<<371.0,214.0>--<103.0,215.0>>

* eacute (U+00E9): L<<371.0,214.0>--<103.0,215.0>>

* ebreve (U+0115): L<<371.0,214.0>--<103.0,215.0>>

* ecaron (U+011B): L<<371.0,214.0>--<103.0,215.0>>

* ecircumflex (U+00EA): L<<371.0,214.0>--<103.0,215.0>>

* edieresis (U+00EB): L<<371.0,214.0>--<103.0,215.0>>

* 15 more.

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

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


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

    .


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

    Hinting filesize impact:

Athiti-Light.ttf
Dehinted Size 102.0kb
Hinted Size 165.9kb
Increase 63.9kb
Change 62.6 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[37] Athiti-Medium.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]
🔥 FAIL Does full font name begin with the font family name? opentype/name/match_familyname_fullfont
  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-Medium' does not begin with the font family name 'Athiti Medium' in platformID 3, encodingID 1, languageID 1033(0409), and nameID 1.


    [code: mismatch-font-names]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL PPEM must be an integer on hinted fonts. integer_ppem_if_hinted
  • 🔥 FAIL

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

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

# create virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/gftools
[code: bad-flags]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Space and non-breaking space have the same width? whitespace_widths
  • 🔥 FAIL

    Space and non-breaking space have differing width: The space glyph named space is 300 font units wide, non-breaking space named (uni00A0) is 260 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width.


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]
🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti Medium Athiti Medium
Subfamily Name Regular Regular
Full Name Athiti-Medium Athiti Medium
Postscript Name Athiti-Medium Athiti-Medium
Typographic Family Name Athiti Athiti
Typographic Subfamily Name Medium Medium
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 560: greater, less, equal

Width = 460: logicalnot

Width = 590: plusminus

Width = 476: multiply

Width = 472: approxequal

Width = 570: notequal

Width = 585: lessequal, greaterequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 840, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

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

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<151.0,485.0>--<161.0,328.0>> -> L<<161.0,328.0>--<161.0,0.0>>

* Eng (U+014A): L<<474.0,131.0>--<464.0,288.0>> -> L<<464.0,288.0>--<464.0,616.0>>

* M (U+004D): L<<166.0,467.0>--<166.0,318.0>> -> L<<166.0,318.0>--<154.0,0.0>>

* M (U+004D): L<<540.0,0.0>--<528.0,318.0>> -> L<<528.0,318.0>--<528.0,467.0>>

* N (U+004E): L<<151.0,485.0>--<161.0,328.0>> -> L<<161.0,328.0>--<161.0,0.0>>

* N (U+004E): L<<474.0,131.0>--<464.0,288.0>> -> L<<464.0,288.0>--<464.0,616.0>>

* Nacute (U+0143): L<<151.0,485.0>--<161.0,328.0>> -> L<<161.0,328.0>--<161.0,0.0>>

* Nacute (U+0143): L<<474.0,131.0>--<464.0,288.0>> -> L<<464.0,288.0>--<464.0,616.0>>

* Ncaron (U+0147): L<<151.0,485.0>--<161.0,328.0>> -> L<<161.0,328.0>--<161.0,0.0>>

* Ncaron (U+0147): L<<474.0,131.0>--<464.0,288.0>> -> L<<464.0,288.0>--<464.0,616.0>>

* 56 more.

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

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


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

    .


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

    Hinting filesize impact:

Athiti-Medium.ttf
Dehinted Size 103.1kb
Hinted Size 170.5kb
Increase 67.4kb
Change 65.3 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[37] Athiti-Regular.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL PPEM must be an integer on hinted fonts. integer_ppem_if_hinted
  • 🔥 FAIL

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

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

# create virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/gftools
[code: bad-flags]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


    [code: ascender]
🔥 FAIL Space and non-breaking space have the same width? whitespace_widths
  • 🔥 FAIL

    Space and non-breaking space have differing width: The space glyph named space is 300 font units wide, non-breaking space named (uni00A0) is 260 font units wide, and both should be positive and the same. GlyphsApp has "Sidebearing arithmetic" (https://glyphsapp.com/tutorials/spacing) which allows you to set the non-breaking space width to always equal the space width.


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]
🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti Athiti
Subfamily Name Regular Regular
Full Name Athiti-Regular Athiti Regular
Postscript Name Athiti-Regular Athiti-Regular
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: quotedbl	Contours detected: 1	Expected: 2
  • Glyph name: uni00AD Contours detected: 1 Expected: 0

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 557: plus

Width = 572: equal

Width = 453: logicalnot

Width = 586: plusminus

Width = 474: multiply

Width = 532: divide, minus

Width = 468: approxequal

Width = 578: notequal

Width = 587: lessequal, greaterequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 850, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

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

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<136.0,516.0>--<144.0,326.0>> -> L<<144.0,326.0>--<144.0,0.0>>

* Eng (U+014A): L<<480.0,98.0>--<471.0,288.0>> -> L<<471.0,288.0>--<471.0,614.0>>

* M (U+004D): L<<154.0,499.0>--<151.0,319.0>> -> L<<151.0,319.0>--<137.0,0.0>>

* M (U+004D): L<<546.0,0.0>--<532.0,319.0>> -> L<<532.0,319.0>--<528.0,499.0>>

* N (U+004E): L<<137.0,516.0>--<145.0,326.0>> -> L<<145.0,326.0>--<145.0,0.0>>

* N (U+004E): L<<481.0,98.0>--<472.0,288.0>> -> L<<472.0,288.0>--<472.0,614.0>>

* Nacute (U+0143): L<<136.0,516.0>--<144.0,326.0>> -> L<<144.0,326.0>--<144.0,0.0>>

* Nacute (U+0143): L<<480.0,98.0>--<471.0,288.0>> -> L<<471.0,288.0>--<471.0,614.0>>

* Ncaron (U+0147): L<<136.0,516.0>--<144.0,326.0>> -> L<<144.0,326.0>--<144.0,0.0>>

* Ncaron (U+0147): L<<480.0,98.0>--<471.0,288.0>> -> L<<471.0,288.0>--<471.0,614.0>>

* 69 more.

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

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

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

* ae (U+00E6): L<<656.0,208.0>--<401.0,210.0>>

* aeacute (U+01FD): L<<656.0,208.0>--<401.0,210.0>>

* e (U+0065): L<<374.0,208.0>--<114.0,210.0>>

* eacute (U+00E9): L<<374.0,208.0>--<114.0,210.0>>

* ebreve (U+0115): L<<374.0,208.0>--<114.0,210.0>>

* ecaron (U+011B): L<<374.0,208.0>--<114.0,210.0>>

* ecircumflex (U+00EA): L<<374.0,208.0>--<114.0,210.0>>

* edieresis (U+00EB): L<<374.0,208.0>--<114.0,210.0>>

* edotaccent (U+0117): L<<374.0,208.0>--<114.0,210.0>>

* egrave (U+00E8): L<<374.0,208.0>--<114.0,210.0>>

* 13 more.

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

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


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

    .


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

    Hinting filesize impact:

Athiti-Regular.ttf
Dehinted Size 103.0kb
Hinted Size 174.7kb
Increase 71.7kb
Change 69.6 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[37] Athiti-SemiBold.ttf
🔥 FAIL Checking font version fields (head and name table). opentype/font_version
  • 🔥 FAIL

    head version is "1.00200" while name version string (for platform 3, encoding 1) is "Version 1.032".


    [code: mismatch]
🔥 FAIL Does full font name begin with the font family name? opentype/name/match_familyname_fullfont
  • 🔥 FAIL

    On the 'name' table, the full font name 'Athiti-SemiBold' does not begin with the font family name 'Athiti SemiBold' in platformID 3, encodingID 1, languageID 1033(0409), and nameID 1.


    [code: mismatch-font-names]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent. family/win_ascent_and_descent
  • 🔥 FAIL

    OS/2.usWinDescent value should be equal or greater than 452, but got 450 instead


    [code: descent]
🔥 FAIL Do we have the latest version of FontBakery installed? fontbakery_version
  • 🔥 FAIL

    Current FontBakery version is 0.13.1, while a newer 0.13.2 is already available. Please upgrade it with 'pip install -U fontbakery'


    [code: outdated-fontbakery]
🔥 FAIL PPEM must be an integer on hinted fonts. integer_ppem_if_hinted
  • 🔥 FAIL

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

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

# create virtualenv
python3 -m venv venv
# activate virtualenv
source venv/bin/activate
# install gftools
pip install git+https://www.github.com/googlefonts/gftools
[code: bad-flags]
🔥 FAIL Checking Vertical Metric Linegaps. linegaps
  • 🔥 FAIL

    OS/2 sTypoLineGap is not equal to 0.

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

[code: OS/2]
🔥 FAIL Description strings in the name table must not contain copyright info. name/no_copyright_on_description
  • 🔥 FAIL

    Some namerecords with ID=10 (NameID.DESCRIPTION) containing copyright info should be removed (perhaps these were added by a longstanding FontLab Studio 5.x bug that copied copyright notices to them.)


    [code: copyright-on-description]
🔥 FAIL Checking OS/2 Metrics match hhea Metrics. os2_metrics_match_hhea
  • 🔥 FAIL

    OS/2 sTypoAscender (750) and hhea ascent (1150) must be equal.


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

    GF_Phonetics_SinoExt glyphset:

FAIL messages Languages
Shaper didn't attach acutecomb to J nl_Latn (Dutch)
Shaper didn't attach acutecomb to j nl_Latn (Dutch)
[code: failed-language-shaping]
🔥 FAIL Name table entries should not contain line-breaks. googlefonts/name/line_breaks
  • 🔥 FAIL

    Name entry LICENSE_DESCRIPTION on platform WINDOWS contains a line-break.


    [code: line-break]
🔥 FAIL Copyright notices match canonical pattern in fonts googlefonts/font_copyright
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright (c) 2015, Cadson Demak ([email protected])"

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string. googlefonts/license/OFL_copyright
  • 🔥 FAIL

    First line in license file is:

"copyright (c) 2015, cadson demak ([email protected])"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Check font names are correct googlefonts/font_names
  • 🔥 FAIL

    Font names are incorrect:

nameID current expected
Family Name Athiti SemiBold Athiti SemiBold
Subfamily Name Regular Regular
Full Name Athiti-SemiBold Athiti SemiBold
Postscript Name Athiti-SemiBold Athiti-SemiBold
Typographic Family Name Athiti Athiti
Typographic Subfamily Name SemiBold SemiBold
[code: bad-names]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. googlefonts/vertical_metrics_regressions
  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoAscender is 750 when it should be 1150


    [code: bad-typo-ascender]

  • 🔥 FAIL

    Athiti-Regular: OS/2 sTypoDescender is -250 when it should be -450


    [code: bad-typo-descender]

⚠️ WARN Check mark characters are in GDEF mark glyph class. opentype/gdef_mark_chars
  • ⚠️ WARN

    The following mark characters could be in the GDEF mark glyph class:
    acutecomb (U+0301), dotbelowcomb (U+0323), gravecomb (U+0300), hookabovecomb (U+0309), tildecomb (U+0303), uni0302 (U+0302), uni0304 (U+0304), uni0306 (U+0306), uni0307 (U+0307), uni0308 (U+0308) and 10 more.

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

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

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

  • ⚠️ WARN

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


    [code: decomposed-outline]

⚠️ WARN Check if each glyph has the recommended amount of contours. contour_count
  • ⚠️ WARN

    This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.

The following glyphs do not have the recommended number of contours:

- Glyph name: quotedbl	Contours detected: 1	Expected: 2
  • Glyph name: uni00AD Contours detected: 1 Expected: 0

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3

  • Glyph name: fi Contours detected: 1 Expected: 3

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

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

  • Glyph name: uni0E10 Contours detected: 2 Expected: 1 or 5

  • Glyph name: uni0E55 Contours detected: 2 Expected: 1 or 3


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature? ligature_carets
  • ⚠️ WARN

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


    [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. math_signs_width
  • ⚠️ WARN

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

Width = 583: less, greater

Width = 577: equal

Width = 477: logicalnot

Width = 607: plusminus

Width = 484: multiply

Width = 532: divide

Width = 472: approxequal

Width = 570: notequal

Width = 603: lessequal, greaterequal

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

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. typoascender_exceeds_Agrave
  • ⚠️ WARN

    OS/2.sTypoAscender value should be greater than 840, but got 750 instead


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

    Family metadata at . does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets. googlefonts/metadata/unreachable_subsetting
  • ⚠️ WARN

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

  • U+02BE MODIFIER LETTER RIGHT HALF RING: not included in any glyphset definition
  • U+02BF MODIFIER LETTER LEFT HALF RING: not included in any glyphset definition
  • U+02C7 CARON: try adding one of: tifinagh, yi, canadian-aboriginal
  • U+02C8 MODIFIER LETTER VERTICAL LINE: not included in any glyphset definition
  • U+02C9 MODIFIER LETTER MACRON: not included in any glyphset definition
  • U+02CA MODIFIER LETTER ACUTE ACCENT: not included in any glyphset definition
  • U+02CB MODIFIER LETTER GRAVE ACCENT: not included in any glyphset definition
  • U+02CC MODIFIER LETTER LOW VERTICAL LINE: not included in any glyphset definition
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal 84 more.

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

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

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

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

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

    No dotted circle glyph present


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

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

The dot of soft dotted characters should disappear in other cases, for example: i̇ i̛̇ i̛̊ i̛̋ i̤̇ i̤̊ i̤̋ i̦̇ i̦̊ i̦̋ i̧̇ i̧̊ i̧̋ i̮̇ i̮̊ i̮̋ i̱̇ i̱̊ i̱̋ j̆

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers).

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

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

    The following glyphs have colinear vectors:

* Eng (U+014A): L<<170.0,476.0>--<181.0,316.0>> -> L<<181.0,316.0>--<181.0,0.0>>

* Eng (U+014A): L<<471.0,142.0>--<460.0,301.0>> -> L<<460.0,301.0>--<460.0,618.0>>

* Euro (U+20AC): L<<216.0,322.0>--<215.0,299.0>> -> L<<215.0,299.0>--<216.0,275.0>>

* M (U+004D): L<<185.0,467.0>--<187.0,311.0>> -> L<<187.0,311.0>--<175.0,0.0>>

* M (U+004D): L<<536.0,0.0>--<525.0,311.0>> -> L<<525.0,311.0>--<526.0,467.0>>

* N (U+004E): L<<170.0,476.0>--<181.0,316.0>> -> L<<181.0,316.0>--<181.0,0.0>>

* N (U+004E): L<<471.0,142.0>--<460.0,301.0>> -> L<<460.0,301.0>--<460.0,618.0>>

* Nacute (U+0143): L<<170.0,476.0>--<181.0,316.0>> -> L<<181.0,316.0>--<181.0,0.0>>

* Nacute (U+0143): L<<471.0,142.0>--<460.0,301.0>> -> L<<460.0,301.0>--<460.0,618.0>>

* Ncaron (U+0147): L<<170.0,476.0>--<181.0,316.0>> -> L<<181.0,316.0>--<181.0,0.0>>

* 50 more.

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

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

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

* M (U+004D): L<<525.0,311.0>--<526.0,467.0>>

* florin (U+0192): L<<290.0,466.0>--<407.0,467.0>>

* uni1E42 (U+1E42): L<<525.0,311.0>--<526.0,467.0>>

[code: found-semi-vertical]

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

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


    [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. googlefonts/vendor_id
  • ⚠️ WARN

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


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

    .


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

    Hinting filesize impact:

Athiti-SemiBold.ttf
Dehinted Size 102.7kb
Hinted Size 173.0kb
Increase 70.3kb
Change 68.5 %
[code: size-impact]
ℹ️ INFO Font contains all required tables? required_tables
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO Check for presence of an ARTICLE.en_us.html file googlefonts/description/has_article
  • ℹ️ INFO

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


    [code: missing-article]
ℹ️ INFO Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? googlefonts/gasp
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[2] Family checks
🔥 FAIL OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts. googlefonts/use_typo_metrics
  • 🔥 FAIL

    OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['Athiti-Bold.ttf', 'Athiti-ExtraLight.ttf', 'Athiti-Light.ttf', 'Athiti-Medium.ttf', 'Athiti-Regular.ttf', 'Athiti-SemiBold.ttf'].


    [code: missing-os2-fsselection-bit7]
ℹ️ INFO Check axis ordering on the STAT table. googlefonts/STAT/axis_order
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 87 101 621 37 485 0
0% 0% 7% 8% 47% 3% 36% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@emmamarichal emmamarichal added -- Needs Upstream Resolution Upstream fix required before moving forward I Font Upgrade labels Feb 6, 2025
@sebalis
Copy link
Author

sebalis commented Feb 6, 2025

Thanks for the response. As I said above, I don’t really have the expertise to work on these things, this was a quick fix using FontForge. However, I have a strong suspicion that running this FontBakery check on the original font would produce the exact same results, because I didn’t consciously change any of these things. Could you try that, @emmamarichal? If my suspicion is correct, then I’d say these issues should be the flagged and corrected in a separate issue and/or PR.

@emmamarichal
Copy link
Collaborator

@sebalis, yes, this is what I did (you'll find two fontbakery reports above).
For example, for ExtraLight in the current version on the API, there is 39 issues, whereas there are 47 for the version in this PR. It's maybe because of the upgrade of our tools.
I'll open an issue for this upgrade and we will plan it later!

@emmamarichal emmamarichal mentioned this pull request Feb 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-- Needs Upstream Resolution Upstream fix required before moving forward I Font Upgrade
Projects
Status: PR GF
Development

Successfully merging this pull request may close these issues.

2 participants