Skip to content

Reference 16 more modernized .glyphs source repositories (SFD -> Glyphs)#10717

Merged
felipesanches merged 16 commits into
mainfrom
sfd-modernized-sources-round3-2026-07
Jul 21, 2026
Merged

Reference 16 more modernized .glyphs source repositories (SFD -> Glyphs)#10717
felipesanches merged 16 commits into
mainfrom
sfd-modernized-sources-round3-2026-07

Conversation

@felipesanches

Copy link
Copy Markdown
Collaborator

The third batch in this series (after #10697 and #10709): 16 families whose upstream was a FontForge .sfd project with no source that builds on the current Google Fonts Rust pipeline. Each .sfd was converted to Glyphs (.glyphs), placed in a new Unified Font Repository under the googlefonts org, and made to build with gftools-builder3 + fontc. The rebuilt fonts were verified functionally equivalent to the shipped binaries.

Each family is one commit: it repoints the source { } block in METADATA.pb at the new repository (repository_url + merge commit + config_yaml: sources/config.yaml + the shipped file list) and rewrites upstream_info.md. The original librefonts/* .sfd repositories are preserved and cited in each report under "Original repository (dormant)".

This PR changes source metadata only -- it does not re-ship rebuilt binaries. The referenced repositories are the source of record for the next production build; that build's output would go through the usual QA.

Verification

Each rebuild was graded against the shipped binary by codepoint (never by glyph name): cmap coverage, vertical metrics, usWeightClass, fsSelection/macStyle, and the GSUB/GPOS feature inventory all match. Remaining differences are benign modernizations (production-name renames with coverage unchanged, legacy kern rebuilt as a GPOS kern feature, U+00A0 advance corrected, GDEF/combining-mark fixes). Details per family are in each upstream_info.md.

Families and source repositories

family source repository commit
dawningofanewday googlefonts/dawningofanewday a0c5047219
daysone googlefonts/daysone 5a4d7f229c
delius googlefonts/delius 99e93e1a80
deliusswashcaps googlefonts/deliusswashcaps 2bcc0f94b7
deliusunicase googlefonts/deliusunicase 2440c19ebf
devonshire googlefonts/devonshire 7a5ccf2a74
donegalone googlefonts/donegalone 3fccfd33ed
doppioone googlefonts/doppioone 34f9329a27
drsugiyama googlefonts/drsugiyama 67e9b2e25c
durusans googlefonts/durusans d1fe3f7222
economica googlefonts/economica 03c3c4473a
elsie googlefonts/elsie 3278324478
elsieswashcaps googlefonts/elsieswashcaps 411b5d7058
emblemaone googlefonts/emblemaone 79205499f3
ericaone googlefonts/ericaone 34ddbe60f4
esteban googlefonts/esteban 6e017f9254

All 16 source-repo modernization PRs have merged into their googlefonts/* repositories; the commits referenced above are those repositories' current master tips.

…phs source

Point METADATA.pb at the new googlefonts/dawningofanewday repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/daysone repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/delius repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
…source

Point METADATA.pb at the new googlefonts/deliusswashcaps repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/deliusunicase repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/devonshire repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/donegalone repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/doppioone repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/drsugiyama repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/durusans repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/economica repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/elsie repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
…urce

Point METADATA.pb at the new googlefonts/elsieswashcaps repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/emblemaone repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/ericaone repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
Point METADATA.pb at the new googlefonts/esteban repository (the FontForge SFD
source converted to Glyphs, building with gftools-builder3 + fontc) and
rewrite upstream_info.md to record the modernization.

Assisted by an AI agent (Claude Opus 4.8)
@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[1] ofl/dawningofanewday/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (DawningofaNewDay). The name must end with Regular or Italic [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

[3] ofl/dawningofanewday/DESCRIPTION.en_us.html
🔥 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]
⚠️ 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 Ensure font description does not use the word 'free'. (googlefonts/description/no_free_word)
  • ⚠️ WARN The description contains the word 'free'. All Google Fonts are libre/free, so this is redundant. [code: free-in-description]
[8] ofl/dawningofanewday
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̈ (U+0308)
  • ̃ (U+0303) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Lower Sorbian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • Š (U+0160)
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Lower Sorbian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ź (U+017A) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Lower Sorbian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ć (U+0107)
  • ě (U+011B)
  • ś (U+015B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Upper Sorbian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • š (U+0161)
  • Š (U+0160) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Upper Sorbian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ž (U+017E) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Upper Sorbian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ł (U+0142)
  • ć (U+0107)
  • ě (U+011B)
  • č (U+010D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Hungarian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ű (U+0171) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Hungarian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ő (U+0151) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Karelian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • č (U+010D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Ladin, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ć (U+0107) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Northern Sotho, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Slovenian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ž (U+017E)
  • š (U+0161)
  • č (U+010D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Silesian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • Š (U+0160)
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Silesian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ź (U+017A) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Silesian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ć (U+0107)
  • ś (U+015B)
  • ů (U+016F)
  • ń (U+0144)
  • ř (U+0159) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Tswana, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Venetian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ł (U+0142) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Veps, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ž (U+017E)
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL DawningofaNewDay.ttf: 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) 2010, kimberly geswein (kimberlygeswein.com)" [code: bad-notice-format]

  • 🔥 FAIL DawningofaNewDay.ttf: 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) 2010, kimberly geswein (kimberlygeswein.com)" [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) 2010, kimberly geswein (kimberlygeswein.com kimberlygeswein@gmail.com)" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2010, kimberly geswein (kimberlygeswein.com kimberlygeswein@gmail.com): ["METADATA.pb"]
  • copyright (c) 2010, kimberly geswein (kimberlygeswein.com): ["DawningofaNewDay.ttf: Name Table entry", "DawningofaNewDay.ttf: Name Table entry"] [code: mismatch]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/dawningofanewday/DawningofaNewDay.ttf: 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+0102 LATIN CAPITAL LETTER A WITH BREVE: try adding one of: latin-ext, vietnamese
  • U+0103 LATIN SMALL LETTER A WITH BREVE: try adding one of: latin-ext, vietnamese
  • U+0106 LATIN CAPITAL LETTER C WITH ACUTE: try adding latin-ext
  • U+0107 LATIN SMALL LETTER C WITH ACUTE: try adding latin-ext
  • U+010C LATIN CAPITAL LETTER C WITH CARON: try adding latin-ext
  • U+010D LATIN SMALL LETTER C WITH CARON: try adding latin-ext
  • U+010E LATIN CAPITAL LETTER D WITH CARON: try adding latin-ext
  • U+011A LATIN CAPITAL LETTER E WITH CARON: try adding latin-ext
  • U+011B LATIN SMALL LETTER E WITH CARON: try adding latin-ext
    ... and 38 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin [code: unreachable-subsetting]

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[33] ofl/dawningofanewday/DawningofaNewDay.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0164 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+013D [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+010E [code: missing-case-counterparts]

🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Name table entries should not contain line-breaks. (googlefonts/name/line_breaks)
  • 🔥 FAIL Name entry LICENSE_DESCRIPTION on platform 1 contains a line-break. [code: line-break]

  • 🔥 FAIL Name entry LICENSE_DESCRIPTION on platform 3 contains a line-break. [code: line-break]

🔥 FAIL Checking file is named canonically. (googlefonts/canonical_filename)
  • 🔥 FAIL Expected "DawningofaNewDay-Regular.ttf". Got "DawningofaNewDay.ttf". [code: bad-filename]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Dawning of a New Day Dawning of a New Day
Subfamily Name Regular Regular
Full Name Dawning of a New Day Dawning of a New Day Regular
Postscript Name DawningofaNewDay DawningofaNewDay-Regular
Typographic Family Name Dawning of a New Day N/A
Typographic Subfamily Name Regular N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0019989 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN period (x=115, bounds are 65<->113) [code: points-out-of-bounds]

  • ⚠️ WARN two (x=303, bounds are 9<->300) [code: points-out-of-bounds]

  • ⚠️ WARN six (y=-70, bounds are -10<->593) [code: points-out-of-bounds]

  • ⚠️ WARN equal (x=59, bounds are 61<->194) [code: points-out-of-bounds]

  • ⚠️ WARN H (x=4, bounds are 6<->870) [code: points-out-of-bounds]

  • ⚠️ WARN N (x=12, bounds are 13<->817) [code: points-out-of-bounds]

  • ⚠️ WARN m (x=-6, bounds are -5<->733) [code: points-out-of-bounds]

  • ⚠️ WARN t (x=-52, bounds are -51<->292) [code: points-out-of-bounds]

  • ⚠️ WARN t (x=-53, bounds are -51<->292) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (y=383, bounds are 28<->382) [code: points-out-of-bounds]

  • ⚠️ WARN Ntilde (x=12, bounds are 13<->817) [code: points-out-of-bounds]

  • ⚠️ WARN ccedilla (x=-6, bounds are 8<->346) [code: points-out-of-bounds]

  • ⚠️ WARN Nacute (x=12, bounds are 13<->817) [code: points-out-of-bounds]

  • ⚠️ WARN Ncaron (x=12, bounds are 13<->817) [code: points-out-of-bounds]

  • ⚠️ WARN quotesinglbase (x=102, bounds are 43<->100) [code: points-out-of-bounds]

⚠️ 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 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
    inferred from the typical amounts 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:

  • S (U+0053): found 3, expected one of: [1, 2, 5]
  • Sacute (U+015A): found 4, expected one of: [2, 3, 6]
  • Zacute (U+0179): found 3, expected one of: [2, 4, 6]
  • Zdotaccent (U+017B): found 3, expected one of: [2, 4, 6] [code: contour-count]
⚠️ WARN Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 406 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=412: multiply
    width=220: equal
    width=505: divide
    width=413: plus
    width=392: plusminus
    width=477: less
    width=441: greater
    width=423: minus [code: width-outliers]
⚠️ WARN Name table records must not have trailing spaces. (name/trailing_spaces)
  • ⚠️ WARN Name table record 1/0/0/LICENSE_DESCRIPTION has double spaces:
    `Copyright (c) 2010, Kimberly Geswein (kimberlygeswein.com)

This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL


SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the copyright statement(s).

"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.

"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:

  1. Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.

  2. Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.

  3. No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as
    presented to the users.

  4. The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written
    permission.

  5. The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.

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

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.` [code: double-spaces]

  • ⚠️ WARN Name table record 3/1/1033/LICENSE_DESCRIPTION has double spaces:
    `Copyright (c) 2010, Kimberly Geswein (kimberlygeswein.com)

This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL


SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the copyright statement(s).

"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.

"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:

  1. Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.

  2. Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.

  3. No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as
    presented to the users.

  4. The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written
    permission.

  5. The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.

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

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.` [code: double-spaces]

⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • CR
  • percent.001 [code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nbspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • exclam (U+0021): X=85,Y=-1 (should be at baseline 0?)
    • exclam (U+0021): X=85,Y=-1 (should be at baseline 0?)
    • percent (U+0025): X=103,Y=2 (should be at baseline 0?)
    • percent (U+0025): X=103,Y=2 (should be at baseline 0?)
    • comma (U+002C): X=145,Y=2 (should be at baseline 0?)
    • period (U+002E): X=75,Y=-1 (should be at baseline 0?)
    • one (U+0031): X=45,Y=-2 (should be at baseline 0?)
    • seven (U+0037): X=92,Y=-2 (should be at baseline 0?)
    • question (U+003F): X=113.5,Y=-1.5 (should be at baseline 0?)
      ... and 86 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • quotedbl (U+0022): from (172.0, 462.0) to (171.0, 440.0) is colinear with segment from (171.0, 440.0) to (169.0, 408.0)
  • hyphen (U+002D): from (87.0, 260.0) to (279.0, 265.0) is colinear with segment from (279.0, 265.0) to (284.0, 265.0)
  • slash (U+002F): from (394.0, 464.0) to (400.0, 465.0) is colinear with segment from (400.0, 465.0) to (411.0, 466.0)
  • A (U+0041): from (567.0, 758.0) to (567.0, 747.0) is colinear with segment from (567.0, 747.0) to (590.0, 329.0)
  • M (U+004D): from (516.0, 574.0) to (515.0, 530.0) is colinear with segment from (515.0, 530.0) to (515.0, 517.0)
  • O (U+004F): from (488.0, 586.0) to (477.0, 369.0) is colinear with segment from (477.0, 369.0) to (477.0, 359.0)
  • O (U+004F): from (23.0, 289.0) to (24.0, 368.0) is colinear with segment from (24.0, 368.0) to (24.0, 388.0)
  • O (U+004F): from (487.0, 728.0) to (488.0, 586.0) is colinear with segment from (488.0, 586.0) to (477.0, 369.0)
  • O (U+004F): from (459.0, 435.0) to (459.0, 445.0) is colinear with segment from (459.0, 445.0) to (467.0, 633.0)
    ... and 90 others [code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • i (U+0069) has a path with no bounds (probably a single point)
  • j (U+006A) has a path with no bounds (probably a single point)
  • fi (U+FB01) has a path with no bounds (probably a single point) [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • M (U+004D): Quad(QuadBez { p0: (515.0, 517.0), p1: (485.0, 309.0), p2: (477.0, 281.0) })/Quad(QuadBez { p0: (477.0, 281.0), p1: (497.0, 316.0), p2: (546.0, 409.0) }) = 13.799485396019362 degrees
  • U (U+0055): Quad(QuadBez { p0: (509.0, 332.0), p1: (510.0, 361.0), p2: (510.0, 407.0) })/Quad(QuadBez { p0: (510.0, 407.0), p1: (505.0, 386.0), p2: (461.5, 285.0) }) = 13.39249775375107 degrees
  • Y (U+0059): Quad(QuadBez { p0: (483.0, 13.0), p1: (508.0, 146.0), p2: (513.0, 278.0) })/Quad(QuadBez { p0: (513.0, 278.0), p1: (485.0, 177.0), p2: (426.0, 155.0) }) = 13.32559100941012 degrees
  • k (U+006B): Line(Line { p0: (146.0, 546.0), p1: (70.0, 235.0) })/Quad(QuadBez { p0: (70.0, 235.0), p1: (74.0, 244.0), p2: (86.0, 266.5) }) = 10.230083913472237 degrees
  • section (U+00A7): Quad(QuadBez { p0: (146.5, 76.0), p1: (156.0, 80.0), p2: (157.0, 82.0) })/Quad(QuadBez { p0: (157.0, 82.0), p1: (149.0, 59.0), p2: (149.0, 43.0) }) = 7.386043151267334 degrees
  • Ugrave (U+00D9): Quad(QuadBez { p0: (509.0, 332.0), p1: (510.0, 361.0), p2: (510.0, 407.0) })/Quad(QuadBez { p0: (510.0, 407.0), p1: (505.0, 386.0), p2: (461.5, 285.0) }) = 13.39249775375107 degrees
  • Uacute (U+00DA): Quad(QuadBez { p0: (509.0, 332.0), p1: (510.0, 361.0), p2: (510.0, 407.0) })/Quad(QuadBez { p0: (510.0, 407.0), p1: (505.0, 386.0), p2: (461.5, 285.0) }) = 13.39249775375107 degrees
  • Ucircumflex (U+00DB): Quad(QuadBez { p0: (509.0, 332.0), p1: (510.0, 361.0), p2: (510.0, 407.0) })/Quad(QuadBez { p0: (510.0, 407.0), p1: (505.0, 386.0), p2: (461.5, 285.0) }) = 13.39249775375107 degrees
  • Udieresis (U+00DC): Quad(QuadBez { p0: (509.0, 332.0), p1: (510.0, 361.0), p2: (510.0, 407.0) })/Quad(QuadBez { p0: (510.0, 407.0), p1: (505.0, 386.0), p2: (461.5, 285.0) }) = 13.39249775375107 degrees
    ... and 6 others [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • N (U+004E): Line(Line { p0: (534.0, 52.0), p1: (533.0, 170.0) }) (angle: 90.49 degrees, expected: 90.00 degrees)
  • O (U+004F): Line(Line { p0: (487.0, 728.0), p1: (488.0, 586.0) }) (angle: -89.60 degrees, expected: -90.00 degrees)
  • bar (U+007C): Line(Line { p0: (71.0, 737.0), p1: (72.0, 614.0) }) (angle: -89.53 degrees, expected: -90.00 degrees)
  • Ntilde (U+00D1): Line(Line { p0: (534.0, 52.0), p1: (533.0, 170.0) }) (angle: 90.49 degrees, expected: 90.00 degrees)
  • Ograve (U+00D2): Line(Line { p0: (487.0, 728.0), p1: (488.0, 586.0) }) (angle: -89.60 degrees, expected: -90.00 degrees)
  • Oacute (U+00D3): Line(Line { p0: (487.0, 728.0), p1: (488.0, 586.0) }) (angle: -89.60 degrees, expected: -90.00 degrees)
  • Ocircumflex (U+00D4): Line(Line { p0: (487.0, 728.0), p1: (488.0, 586.0) }) (angle: -89.60 degrees, expected: -90.00 degrees)
  • Otilde (U+00D5): Line(Line { p0: (487.0, 728.0), p1: (488.0, 586.0) }) (angle: -89.60 degrees, expected: -90.00 degrees)
  • Odieresis (U+00D6): Line(Line { p0: (487.0, 728.0), p1: (488.0, 586.0) }) (angle: -89.60 degrees, expected: -90.00 degrees)
    ... and 4 others [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 '{0x00}{0x00}{0x00}{0x00}' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Dawning of a New Day" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DawningofaNewDay.ttf
Dehinted Size 65320
Hinted Size 65344
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    gasp [code: optional-tables]

ℹ️ 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 | - 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.002 2010, Version 1.002 2010 [code: version-not-detected]
[1] ofl/dawningofanewday/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2010, kimberly geswein (kimberlygeswein.com)"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
45 47 8 98 76
16% 17% 3% 36% 28%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[1] ofl/daysone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Days One" does not match post_script_name="DaysOne-Regular". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

[2] ofl/daysone/DESCRIPTION.en_us.html
🔥 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]
⚠️ 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]
[10] ofl/daysone
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. (googlefonts/metadata/consistent_repo_urls)
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̈ (U+0308)
  • ̃ (U+0303) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Belarusian language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 21 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Czech, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • Š (U+0160)
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Czech, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • ž (U+017E) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Czech, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • ř (U+0159)
  • ů (U+016F)
  • ě (U+011B)
  • č (U+010D)
  • ť (U+0165) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 21 sample text for language Czech, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • ď (U+010F) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Karelian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • č (U+010D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Northern Sotho, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Slovak, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • Š (U+0160)
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Slovak, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • ž (U+017E) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Slovak, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • ľ (U+013E)
  • ť (U+0165)
  • ň (U+0148)
  • č (U+010D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Slovenian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • č (U+010D)
  • ž (U+017E)
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Tswana, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Venetian, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • ł (U+0142) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Veps, but although the font contained all the base exemplars for the language, tofu will still be produced because the codepoints do not appear in any of the subsets cyrillic, latin:
  • š (U+0161)
  • ž (U+017E) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL DaysOne-Regular.ttf: 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) 2009 by alexander kalachev, alexey maslov, jovanny lemonad. all rights reserved." [code: bad-notice-format]

  • 🔥 FAIL DaysOne-Regular.ttf: 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) 2009 by alexander kalachev, alexey maslov, jovanny lemonad. all rights reserved." [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) 2009 by alexander kalachev, alexey maslov, jovanny lemonad (lemonad@jovanny.ru). all rights reserved." [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2009 by alexander kalachev, alexey maslov, jovanny lemonad (lemonad@jovanny.ru). all rights reserved.: ["METADATA.pb"]
  • copyright (c) 2009 by alexander kalachev, alexey maslov, jovanny lemonad. all rights reserved.: ["DaysOne-Regular.ttf: Name Table entry", "DaysOne-Regular.ttf: Name Table entry"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/daysone/DaysOne-Regular.ttf missing required codepoints:
  • 0x2212: MINUS SIGN [code: missing-codepoints]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/daysone/DaysOne-Regular.ttf: 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+010C LATIN CAPITAL LETTER C WITH CARON: try adding latin-ext
  • U+010D LATIN SMALL LETTER C WITH CARON: try adding latin-ext
  • U+010E LATIN CAPITAL LETTER D WITH CARON: try adding latin-ext
  • U+010F LATIN SMALL LETTER D WITH CARON: try adding latin-ext
  • U+011A LATIN CAPITAL LETTER E WITH CARON: try adding latin-ext
  • U+011B LATIN SMALL LETTER E WITH CARON: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0128 LATIN CAPITAL LETTER I WITH TILDE: try adding one of: latin-ext, vietnamese
  • U+0129 LATIN SMALL LETTER I WITH TILDE: try adding one of: vietnamese, latin-ext
    ... and 36 others

Or you can add the above codepoints to one of the subsets supported by the font: cyrillic, menu, latin [code: unreachable-subsetting]

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/daysone/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, jovanny lemonad (http://www.jovanny.ru)"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+with Reserved Font Name "Days One"
[code: incorrect-ofl-body-text]

[32] ofl/daysone/DaysOne-Regular.ttf
🔥 FAIL Checking font version fields (head and name table). (opentype/font_version)
  • 🔥 FAIL Font version mismatch: head table: 1, name table: 1.002 [code: mismatch]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0137 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0133 [code: missing-case-counterparts]

🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 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 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 sTypoDescender (-568) and hhea descent (-567) must be equal. [code: descender]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Name table entries should not contain line-breaks. (googlefonts/name/line_breaks)
  • 🔥 FAIL Name entry LICENSE_DESCRIPTION on platform 1 contains a line-break. [code: line-break]

  • 🔥 FAIL Name entry LICENSE_DESCRIPTION on platform 3 contains a line-break. [code: line-break]

🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Days One Days One
Subfamily Name Regular Regular
Full Name Days One Days One Regular
Postscript Name DaysOne-Regular DaysOne-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1 is equal to version on Google fonts [code: same-version]
🔥 FAIL Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts. (googlefonts/vertical_metrics_regressions)
  • 🔥 FAIL OS/2 sTypoDescender is -568 when it should be -567 [code: bad-typo-descender]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN exclam (x=123, bounds are 125<->528) [code: points-out-of-bounds]

  • ⚠️ WARN exclam (x=530, bounds are 125<->528) [code: points-out-of-bounds]

  • ⚠️ WARN quotedbl (x=61, bounds are 63<->743) [code: points-out-of-bounds]

  • ⚠️ WARN quotedbl (x=745, bounds are 63<->743) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (x=61, bounds are 63<->354) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (x=356, bounds are 63<->354) [code: points-out-of-bounds]

  • ⚠️ WARN parenleft (y=-270, bounds are -269<->1520) [code: points-out-of-bounds]

  • ⚠️ WARN semicolon (x=483, bounds are 42<->479) [code: points-out-of-bounds]

  • ⚠️ WARN less (y=1106, bounds are 1<->1093) [code: points-out-of-bounds]

  • ⚠️ WARN less (y=-12, bounds are 1<->1093) [code: points-out-of-bounds]

  • ⚠️ WARN e (y=-21, bounds are -20<->1116) [code: points-out-of-bounds]

  • ⚠️ WARN exclamdown (x=530, bounds are 125<->528) [code: points-out-of-bounds]

  • ⚠️ WARN exclamdown (x=123, bounds are 125<->528) [code: points-out-of-bounds]

  • ⚠️ WARN ordfeminine (y=798, bounds are 799<->1438) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (x=41, bounds are 42<->979) [code: points-out-of-bounds]

  • ⚠️ WARN Adieresis (y=1846, bounds are 0<->1845) [code: points-out-of-bounds]

  • ⚠️ WARN Adieresis (y=1846, bounds are 0<->1845) [code: points-out-of-bounds]

  • ⚠️ WARN agrave (x=1213, bounds are 61<->1212) [code: points-out-of-bounds]

  • ⚠️ WARN aacute (x=1213, bounds are 61<->1212) [code: points-out-of-bounds]

  • ⚠️ WARN adieresis (x=1213, bounds are 61<->1212) [code: points-out-of-bounds]

  • ⚠️ WARN egrave (y=-21, bounds are -20<->1616) [code: points-out-of-bounds]

  • ⚠️ WARN eacute (y=-21, bounds are -20<->1616) [code: points-out-of-bounds]

  • ⚠️ WARN ecircumflex (y=-21, bounds are -20<->1522) [code: points-out-of-bounds]

  • ⚠️ WARN edieresis (y=-21, bounds are -20<->1495) [code: points-out-of-bounds]

  • ⚠️ WARN oacute (y=1637, bounds are -20<->1636) [code: points-out-of-bounds]

  • ⚠️ WARN oslash (x=61, bounds are 62<->1292) [code: points-out-of-bounds]

  • ⚠️ WARN yacute (y=1637, bounds are -359<->1636) [code: points-out-of-bounds]

  • ⚠️ WARN ecaron (y=-21, bounds are -20<->1522) [code: points-out-of-bounds]

  • ⚠️ WARN jcircumflex (x=723, bounds are -164<->707) [code: points-out-of-bounds]

  • ⚠️ WARN racute (y=1637, bounds are 0<->1636) [code: points-out-of-bounds]

  • ⚠️ WARN rcommaaccent (y=-568, bounds are -567<->1116) [code: points-out-of-bounds]

  • ⚠️ WARN florin (x=-205, bounds are -204<->1315) [code: points-out-of-bounds]

  • ⚠️ WARN florin (x=-205, bounds are -204<->1315) [code: points-out-of-bounds]

  • ⚠️ WARN florin (x=1317, bounds are -204<->1315) [code: points-out-of-bounds]

  • ⚠️ WARN caron (y=1891, bounds are 1571<->1890) [code: points-out-of-bounds]

  • ⚠️ WARN afii10062 (x=12, bounds are 28<->1574) [code: points-out-of-bounds]

  • ⚠️ WARN afii10024 (x=2261, bounds are 0<->2250) [code: points-out-of-bounds]

  • ⚠️ WARN afii10037 (x=12, bounds are 28<->1574) [code: points-out-of-bounds]

  • ⚠️ WARN afii10070 (y=-21, bounds are -20<->1116) [code: points-out-of-bounds]

  • ⚠️ WARN afii10071 (y=-21, bounds are -20<->1454) [code: points-out-of-bounds]

  • ⚠️ WARN quoteleft (x=516, bounds are 96<->504) [code: points-out-of-bounds]

  • ⚠️ WARN quoteleft (x=68, bounds are 96<->504) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblright (x=899, bounds are 43<->898) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblbase (x=899, bounds are 43<->898) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (y=1106, bounds are 1<->1093) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (y=-12, bounds are 1<->1093) [code: points-out-of-bounds]

⚠️ 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
    inferred from the typical amounts 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:

  • currency (U+00A4): found 3, expected one of: [2, 6]
  • cedilla (U+00B8): found 2, expected one of: [1, 5] [code: contour-count]
⚠️ WARN Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 958 among a set of 8 math glyphs.
    The following math glyphs have a different width, though:
    width=1266: divide
    width=819: greater, less
    width=999: equal
    width=1157: logicalnot [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • NULL [code: unreachable-glyphs]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • less (U+003C): X=710.5,Y=1 (should be at baseline 0?)
    • greater (U+003E): X=109,Y=1 (should be at baseline 0?)
    • K (U+004B): X=238,Y=1436 (should be at cap-height 1434?)
    • K (U+004B): X=426,Y=1436 (should be at cap-height 1434?)
    • K (U+004B): X=1315,Y=1436 (should be at cap-height 1434?)
    • K (U+004B): X=1546,Y=1436 (should be at cap-height 1434?)
    • S (U+0053): X=963,Y=1436 (should be at cap-height 1434?)
    • S (U+0053): X=596,Y=-2 (should be at baseline 0?)
    • cent (U+00A2): X=471,Y=-2 (should be at baseline 0?)
      ... and 22 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • Z (U+005A): from (1357.0, 1094.0) to (1313.0, 1049.0) is colinear with segment from (1313.0, 1049.0) to (526.0, 283.0)
  • r (U+0072): from (913.0, 842.0) to (881.0, 842.0) is colinear with segment from (881.0, 842.0) to (727.0, 848.0)
  • t (U+0074): from (645.0, 217.0) to (782.0, 229.0) is colinear with segment from (782.0, 229.0) to (819.0, 229.0)
  • rcommaaccent (U+0157): from (913.0, 842.0) to (881.0, 842.0) is colinear with segment from (881.0, 842.0) to (727.0, 848.0)
  • rcaron (U+0159): from (913.0, 842.0) to (881.0, 842.0) is colinear with segment from (881.0, 842.0) to (727.0, 848.0)
  • tcaron (U+0165): from (645.0, 217.0) to (782.0, 229.0) is colinear with segment from (782.0, 229.0) to (819.0, 229.0)
  • Zcaron (U+017D): from (1357.0, 1094.0) to (1313.0, 1049.0) is colinear with segment from (1313.0, 1049.0) to (526.0, 283.0) [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 is 'PYRS', a font editor default.
    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: bad]
ℹ️ INFO Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Days One" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DaysOne-Regular.ttf
Dehinted Size 65556
Hinted Size 65580
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    gasp
    kern [code: optional-tables]

ℹ️ 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 | - 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.002, Version 1.002 [code: version-not-detected]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
46 75 9 101 72
15% 25% 3% 33% 24%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[2] ofl/delius/DESCRIPTION.en_us.html
🔥 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]
⚠️ 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]
[1] ofl/delius/METADATA.pb
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[25] ofl/delius/Delius-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Delius Delius
Subfamily Name Regular Regular
Full Name Delius-Regular Delius Regular
Postscript Name Delius-Regular Delius-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0010071 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ 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
    inferred from the typical amounts 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:

  • A.alt (unencoded): found 3, expected one of: [2, 4]
  • G.alt (unencoded): found 2, expected one of: [1, 52]
  • R.alt (unencoded): found 4, expected one of: [1, 2] [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 558 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=529: plus
    width=543: less, greater
    width=634: logicalnot
    width=570: plusminus
    width=594: approxequal
    width=563: lessequal, greaterequal
    width=592: equal
    width=632: minus
    width=504: multiply [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • CR
  • f.alt
  • A.alt
  • B.alt
  • C.alt
  • D.alt
  • E.alt
    ... and 21 others [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nbspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • exclam (U+0021): X=86,Y=1 (should be at baseline 0?)
    • ampersand (U+0026): X=465,Y=194 (should be at cap-height 195?)
    • seven (U+0037): X=141.5,Y=1.5 (should be at baseline 0?)
    • greater (U+003E): X=369.5,Y=197 (should be at cap-height 195?)
    • question (U+003F): X=154,Y=1 (should be at baseline 0?)
    • A (U+0041): X=595,Y=1 (should be at baseline 0?)
    • x (U+0078): X=387,Y=2 (should be at baseline 0?)
    • x (U+0078): X=102.5,Y=2 (should be at baseline 0?)
    • yen (U+00A5): X=513,Y=196 (should be at cap-height 195?)
      ... and 39 others [code: found-misalignments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • J (U+004A): Line(Line { p0: (411.0, 374.0), p1: (412.0, 254.0) }) (angle: -89.52 degrees, expected: -90.00 degrees)
  • N (U+004E): Line(Line { p0: (590.0, 372.0), p1: (592.0, 41.0) }) (angle: -89.65 degrees, expected: -90.00 degrees)
  • j (U+006A): Line(Line { p0: (145.0, 230.0), p1: (144.0, 10.0) }) (angle: -90.26 degrees, expected: -90.00 degrees)
  • j (U+006A): Line(Line { p0: (80.0, 20.0), p1: (79.0, 230.0) }) (angle: 90.27 degrees, expected: 90.00 degrees)
  • t (U+0074): Line(Line { p0: (183.0, 439.0), p1: (181.0, 202.0) }) (angle: -90.48 degrees, expected: -90.00 degrees)
  • t (U+0074): Line(Line { p0: (117.0, 118.0), p1: (116.0, 439.0) }) (angle: 90.18 degrees, expected: 90.00 degrees)
  • bar (U+007C): Line(Line { p0: (144.0, 750.0), p1: (140.0, 255.0) }) (angle: -90.46 degrees, expected: -90.00 degrees)
  • bar (U+007C): Line(Line { p0: (80.0, 255.0), p1: (76.0, 750.0) }) (angle: 90.46 degrees, expected: 90.00 degrees)
  • Ntilde (U+00D1): Line(Line { p0: (589.0, 372.0), p1: (591.0, 41.0) }) (angle: -89.65 degrees, expected: -90.00 degrees)
    ... and 17 others [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 'pyrs' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Delius-Regular.ttf
Dehinted Size 77464
Hinted Size 77488
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.001, Version 1.001 [code: version-not-detected]
[8] ofl/delius
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̃ (U+0303)
  • ̈ (U+0308) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Venetian, but although the font contained all the codepoints for the sample text, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ł (U+0142) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL Delius-Regular.ttf: 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) 2010 by natalia raices. all rights reserved." [code: bad-notice-format]

  • 🔥 FAIL Delius-Regular.ttf: 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) 2010 by natalia raices. all rights reserved." [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) 2010 by natalia raices (nraices@gmail.com). all rights reserved." [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2010 by natalia raices. all rights reserved.: ["Delius-Regular.ttf: Name Table entry", "Delius-Regular.ttf: Name Table entry"]
  • copyright (c) 2010 by natalia raices (nraices@gmail.com). all rights reserved.: ["METADATA.pb"] [code: mismatch]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/delius/Delius-Regular.ttf: 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+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0128 LATIN CAPITAL LETTER I WITH TILDE: try adding one of: vietnamese, latin-ext
  • U+0129 LATIN SMALL LETTER I WITH TILDE: try adding one of: vietnamese, latin-ext
  • U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX: try adding latin-ext
  • U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX: try adding latin-ext
    ... and 29 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin [code: unreachable-subsetting]

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/delius/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2010, 2011, natalia raices,"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+Copyright (c) 2011, Igino Marini. (www.ikern.com|mail@iginomarini.com),
+with Reserved Font Names "Delia", "Delia Unicase", "Delius"
+and "Delius Unicase".
[code: incorrect-ofl-body-text]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
22 25 8 113 69
9% 11% 3% 48% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[2] ofl/deliusswashcaps/DESCRIPTION.en_us.html
🔥 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]
⚠️ 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]
[27] ofl/deliusswashcaps/DeliusSwashCaps-Regular.ttf
🔥 FAIL Does the font have any invalid script tags? (opentype/layout_valid_script_tags)
  • 🔥 FAIL The following invalid script tags were found in the font: [code: bad-script-tags]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Delius Swash Caps Delius Swash Caps
Subfamily Name Regular Regular
Full Name Delius Swash Caps Delius Swash Caps Regular
Postscript Name DeliusSwashCaps-Regular DeliusSwashCaps-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0019989 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN T (x=19, bounds are 20<->601) [code: points-out-of-bounds]

  • ⚠️ WARN asciicircum (x=483, bounds are 42<->481) [code: points-out-of-bounds]

  • ⚠️ WARN k (x=477, bounds are 66<->476) [code: points-out-of-bounds]

  • ⚠️ WARN x (x=476, bounds are 28<->475) [code: points-out-of-bounds]

  • ⚠️ WARN braceleft (x=12, bounds are 14<->266) [code: points-out-of-bounds]

  • ⚠️ WARN kcedilla (x=477, bounds are 66<->476) [code: points-out-of-bounds]

  • ⚠️ WARN kgreenlandic (x=483, bounds are 74<->482) [code: points-out-of-bounds]

  • ⚠️ WARN f_f_k (x=1125, bounds are 20<->1124) [code: points-out-of-bounds]

  • ⚠️ WARN f_k (x=815, bounds are 20<->814) [code: points-out-of-bounds]

⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 543 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=632: minus
    width=594: approxequal
    width=504: multiply
    width=563: lessequal, greaterequal
    width=558: divide, notequal
    width=634: logicalnot
    width=592: equal
    width=570: plusminus
    width=529: plus [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • NULL
  • CR
  • CR.001
  • .notdef.001 [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nbspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Delius" "Delius Unicase" "Delius Swash Caps") that differs from the currently used family name (Delius Swash Caps), which is fine. [code: legacy-familyname]

  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Delius" "Delius Unicase" "Delius Swash Caps") that differs from the currently used family name (Delius Swash Caps), which is fine. [code: legacy-familyname]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • percent (U+0025): X=503,Y=281.5 (should be at cap-height 282?)
    • percent (U+0025): X=716.5,Y=283 (should be at cap-height 282?)
    • ampersand (U+0026): X=415,Y=281 (should be at cap-height 282?)
    • parenleft (U+0028): X=46,Y=284 (should be at cap-height 282?)
    • parenright (U+0029): X=256,Y=284 (should be at cap-height 282?)
    • parenright (U+0029): X=256,Y=284 (should be at cap-height 282?)
    • seven (U+0037): X=298,Y=281.5 (should be at cap-height 282?)
    • G (U+0047): X=595,Y=281 (should be at cap-height 282?)
    • G (U+0047): X=357.5,Y=281.5 (should be at cap-height 282?)
      ... and 39 others [code: found-misalignments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • I (U+0049): Line(Line { p0: (487.0, 444.0), p1: (486.0, 275.0) }) (angle: -90.34 degrees, expected: -90.00 degrees)
  • I (U+0049): Line(Line { p0: (414.0, 266.0), p1: (415.0, 444.0) }) (angle: 89.68 degrees, expected: 90.00 degrees)
  • J (U+004A): Line(Line { p0: (460.0, 485.0), p1: (459.0, 238.0) }) (angle: -90.23 degrees, expected: -90.00 degrees)
  • f (U+0066): Line(Line { p0: (175.0, 442.0), p1: (178.0, 83.0) }) (angle: -89.52 degrees, expected: -90.00 degrees)
  • j (U+006A): Line(Line { p0: (145.0, 230.0), p1: (144.0, 10.0) }) (angle: -90.26 degrees, expected: -90.00 degrees)
  • j (U+006A): Line(Line { p0: (80.0, 20.0), p1: (79.0, 230.0) }) (angle: 90.27 degrees, expected: 90.00 degrees)
  • t (U+0074): Line(Line { p0: (183.0, 439.0), p1: (181.0, 202.0) }) (angle: -90.48 degrees, expected: -90.00 degrees)
  • t (U+0074): Line(Line { p0: (117.0, 118.0), p1: (116.0, 439.0) }) (angle: 90.18 degrees, expected: 90.00 degrees)
  • bar (U+007C): Line(Line { p0: (144.0, 750.0), p1: (140.0, 255.0) }) (angle: -90.46 degrees, expected: -90.00 degrees)
    ... and 27 others [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 'pyrs' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Delius Swash Caps" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DeliusSwashCaps-Regular.ttf
Dehinted Size 63028
Hinted Size 63052
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.002, Version 1.002 [code: version-not-detected]
[9] ofl/deliusswashcaps
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̃ (U+0303)
  • ̈ (U+0308) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Venetian, but although the font contained all the codepoints for the sample text, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ł (U+0142) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL DeliusSwashCaps-Regular.ttf: 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) 2010, 2011, natalia raices nraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [code: bad-notice-format]

  • 🔥 FAIL DeliusSwashCaps-Regular.ttf: 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) 2010, 2011, natalia raices nraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [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) 2010, 2011, natalia raices nraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [code: bad-notice-format]

⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/deliusswashcaps/DeliusSwashCaps-Regular.ttf: 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+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0128 LATIN CAPITAL LETTER I WITH TILDE: try adding one of: vietnamese, latin-ext
  • U+0129 LATIN SMALL LETTER I WITH TILDE: try adding one of: vietnamese, latin-ext
  • U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX: try adding latin-ext
  • U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX: try adding latin-ext
    ... and 29 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2010, 2011, Natalia Raices nraices@gmail.com, with Reserved Font Name "Delius" "Delius Unicase" "Delius Swash Caps".") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[1] ofl/deliusswashcaps/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Delius Swash Caps" does not match post_script_name="DeliusSwashCaps-Regular". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

[2] ofl/deliusswashcaps/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2010, 2011, natalia raices,"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+Copyright (c) 2011, Igino Marini. (www.ikern.com|mail@iginomarini.com),
+with Reserved Font Names "Delia", "Delia Unicase", "Delius"
+and "Delius Unicase".
[code: incorrect-ofl-body-text]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
23 37 8 110 69
9% 15% 3% 45% 28%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[2] ofl/deliusunicase/DESCRIPTION.en_us.html
🔥 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]
⚠️ 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]
[2] ofl/deliusunicase/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2010, 2011, natalia raices,"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+Copyright (c) 2011, Igino Marini. (www.ikern.com|mail@iginomarini.com),
+with Reserved Font Names "Delia", "Delia Unicase", "Delius"
+and "Delius Unicase".
[code: incorrect-ofl-body-text]

[1] ofl/deliusunicase/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Delius Unicase" does not match post_script_name="DeliusUnicase-Regular". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

[25] ofl/deliusunicase/DeliusUnicase-Bold.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Space and non-breaking space have the same width? (whitespace_widths)
  • 🔥 FAIL The space glyph named space is 313 font units wide, non-breaking space named (nbspace) is 290 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 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) was NOT set. [code: missing-os2-fsselection-bit7]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 641 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=592: plus
    width=584: multiply
    width=679: approxequal
    width=702: minus
    width=643: notequal
    width=624: less, greater
    width=664: equal
    width=642: plusminus
    width=707: logicalnot
    width=630: divide [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • CR [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nbspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Delius" "Delius Unicase" "Delius Swash Caps") that differs from the currently used family name (Delius Unicase), which is fine. [code: legacy-familyname]

  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Delius" "Delius Unicase" "Delius Swash Caps") that differs from the currently used family name (Delius Unicase), which is fine. [code: legacy-familyname]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • dollar (U+0024): X=429,Y=197 (should be at cap-height 195?)
    • dollar (U+0024): X=429,Y=197 (should be at cap-height 195?)
    • dollar (U+0024): X=570,Y=197 (should be at cap-height 195?)
    • dollar (U+0024): X=389,Y=-1 (should be at baseline 0?)
    • less (U+003C): X=361.5,Y=197 (should be at cap-height 195?)
    • greater (U+003E): X=262.5,Y=197 (should be at cap-height 195?)
    • Q (U+0051): X=722.5,Y=194 (should be at cap-height 195?)
    • V (U+0056): X=331.5,Y=197 (should be at cap-height 195?)
    • a (U+0061): X=459.5,Y=194 (should be at cap-height 195?)
      ... and 24 others [code: found-misalignments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • exclam (U+0021): Line(Line { p0: (224.0, 461.0), p1: (225.0, 312.0) }) (angle: -89.62 degrees, expected: -90.00 degrees)
  • numbersign (U+0023): Line(Line { p0: (349.0, 286.0), p1: (491.0, 287.0) }) (angle: 0.40 degrees, expected: 0.00 degrees)
  • four (U+0034): Line(Line { p0: (370.0, 352.0), p1: (371.0, 479.0) }) (angle: 89.55 degrees, expected: 90.00 degrees)
  • J (U+004A): Line(Line { p0: (352.0, 283.0), p1: (350.0, 627.0) }) (angle: 90.33 degrees, expected: 90.00 degrees)
  • N (U+004E): Line(Line { p0: (520.0, 262.0), p1: (519.0, 380.0) }) (angle: 90.49 degrees, expected: 90.00 degrees)
  • j (U+006A): Line(Line { p0: (352.0, 283.0), p1: (350.0, 627.0) }) (angle: 90.33 degrees, expected: 90.00 degrees)
  • exclamdown (U+00A1): Line(Line { p0: (90.0, 214.0), p1: (89.0, 363.0) }) (angle: 90.38 degrees, expected: 90.00 degrees)
  • logicalnot (U+00AC): Line(Line { p0: (492.0, 305.0), p1: (342.0, 306.0) }) (angle: 179.62 degrees, expected: 180.00 degrees)
  • Ntilde (U+00D1): Line(Line { p0: (520.0, 262.0), p1: (519.0, 380.0) }) (angle: 90.49 degrees, expected: 90.00 degrees)
    ... and 11 others [code: found-semi-vertical]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • E (U+0045) contains a short segment Line(Line { p0: (296.0, 338.0), p1: (282.0, 338.0) }) (length: 14.00, total outline: 3575.07)
  • F (U+0046) contains a short segment Line(Line { p0: (286.0, 338.0), p1: (276.0, 338.0) }) (length: 10.00, total outline: 2927.08)
  • K (U+004B) contains a short segment Quad(QuadBez { p0: (643.0, 110.0), p1: (649.0, 107.0), p2: (660.5, 105.5) }) (length: 18.15, total outline: 3531.44)
  • K (U+004B) contains a short segment Quad(QuadBez { p0: (660.5, 105.5), p1: (672.0, 104.0), p2: (677.0, 99.5) }) (length: 17.81, total outline: 3531.44)
  • K (U+004B) contains a short segment Quad(QuadBez { p0: (677.0, 99.5), p1: (682.0, 95.0), p2: (682.0, 81.0) }) (length: 19.66, total outline: 3531.44)
  • R (U+0052) contains a short segment Quad(QuadBez { p0: (641.0, 109.0), p1: (647.0, 107.0), p2: (655.0, 104.5) }) (length: 14.71, total outline: 3009.66)
  • R (U+0052) contains a short segment Quad(QuadBez { p0: (655.0, 104.5), p1: (663.0, 102.0), p2: (665.0, 101.0) }) (length: 10.60, total outline: 3009.66)
  • R (U+0052) contains a short segment Quad(QuadBez { p0: (665.0, 101.0), p1: (667.0, 100.0), p2: (671.0, 98.5) }) (length: 6.50, total outline: 3009.66)
  • R (U+0052) contains a short segment Quad(QuadBez { p0: (671.0, 98.5), p1: (675.0, 97.0), p2: (676.0, 94.0) }) (length: 6.96, total outline: 3009.66)
    ... and 65 others [code: found-short-segments]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'pyrs' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Delius Unicase" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DeliusUnicase-Bold.ttf
Dehinted Size 36096
Hinted Size 36120
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.001, Version 1.001 [code: version-not-detected]
[28] ofl/deliusunicase/DeliusUnicase-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Space and non-breaking space have the same width? (whitespace_widths)
  • 🔥 FAIL The space glyph named space is 313 font units wide, non-breaking space named (nbspace) is 290 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 names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Delius Unicase Delius Unicase
Subfamily Name Regular Regular
Full Name Delius Unicase Delius Unicase Regular
Postscript Name DeliusUnicase-Regular DeliusUnicase-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0019989 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 637 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=662: equal
    width=661: approxequal
    width=704: logicalnot
    width=628: notequal, divide
    width=645: plusminus
    width=573: multiply
    width=620: greater, less
    width=601: plus
    width=702: minus [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • CR [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nbspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Delius" "Delius Unicase" "Delius Swash Caps") that differs from the currently used family name (Delius Unicase), which is fine. [code: legacy-familyname]

  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Delius" "Delius Unicase" "Delius Swash Caps") that differs from the currently used family name (Delius Unicase), which is fine. [code: legacy-familyname]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • numbersign (U+0023): X=691,Y=196 (should be at cap-height 195?)
    • numbersign (U+0023): X=459.5,Y=1.5 (should be at baseline 0?)
    • numbersign (U+0023): X=212.5,Y=1.5 (should be at baseline 0?)
    • numbersign (U+0023): X=122,Y=196 (should be at cap-height 195?)
    • numbersign (U+0023): X=691,Y=196 (should be at cap-height 195?)
    • nine (U+0039): X=123.5,Y=-1 (should be at baseline 0?)
    • less (U+003C): X=564,Y=196 (should be at cap-height 195?)
    • greater (U+003E): X=56,Y=196 (should be at cap-height 195?)
    • at (U+0040): X=813.5,Y=196.5 (should be at cap-height 195?)
      ... and 35 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • exclam (U+0021): from (99.0, 266.0) to (101.0, 467.0) is colinear with segment from (101.0, 467.0) to (93.0, 695.0)
  • exclam (U+0021): from (195.0, 695.0) to (188.0, 467.0) is colinear with segment from (188.0, 467.0) to (189.0, 266.0)
  • hyphen (U+002D): from (130.0, 417.0) to (249.0, 414.0) is colinear with segment from (249.0, 414.0) to (368.0, 417.0)
  • three (U+0033): from (154.0, 755.0) to (305.0, 750.0) is colinear with segment from (305.0, 750.0) to (471.0, 755.0)
  • five (U+0035): from (164.0, 754.0) to (325.0, 750.0) is colinear with segment from (325.0, 750.0) to (477.0, 755.0)
  • seven (U+0037): from (106.0, 755.0) to (273.0, 750.0) is colinear with segment from (273.0, 750.0) to (439.0, 754.0)
  • equal (U+003D): from (142.0, 493.0) to (326.0, 490.0) is colinear with segment from (326.0, 490.0) to (520.0, 493.0)
  • equal (U+003D): from (142.0, 339.0) to (326.0, 336.0) is colinear with segment from (326.0, 336.0) to (520.0, 339.0)
  • D (U+0044): from (125.0, 111.0) to (128.0, 376.0) is colinear with segment from (128.0, 376.0) to (123.0, 636.0)
    ... and 85 others [code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • Ecircumflex (U+00CA) has a counter-clockwise outer contour
  • trademark (U+2122) has a counter-clockwise outer contour [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • exclam (U+0021): Line(Line { p0: (188.0, 467.0), p1: (189.0, 266.0) }) (angle: -89.71 degrees, expected: -90.00 degrees)
  • one (U+0031): Line(Line { p0: (238.0, 379.0), p1: (237.0, 625.0) }) (angle: 90.23 degrees, expected: 90.00 degrees)
  • four (U+0034): Line(Line { p0: (324.0, 243.0), p1: (96.0, 242.0) }) (angle: -179.75 degrees, expected: -180.00 degrees)
  • J (U+004A): Line(Line { p0: (378.0, 278.0), p1: (375.0, 667.0) }) (angle: 90.44 degrees, expected: 90.00 degrees)
  • j (U+006A): Line(Line { p0: (378.0, 278.0), p1: (375.0, 667.0) }) (angle: 90.44 degrees, expected: 90.00 degrees)
  • exclamdown (U+00A1): Line(Line { p0: (90.0, 208.0), p1: (89.0, 409.0) }) (angle: 90.29 degrees, expected: 90.00 degrees)
  • threequarters (U+00BE): Line(Line { p0: (243.0, 679.0), p1: (124.0, 678.0) }) (angle: -179.52 degrees, expected: -180.00 degrees)
  • germandbls (U+00DF): Line(Line { p0: (214.0, 566.0), p1: (215.0, 48.0) }) (angle: -89.89 degrees, expected: -90.00 degrees)
  • IJ (U+0132): Line(Line { p0: (795.0, 278.0), p1: (792.0, 667.0) }) (angle: 90.44 degrees, expected: 90.00 degrees)
    ... and 6 others [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 'pyrs' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Delius Unicase" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DeliusUnicase-Regular.ttf
Dehinted Size 32880
Hinted Size 32904
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.002, Version 1.002 [code: version-not-detected]
[12] ofl/deliusunicase
🔥 FAIL Each font in a family must have the same set of vertical metrics values. (family/vertical_metrics)
  • 🔥 FAIL usWinAscent is not the same across the family:
  • DeliusUnicase-Bold.ttf: 1031
  • DeliusUnicase-Regular.ttf: 1016 [code: usWinAscent-mismatch]
  • 🔥 FAIL descent is not the same across the family:
  • DeliusUnicase-Bold.ttf: -252
  • DeliusUnicase-Regular.ttf: -236 [code: descent-mismatch]
  • 🔥 FAIL usWinDescent is not the same across the family:
  • DeliusUnicase-Bold.ttf: 252
  • DeliusUnicase-Regular.ttf: 236 [code: usWinDescent-mismatch]
  • 🔥 FAIL sTypoAscender is not the same across the family:
  • DeliusUnicase-Bold.ttf: 1031
  • DeliusUnicase-Regular.ttf: 1016 [code: sTypoAscender-mismatch]
  • 🔥 FAIL sTypoDescender is not the same across the family:
  • DeliusUnicase-Bold.ttf: -252
  • DeliusUnicase-Regular.ttf: -236 [code: sTypoDescender-mismatch]
  • 🔥 FAIL ascent is not the same across the family:
  • DeliusUnicase-Bold.ttf: 1031
  • DeliusUnicase-Regular.ttf: 1016 [code: ascent-mismatch]
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent (family/win_ascent_and_descent)
  • 🔥 FAIL OS/2.usWinAscent value should be equal or greater than 1031, but got 1016 instead. [code: ascent]

  • 🔥 FAIL OS/2.usWinDescent value should be equal or greater than 252, but got 236 instead. [code: descent]

🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̈ (U+0308)
  • ̃ (U+0303) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Venetian, but although the font contained all the codepoints for the sample text, tofu will still be produced because the codepoints do not appear in any of the subsets latin:
  • ł (U+0142) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL DeliusUnicase-Bold.ttf: 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) 2010, 2011, natalia raicesnraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [code: bad-notice-format]

  • 🔥 FAIL DeliusUnicase-Bold.ttf: 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) 2010, 2011, natalia raicesnraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [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) 2010, 2011, natalia raicesnraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [code: bad-notice-format]

  • 🔥 FAIL DeliusUnicase-Regular.ttf: 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) 2010, 2011, natalia raicesnraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [code: bad-notice-format]

  • 🔥 FAIL DeliusUnicase-Regular.ttf: 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) 2010, 2011, natalia raicesnraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [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) 2010, 2011, natalia raicesnraices@gmail.com, with reserved font name "delius" "delius unicase" "delius swash caps"." [code: bad-notice-format]

⚠️ WARN Make sure all font files have the same version value. (opentype/family/equal_font_versions)
  • ⚠️ WARN Version info differs among font files of the same font project.

The following values were found:

  • 1.001: ofl/deliusunicase/DeliusUnicase-Bold.ttf
  • 1.002: ofl/deliusunicase/DeliusUnicase-Regular.ttf [code: mismatch]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/deliusunicase/DeliusUnicase-Bold.ttf: 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+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0128 LATIN CAPITAL LETTER I WITH TILDE: try adding one of: latin-ext, vietnamese
  • U+0129 LATIN SMALL LETTER I WITH TILDE: try adding one of: latin-ext, vietnamese
  • U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX: try adding latin-ext
  • U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX: try adding latin-ext
    ... and 29 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin [code: unreachable-subsetting]

  • ⚠️ WARN ofl/deliusunicase/DeliusUnicase-Regular.ttf: 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+0126 LATIN CAPITAL LETTER H WITH STROKE: try adding latin-ext
  • U+0127 LATIN SMALL LETTER H WITH STROKE: try adding latin-ext
  • U+0128 LATIN CAPITAL LETTER I WITH TILDE: try adding one of: latin-ext, vietnamese
  • U+0129 LATIN SMALL LETTER I WITH TILDE: try adding one of: latin-ext, vietnamese
  • U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE: try adding latin-ext
  • U+0132 LATIN CAPITAL LIGATURE IJ: try adding latin-ext
  • U+0133 LATIN SMALL LIGATURE IJ: try adding latin-ext
  • U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX: try adding latin-ext
  • U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX: try adding latin-ext
    ... and 29 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2010, 2011, Natalia Raicesnraices@gmail.com, with Reserved Font Name "Delius" "Delius Unicase" "Delius Swash Caps".") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2010, 2011, Natalia Raicesnraices@gmail.com, with Reserved Font Name "Delius" "Delius Unicase" "Delius Swash Caps".") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
39 56 13 184 128
9% 13% 3% 44% 30%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[9] ofl/devonshire
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.12% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Aleut language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̂ (U+0302) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̃ (U+0303)
  • ̈ (U+0308) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL Devonshire-Regular.ttf: 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) 2011 by brian j. bonislawsky dba astigmatic (aoeti) (astigma@astigmatic.com), with reserved
font name "devonshire"" [code: bad-notice-format]

  • 🔥 FAIL Devonshire-Regular.ttf: 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) 2011 by brian j. bonislawsky dba astigmatic (aoeti) (astigma@astigmatic.com), with reserved
font name "devonshire"" [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) 2011 by brian j. bonislawsky dba astigmatic (aoeti) (astigma@astigmatic.com), with reserved font name "devonshire"" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2011 by brian j. bonislawsky dba astigmatic (aoeti) (astigma@astigmatic.com), with reserved
    font name "devonshire": ["Devonshire-Regular.ttf: Name Table entry", "Devonshire-Regular.ttf: Name Table entry"]
  • copyright (c) 2011 by brian j. bonislawsky dba astigmatic (aoeti) (astigma@astigmatic.com), with reserved font name "devonshire": ["METADATA.pb"] [code: mismatch]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/devonshire/Devonshire-Regular.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0312 COMBINING TURNED COMMA ABOVE: try adding math
  • U+0315 COMBINING COMMA ABOVE RIGHT: try adding math
  • U+0326 COMBINING COMMA BELOW: try adding math
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
    ... and 5 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2011 by Brian J. Bonislawsky DBA Astigmatic (AOETI) (astigma@astigmatic.com), with Reserved Font Name "Devonshire"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[30] ofl/devonshire/Devonshire-Regular.ttf
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • 🔥 FAIL Failed language shaping:
Message Languages
Mandatory orthography codepoints: * en_Latn (English)
The following mark characters are missing from the font: ̧, ́, ̃, ̀, ̂, ̈
Mandatory orthography codepoints: * cs_Latn (Czech)
The following mark characters are missing from the font: ́, ̌, ̊
Mandatory orthography codepoints: * ca_Latn (Catalan)
The following mark characters are missing from the font: ̧, ̈, ́, ̀
Mandatory orthography codepoints: * cy_Latn (Welsh)
The following mark characters are missing from the font: ̀, ̂, ́, ̈
Mandatory orthography codepoints: * es_Latn (Spanish)
The following mark characters are missing from the font: ̃, ̈, ́
Mandatory orthography codepoints: * fi_Latn (Finnish)
The following mark characters are missing from the font: ̈, ̌, ̊, ̃
Mandatory orthography codepoints: * hr_Latn (Croatian)
The following mark characters are missing from the font: ̌, ́
Mandatory orthography codepoints: * hu_Latn (Hungarian)
The following mark characters are missing from the font: ̋, ́, ̈
Mandatory orthography codepoints: * tr_Latn (Turkish)
The following mark characters are missing from the font: ̂, ̆, ̇, ̈, ̧
Mandatory orthography codepoints: * fr_Latn (French)
The following mark characters are missing from the font: ̂, ́, ̈, ̧, ̀
Mandatory orthography codepoints: * lv_Latn (Latvian)
The following mark characters are missing from the font: ̌, ̧, ̄
Mandatory orthography codepoints: * mt_Latn (Maltese)
The following mark characters are missing from the font: ̀, ̂, ̇
Mandatory orthography codepoints: * pt_Latn (Portuguese)
The following mark characters are missing from the font: ̃, ̈, ̀, ̧, ́, ̂
Mandatory orthography codepoints: * de_Latn (German)
The following base characters are missing from the font: ẞ
The following mark characters are missing from the font: ́, ̈, ̀
Mandatory orthography codepoints: * sk_Latn (Slovak)
The following mark characters are missing from the font: ̂, ̌, ́, ̈
Mandatory orthography codepoints: * lt_Latn (Lithuanian)
The following mark characters are missing from the font: ̄, ̌, ̨, ̇
Mandatory orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following mark characters are missing from the font: ̈, ̊, ̀, ́, ̂
Mandatory orthography codepoints: * sv_Latn (Swedish)
The following mark characters are missing from the font: ̈, ̀, ́, ̊
Mandatory orthography codepoints: * ro_Latn (Romanian)
The following base characters are missing from the font: Ț, Ș, ț, ș
The following mark characters are missing from the font: ̧, ̂, ̆
Mandatory orthography codepoints: * is_Latn (Icelandic)
The following mark characters are missing from the font: ̈, ́, ̨
Mandatory orthography codepoints: * it_Latn (Italian)
The following mark characters are missing from the font: ̂, ̈, ́, ̀
Mandatory orthography codepoints: * pl_Latn (Polish)
The following mark characters are missing from the font: ́, ̇, ̨
Mandatory orthography codepoints: * nl_Latn (Dutch)
The following base characters are missing from the font: íj́, ÍJ́
The following mark characters are missing from the font: ̈, ́, ̀, ̂
Mandatory orthography codepoints: * sq_Latn (Albanian)
The following mark characters are missing from the font: ̈, ̧
Mandatory orthography codepoints: * da_Latn (Danish)
The following mark characters are missing from the font: ́, ̊
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * lt_Latn (Lithuanian)
The following auxiliary characters are missing from the font: Ą́
The following auxiliary characters are missing from the font: Ą̃
The following auxiliary characters are missing from the font: Ẽ
The following auxiliary characters are missing from the font: Ę́
The following auxiliary characters are missing from the font: Ę̃
The following auxiliary characters are missing from the font: Ė́
The following auxiliary characters are missing from the font: Ė̃
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: Į́
The following auxiliary characters are missing from the font: Į̇́
The following auxiliary characters are missing from the font: Į̃
The following auxiliary characters are missing from the font: Į̇̃
The following auxiliary characters are missing from the font: J̃
The following auxiliary characters are missing from the font: J̇̃
The following auxiliary characters are missing from the font: L̃
The following auxiliary characters are missing from the font: M̃
The following auxiliary characters are missing from the font: R̃
The following auxiliary characters are missing from the font: Ų́
The following auxiliary characters are missing from the font: Ų̃
The following auxiliary characters are missing from the font: Ū́
The following auxiliary characters are missing from the font: Ū̃
The following auxiliary characters are missing from the font: ą́
The following auxiliary characters are missing from the font: ą̃
The following auxiliary characters are missing from the font: ẽ
The following auxiliary characters are missing from the font: ę́
The following auxiliary characters are missing from the font: ę̃
The following auxiliary characters are missing from the font: ė́
The following auxiliary characters are missing from the font: ė̃
The following auxiliary characters are missing from the font: i̇́
The following auxiliary characters are missing from the font: i̇̀
The following auxiliary characters are missing from the font: i̇̃
The following auxiliary characters are missing from the font: į́
The following auxiliary characters are missing from the font: į̇́
The following auxiliary characters are missing from the font: į̃
The following auxiliary characters are missing from the font: į̇̃
The following auxiliary characters are missing from the font: j̃
The following auxiliary characters are missing from the font: j̇̃
The following auxiliary characters are missing from the font: l̃
The following auxiliary characters are missing from the font: m̃
The following auxiliary characters are missing from the font: r̃
The following auxiliary characters are missing from the font: ų́
The following auxiliary characters are missing from the font: ų̃
The following auxiliary characters are missing from the font: ū́
The following auxiliary characters are missing from the font: ū̃
Auxiliary orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following auxiliary characters are missing from the font: Ǎ
The following auxiliary characters are missing from the font: ǎ
Auxiliary orthography codepoints: * en_Latn (English)
The following auxiliary characters are missing from the font: ʻ
Auxiliary orthography codepoints: * fi_Latn (Finnish)
The following auxiliary characters are missing from the font: Ǧ
The following auxiliary characters are missing from the font: Ǥ
The following auxiliary characters are missing from the font: Ȟ
The following auxiliary characters are missing from the font: Ǩ
The following auxiliary characters are missing from the font: Ș
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ț
The following auxiliary characters are missing from the font: Ʒ
The following auxiliary characters are missing from the font: Ǯ
The following auxiliary characters are missing from the font: ǧ
The following auxiliary characters are missing from the font: ǥ
The following auxiliary characters are missing from the font: ȟ
The following auxiliary characters are missing from the font: ǩ
The following auxiliary characters are missing from the font: ș
The following auxiliary characters are missing from the font: ț
The following auxiliary characters are missing from the font: ʒ
The following auxiliary characters are missing from the font: ǯ
Auxiliary orthography codepoints: * de_Latn (German)
The following auxiliary characters are missing from the font: ſ
Auxiliary orthography codepoints: * it_Latn (Italian)
The following auxiliary characters are missing from the font: ẞ * pl_Latn (Polish)
* tr_Latn (Turkish)
Auxiliary orthography codepoints: * fr_Latn (French)
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ǔ
The following auxiliary characters are missing from the font: ſ
The following auxiliary characters are missing from the font: ǔ
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Devonshire Devonshire
Subfamily Name Regular Regular
Full Name Devonshire-Regular Devonshire Regular
Postscript Name Devonshire-Regular Devonshire-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0010071 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check mark characters are in GDEF mark glyph class. (opentype/GDEF_mark_chars)
  • ⚠️ WARN The following mark characters should be in the GDEF mark glyph class:
  • U+0312 (uni0312)
  • U+0315 (uni0315)
  • U+0326 (commaaccent) [code: mark-chars]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN parenright (x=-36, bounds are -26<->274) [code: points-out-of-bounds]

  • ⚠️ WARN less (x=388, bounds are 40<->352) [code: points-out-of-bounds]

  • ⚠️ WARN less (y=124, bounds are 126<->470) [code: points-out-of-bounds]

  • ⚠️ WARN less (y=472, bounds are 126<->470) [code: points-out-of-bounds]

  • ⚠️ WARN less (x=354, bounds are 40<->352) [code: points-out-of-bounds]

  • ⚠️ WARN greater (y=472, bounds are 124<->470) [code: points-out-of-bounds]

  • ⚠️ WARN greater (y=123, bounds are 124<->470) [code: points-out-of-bounds]

  • ⚠️ WARN greater (x=45, bounds are 51<->379) [code: points-out-of-bounds]

  • ⚠️ WARN bracketleft (x=39, bounds are 45<->388) [code: points-out-of-bounds]

  • ⚠️ WARN bracketright (x=306, bounds are -36<->302) [code: points-out-of-bounds]

  • ⚠️ WARN bracketright (y=-224, bounds are -223<->787) [code: points-out-of-bounds]

  • ⚠️ WARN bracketright (x=-41, bounds are -36<->302) [code: points-out-of-bounds]

  • ⚠️ WARN braceleft (x=72, bounds are 75<->505) [code: points-out-of-bounds]

  • ⚠️ WARN braceleft (x=506, bounds are 75<->505) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (y=-234, bounds are -216<->781) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (x=17, bounds are 23<->407) [code: points-out-of-bounds]

  • ⚠️ WARN sterling (x=402, bounds are 16<->395) [code: points-out-of-bounds]

  • ⚠️ WARN yen (y=-110, bounds are -102<->703) [code: points-out-of-bounds]

  • ⚠️ WARN ordfeminine (y=299, bounds are 300<->694) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (y=78, bounds are 80<->365) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (y=367, bounds are 80<->365) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (x=453, bounds are 0<->428) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (y=78, bounds are 80<->365) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (y=367, bounds are 80<->365) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (x=429, bounds are 0<->428) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (x=30, bounds are 32<->472) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (y=376, bounds are 90<->375) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (y=88, bounds are 90<->375) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (x=3, bounds are 32<->472) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (y=376, bounds are 90<->375) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (y=88, bounds are 90<->375) [code: points-out-of-bounds]

  • ⚠️ WARN eth (x=274, bounds are -30<->270) [code: points-out-of-bounds]

  • ⚠️ WARN oslash (y=-118, bounds are -116<->513) [code: points-out-of-bounds]

  • ⚠️ WARN oslash (y=538, bounds are -116<->513) [code: points-out-of-bounds]

  • ⚠️ WARN oslash (x=273, bounds are -49<->268) [code: points-out-of-bounds]

  • ⚠️ WARN Eng (x=577, bounds are 10<->570) [code: points-out-of-bounds]

  • ⚠️ WARN eng (x=-3, bounds are 8<->274) [code: points-out-of-bounds]

  • ⚠️ WARN oslashacute (y=-118, bounds are -116<->691) [code: points-out-of-bounds]

  • ⚠️ WARN oslashacute (x=273, bounds are -49<->268) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (x=243, bounds are 0<->218) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (y=78, bounds are 80<->365) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (y=367, bounds are 80<->365) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (x=219, bounds are 0<->218) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (x=30, bounds are 32<->262) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (y=376, bounds are 90<->375) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (y=88, bounds are 90<->375) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (x=3, bounds are 32<->262) [code: points-out-of-bounds]

  • ⚠️ WARN lessequal (x=378, bounds are 30<->359) [code: points-out-of-bounds]

  • ⚠️ WARN lessequal (y=472, bounds are 20<->470) [code: points-out-of-bounds]

  • ⚠️ WARN greaterequal (y=472, bounds are 20<->470) [code: points-out-of-bounds]

  • ⚠️ WARN greaterequal (x=32, bounds are 37<->366) [code: points-out-of-bounds]

⚠️ 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 uses component: quoteright [code: bad-mark]

⚠️ WARN Are there caret positions declared for every ligature? (ligature_carets)
  • ⚠️ WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nbspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (soft_dotted)
  • ⚠️ WARN The dot of soft dotted characters should disappear in other cases, for example:
  • į̒ [code: soft-dotted]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • quotedbl (U+0022): from (175.0, 527.0) to (175.0, 604.0) is colinear with segment from (175.0, 604.0) to (170.0, 677.0)
  • J (U+004A): from (41.0, 715.0) to (344.0, 710.0) is colinear with segment from (344.0, 710.0) to (461.0, 711.0)
  • g (U+0067): from (121.0, -247.0) to (134.0, -154.0) is colinear with segment from (134.0, -154.0) to (136.0, -143.0)
  • ordfeminine (U+00AA): from (75.0, 365.0) to (130.0, 364.0) is colinear with segment from (130.0, 364.0) to (229.0, 365.0)
  • logicalnot (U+00AC): from (192.0, 391.0) to (320.0, 394.0) is colinear with segment from (320.0, 394.0) to (331.0, 394.0)
  • threesuperior (U+00B3): from (68.0, 431.0) to (68.0, 466.0) is colinear with segment from (68.0, 466.0) to (67.0, 520.0)
  • threequarters (U+00BE): from (72.0, 464.0) to (72.0, 495.0) is colinear with segment from (72.0, 495.0) to (71.0, 544.0)
  • AE (U+00C6): from (231.0, 290.0) to (321.0, 288.0) is colinear with segment from (321.0, 288.0) to (324.0, 288.0)
  • Aogonek (U+0104): from (231.0, 301.0) to (321.0, 299.0) is colinear with segment from (321.0, 299.0) to (324.0, 299.0)
    ... and 8 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • ampersand (U+0026): Quad(QuadBez { p0: (296.0, 236.0), p1: (326.0, 271.0), p2: (330.0, 273.0) })/Line(Line { p0: (330.0, 273.0), p1: (293.0, 263.0) }) = 11.441043868767446 degrees
  • at (U+0040): Quad(QuadBez { p0: (366.5, 198.0), p1: (344.0, 236.0), p2: (338.0, 273.0) })/Quad(QuadBez { p0: (338.0, 273.0), p1: (338.0, 272.0), p2: (330.5, 258.5) }) = 9.211026540816688 degrees
  • A (U+0041): Quad(QuadBez { p0: (450.0, 309.0), p1: (446.0, 397.0), p2: (442.0, 577.0) })/Quad(QuadBez { p0: (442.0, 577.0), p1: (434.0, 531.0), p2: (417.5, 439.0) }) = 11.138836963141133 degrees
  • Agrave (U+00C0): Quad(QuadBez { p0: (450.0, 309.0), p1: (446.0, 397.0), p2: (442.0, 577.0) })/Quad(QuadBez { p0: (442.0, 577.0), p1: (434.0, 531.0), p2: (417.5, 439.0) }) = 11.138836963141133 degrees
  • Aacute (U+00C1): Quad(QuadBez { p0: (450.0, 309.0), p1: (446.0, 397.0), p2: (442.0, 577.0) })/Quad(QuadBez { p0: (442.0, 577.0), p1: (434.0, 531.0), p2: (417.5, 439.0) }) = 11.138836963141133 degrees
  • Acircumflex (U+00C2): Quad(QuadBez { p0: (450.0, 309.0), p1: (446.0, 397.0), p2: (442.0, 577.0) })/Quad(QuadBez { p0: (442.0, 577.0), p1: (434.0, 531.0), p2: (417.5, 439.0) }) = 11.138836963141133 degrees
  • Atilde (U+00C3): Quad(QuadBez { p0: (450.0, 309.0), p1: (446.0, 397.0), p2: (442.0, 577.0) })/Quad(QuadBez { p0: (442.0, 577.0), p1: (434.0, 531.0), p2: (417.5, 439.0) }) = 11.138836963141133 degrees
  • Adieresis (U+00C4): Quad(QuadBez { p0: (450.0, 309.0), p1: (446.0, 397.0), p2: (442.0, 577.0) })/Quad(QuadBez { p0: (442.0, 577.0), p1: (434.0, 531.0), p2: (417.5, 439.0) }) = 11.138836963141133 degrees
  • Aring (U+00C5): Quad(QuadBez { p0: (450.0, 309.0), p1: (446.0, 397.0), p2: (442.0, 577.0) })/Quad(QuadBez { p0: (442.0, 577.0), p1: (434.0, 531.0), p2: (417.5, 439.0) }) = 11.138836963141133 degrees
    ... and 7 others [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • at (U+0040): Quad(QuadBez { p0: (228.0, 248.0), p1: (305.0, 315.0), p2: (350.0, 448.0) }) has the same coordinates as a previous segment.
  • a (U+0061): Quad(QuadBez { p0: (86.0, 100.0), p1: (187.0, 187.0), p2: (246.0, 363.0) }) has the same coordinates as a previous segment.
  • k (U+006B): Quad(QuadBez { p0: (147.0, 263.0), p1: (206.0, 281.0), p2: (256.0, 347.0) }) has the same coordinates as a previous segment.
  • agrave (U+00E0): Quad(QuadBez { p0: (86.0, 100.0), p1: (187.0, 187.0), p2: (246.0, 363.0) }) has the same coordinates as a previous segment.
  • aacute (U+00E1): Quad(QuadBez { p0: (86.0, 100.0), p1: (187.0, 187.0), p2: (246.0, 363.0) }) has the same coordinates as a previous segment.
  • acircumflex (U+00E2): Quad(QuadBez { p0: (86.0, 100.0), p1: (187.0, 187.0), p2: (246.0, 363.0) }) has the same coordinates as a previous segment.
  • atilde (U+00E3): Quad(QuadBez { p0: (86.0, 100.0), p1: (187.0, 187.0), p2: (246.0, 363.0) }) has the same coordinates as a previous segment.
  • adieresis (U+00E4): Quad(QuadBez { p0: (86.0, 100.0), p1: (187.0, 187.0), p2: (246.0, 363.0) }) has the same coordinates as a previous segment.
  • aring (U+00E5): Quad(QuadBez { p0: (86.0, 100.0), p1: (187.0, 187.0), p2: (246.0, 363.0) }) has the same coordinates as a previous segment.
    ... and 6 others [code: overlapping-path-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • J (U+004A): Line(Line { p0: (344.0, 710.0), p1: (461.0, 711.0) }) (angle: 0.49 degrees, expected: 0.00 degrees)
  • IJ (U+0132): Line(Line { p0: (687.0, 700.0), p1: (804.0, 701.0) }) (angle: 0.49 degrees, expected: 0.00 degrees)
  • Jcircumflex (U+0134): Line(Line { p0: (344.0, 710.0), p1: (461.0, 711.0) }) (angle: 0.49 degrees, expected: 0.00 degrees) [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 'AOEF' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Devonshire" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Devonshire-Regular.ttf
Dehinted Size 67216
Hinted Size 67240
Increase 24
Change 0.0 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.001, Version 1.001 [code: version-not-detected]
[2] ofl/devonshire/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011 by brian j. bonislawsky dba astigmatic (aoeti) "

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+(astigma@astigmatic.com), with Reserved Font Name "Devonshire"
[code: incorrect-ofl-body-text]

[2] ofl/devonshire/DESCRIPTION.en_us.html
🔥 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]
⚠️ 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]
[1] ofl/devonshire/METADATA.pb
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
21 85 9 109 67
7% 29% 3% 37% 23%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[2] ofl/donegalone/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2012 by sorkin type co (www.sorkintype.com), with reserved font name 'donegal'
"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+Donegal is a trademark of Sorkin Type Co.
+
-This license is copied below, and is also available with a FAQ at:
-https://openfontlicense.org
+This license is copied below, and is also available with a FAQ at: https://openfontlicense.org
+
-include source files, build scripts and documentation.
+include Gelasio files, build scripts and documentation.
[code: incorrect-ofl-body-text]

[9] ofl/donegalone
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.14% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Aleut language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̂ (U+0302) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̈ (U+0308)
  • ̃ (U+0303) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL DonegalOne-Regular.ttf: 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) 2012, sorkin type co (www.sorkintype.com) with reserved font name 'donegal'" [code: bad-notice-format]

  • 🔥 FAIL DonegalOne-Regular.ttf: 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) 2012, sorkin type co (www.sorkintype.com) with reserved font name 'donegal'" [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) 2012, sorkin type co (www.sorkintype.com eben@eyebytes.com) with reserved font name 'donegal'" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2012, sorkin type co (www.sorkintype.com eben@eyebytes.com) with reserved font name 'donegal': ["METADATA.pb"]
  • copyright (c) 2012, sorkin type co (www.sorkintype.com) with reserved font name 'donegal': ["DonegalOne-Regular.ttf: Name Table entry", "DonegalOne-Regular.ttf: Name Table entry"] [code: mismatch]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/donegalone/DonegalOne-Regular.ttf: 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+0001 : try adding symbols
  • U+0002 : try adding symbols
  • U+0003 : try adding symbols
  • U+0004 : try adding symbols
  • U+0005 : try adding symbols
  • U+0006 : try adding symbols
  • U+0007 : try adding symbols
  • U+0008 : try adding symbols
  • U+0009 : try adding symbols
    ... and 38 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2012, Sorkin Type Co (www.sorkintype.com eben@eyebytes.com) with Reserved Font Name 'Donegal'") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[29] ofl/donegalone/DonegalOne-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+021B [code: missing-case-counterparts]
🔥 FAIL Does font file include unacceptable control character glyphs? (control_chars)
  • 🔥 FAIL Unacceptable control character U+0001 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0002 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0003 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0004 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0005 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0006 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0007 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0008 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0009 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+000A found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0010 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0011 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0012 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0013 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0014 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0015 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0016 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0017 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0018 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0019 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+001E found in font [code: unacceptable]

🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Ensure component transforms do not perform scaling or rotation. (transformed_components)
  • 🔥 FAIL The following glyphs had components with scaling or rotation or inverted outline direction:
  • parenright (component parenleft)
  • greater (component less)
  • backslash (component slash)
  • bracketright (component bracketleft)
  • braceright (component braceleft)
  • exclamdown (component exclam)
  • guillemotright (component guilsinglleft)
  • guillemotright (component guilsinglleft)
  • quotedblright (component quoteleft)
    ... and 9 others [code: transformed-components]
🔥 FAIL Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • 🔥 FAIL Failed language shaping:
Message Languages
Mandatory orthography codepoints: * lt_Latn (Lithuanian)
The following mark characters are missing from the font: ̌, ̄, ̇, ̨
Mandatory orthography codepoints: * cy_Latn (Welsh)
The following mark characters are missing from the font: ́, ̀, ̂, ̈
Mandatory orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following mark characters are missing from the font: ̀, ̊, ̂, ́, ̈
Mandatory orthography codepoints: * sq_Latn (Albanian)
The following mark characters are missing from the font: ̧, ̈
Mandatory orthography codepoints: * de_Latn (German)
The following base characters are missing from the font: ẞ
The following mark characters are missing from the font: ̈, ̀, ́
Mandatory orthography codepoints: * mt_Latn (Maltese)
The following mark characters are missing from the font: ̇, ̀, ̂
Mandatory orthography codepoints: * da_Latn (Danish)
The following mark characters are missing from the font: ̊, ́
Mandatory orthography codepoints: * cs_Latn (Czech)
The following mark characters are missing from the font: ̊, ̌, ́
Mandatory orthography codepoints: * hu_Latn (Hungarian)
The following mark characters are missing from the font: ́, ̈, ̋
Mandatory orthography codepoints: * nl_Latn (Dutch)
The following base characters are missing from the font: íj́, ÍJ́
The following mark characters are missing from the font: ̈, ́, ̀, ̂
Mandatory orthography codepoints: * ro_Latn (Romanian)
The following base characters are missing from the font: Ț
The following mark characters are missing from the font: ̦, ̧, ̂, ̆
Mandatory orthography codepoints: * pl_Latn (Polish)
The following mark characters are missing from the font: ́, ̇, ̨
Mandatory orthography codepoints: * fr_Latn (French)
The following mark characters are missing from the font: ̈, ̀, ́, ̧, ̂
Mandatory orthography codepoints: * pt_Latn (Portuguese)
The following mark characters are missing from the font: ̃, ̂, ̀, ́, ̧, ̈
Mandatory orthography codepoints: * sk_Latn (Slovak)
The following mark characters are missing from the font: ̂, ̌, ̈, ́
Mandatory orthography codepoints: * fi_Latn (Finnish)
The following mark characters are missing from the font: ̊, ̃, ̌, ̈
Mandatory orthography codepoints: * sv_Latn (Swedish)
The following mark characters are missing from the font: ́, ̈, ̀, ̊
Mandatory orthography codepoints: * tr_Latn (Turkish)
The following mark characters are missing from the font: ̦, ̈, ̧, ̆, ̂, ̇
Mandatory orthography codepoints: * es_Latn (Spanish)
The following mark characters are missing from the font: ́, ̈, ̃
Mandatory orthography codepoints: * lv_Latn (Latvian)
The following mark characters are missing from the font: ̌, ̄, ̧
Mandatory orthography codepoints: * ca_Latn (Catalan)
The following mark characters are missing from the font: ̈, ̧, ̀, ́
Mandatory orthography codepoints: * en_Latn (English)
The following mark characters are missing from the font: ̀, ̧, ́, ̂, ̈, ̃
Mandatory orthography codepoints: * hr_Latn (Croatian)
The following mark characters are missing from the font: ̌, ́
Mandatory orthography codepoints: * is_Latn (Icelandic)
The following mark characters are missing from the font: ̈, ̨, ́
Mandatory orthography codepoints: * it_Latn (Italian)
The following mark characters are missing from the font: ́, ̂, ̈, ̀
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * de_Latn (German)
The following auxiliary characters are missing from the font: ſ
Auxiliary orthography codepoints: * fi_Latn (Finnish)
The following auxiliary characters are missing from the font: Ǧ
The following auxiliary characters are missing from the font: Ǥ
The following auxiliary characters are missing from the font: Ȟ
The following auxiliary characters are missing from the font: Ǩ
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ț
The following auxiliary characters are missing from the font: Ʒ
The following auxiliary characters are missing from the font: Ǯ
The following auxiliary characters are missing from the font: ǧ
The following auxiliary characters are missing from the font: ǥ
The following auxiliary characters are missing from the font: ȟ
The following auxiliary characters are missing from the font: ǩ
The following auxiliary characters are missing from the font: ʒ
The following auxiliary characters are missing from the font: ǯ
Auxiliary orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following auxiliary characters are missing from the font: Ǎ
The following auxiliary characters are missing from the font: ǎ
Auxiliary orthography codepoints: * fr_Latn (French)
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ǔ
The following auxiliary characters are missing from the font: ſ
The following auxiliary characters are missing from the font: ǔ
Auxiliary orthography codepoints: * it_Latn (Italian)
The following auxiliary characters are missing from the font: ẞ * pl_Latn (Polish)
* tr_Latn (Turkish)
Auxiliary orthography codepoints: * lt_Latn (Lithuanian)
The following auxiliary characters are missing from the font: Ą́
The following auxiliary characters are missing from the font: Ą̃
The following auxiliary characters are missing from the font: Ẽ
The following auxiliary characters are missing from the font: Ę́
The following auxiliary characters are missing from the font: Ę̃
The following auxiliary characters are missing from the font: Ė́
The following auxiliary characters are missing from the font: Ė̃
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: Į́
The following auxiliary characters are missing from the font: Į̇́
The following auxiliary characters are missing from the font: Į̃
The following auxiliary characters are missing from the font: Į̇̃
The following auxiliary characters are missing from the font: J̃
The following auxiliary characters are missing from the font: J̇̃
The following auxiliary characters are missing from the font: L̃
The following auxiliary characters are missing from the font: M̃
The following auxiliary characters are missing from the font: R̃
The following auxiliary characters are missing from the font: Ų́
The following auxiliary characters are missing from the font: Ų̃
The following auxiliary characters are missing from the font: Ū́
The following auxiliary characters are missing from the font: Ū̃
The following auxiliary characters are missing from the font: ą́
The following auxiliary characters are missing from the font: ą̃
The following auxiliary characters are missing from the font: ẽ
The following auxiliary characters are missing from the font: ę́
The following auxiliary characters are missing from the font: ę̃
The following auxiliary characters are missing from the font: ė́
The following auxiliary characters are missing from the font: ė̃
The following auxiliary characters are missing from the font: i̇́
The following auxiliary characters are missing from the font: i̇̀
The following auxiliary characters are missing from the font: i̇̃
The following auxiliary characters are missing from the font: į́
The following auxiliary characters are missing from the font: į̇́
The following auxiliary characters are missing from the font: į̃
The following auxiliary characters are missing from the font: į̇̃
The following auxiliary characters are missing from the font: j̃
The following auxiliary characters are missing from the font: j̇̃
The following auxiliary characters are missing from the font: l̃
The following auxiliary characters are missing from the font: m̃
The following auxiliary characters are missing from the font: r̃
The following auxiliary characters are missing from the font: ų́
The following auxiliary characters are missing from the font: ų̃
The following auxiliary characters are missing from the font: ū́
The following auxiliary characters are missing from the font: ū̃
Auxiliary orthography codepoints: * en_Latn (English)
The following auxiliary characters are missing from the font: ʻ
Auxiliary orthography codepoints: * da_Latn (Danish)
The following auxiliary characters are missing from the font: Ǿ
The following auxiliary characters are missing from the font: ǿ
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Donegal One Donegal One
Subfamily Name Regular Regular
Full Name Donegal One Donegal One Regular
Postscript Name DonegalOne-Regular DonegalOne-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0039978 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ 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
    inferred from the typical amounts 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:

  • dagger (U+2020): found 3, expected one of: [1, 2, 4] [code: contour-count]
⚠️ WARN Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 1193 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=1168: divide
    width=1366: logicalnot
    width=1306: greaterequal
    width=1362: greater, less
    width=1195: notequal, equal
    width=1327: lessequal
    width=1196: multiply
    width=1303: plusminus [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • Tcommaaccent [code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nonbreakingspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • Thorn (U+00DE): from (275.0, 262.0) to (275.0, 1120.0) is colinear with segment from (275.0, 1120.0) to (274.0, 1390.0)
  • thorn (U+00FE): from (179.0, -214.0) to (179.0, 23.0) is colinear with segment from (179.0, 23.0) to (181.0, 1286.0)
  • one (U+0031): from (609.0, 1376.0) to (593.0, 1092.0) is colinear with segment from (593.0, 1092.0) to (593.0, 137.0)
  • G (U+0047): from (1380.0, 528.0) to (1380.0, 319.0) is colinear with segment from (1380.0, 319.0) to (1388.0, 119.0)
  • N (U+004E): from (1343.0, 367.0) to (1336.0, 866.0) is colinear with segment from (1336.0, 866.0) to (1327.0, 1390.0)
  • W (U+0057): from (1059.0, 1156.0) to (1026.0, 1251.0) is colinear with segment from (1026.0, 1251.0) to (970.0, 1393.0)
  • X (U+0058): from (653.0, 742.0) to (207.0, 1382.0) is colinear with segment from (207.0, 1382.0) to (198.0, 1393.0)
  • k (U+006B): from (942.0, -22.0) to (813.0, 123.0) is colinear with segment from (813.0, 123.0) to (490.0, 527.0)
  • v (U+0076): from (548.0, -27.0) to (489.0, 131.0) is colinear with segment from (489.0, 131.0) to (145.0, 871.0)
    ... and 32 others [code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • greater (U+003E) has a counter-clockwise outer contour
  • backslash (U+005C) has a counter-clockwise outer contour
  • bracketright (U+005D) has a counter-clockwise outer contour
  • braceright (U+007D) has a counter-clockwise outer contour
  • guillemotright (U+00BB) has a counter-clockwise outer contour
  • guilsinglright (U+203A) has a counter-clockwise outer contour
  • gcommaaccent (U+0123) has a counter-clockwise outer contour
  • quotereversed (U+201B) has a counter-clockwise outer contour [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • x (U+0078): Line(Line { p0: (879.0, 886.0), p1: (867.0, 884.0) })/Line(Line { p0: (867.0, 884.0), p1: (887.0, 884.0) }) = 9.462322208025574 degrees
  • x (U+0078): Line(Line { p0: (867.0, 884.0), p1: (887.0, 884.0) })/Line(Line { p0: (887.0, 884.0), p1: (879.0, 886.0) }) = 14.036243467926484 degrees [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • Thorn (U+00DE): Line(Line { p0: (275.0, 1120.0), p1: (274.0, 1390.0) }) (angle: 90.21 degrees, expected: 90.00 degrees)
  • thorn (U+00FE): Line(Line { p0: (179.0, 23.0), p1: (181.0, 1286.0) }) (angle: 89.91 degrees, expected: 90.00 degrees)
  • onehalf (U+00BD): Line(Line { p0: (288.0, 941.0), p1: (290.0, 1273.0) }) (angle: 89.65 degrees, expected: 90.00 degrees)
  • onehalf (U+00BD): Line(Line { p0: (467.0, 1273.0), p1: (470.0, 806.0) }) (angle: -89.63 degrees, expected: -90.00 degrees)
  • onequarter (U+00BC): Line(Line { p0: (1366.0, -81.0), p1: (1367.0, 198.0) }) (angle: 89.79 degrees, expected: 90.00 degrees)
  • onequarter (U+00BC): Line(Line { p0: (1367.0, 198.0), p1: (984.0, 195.0) }) (angle: -179.55 degrees, expected: -180.00 degrees)
  • onequarter (U+00BC): Line(Line { p0: (288.0, 941.0), p1: (290.0, 1273.0) }) (angle: 89.65 degrees, expected: 90.00 degrees)
  • onequarter (U+00BC): Line(Line { p0: (467.0, 1273.0), p1: (470.0, 806.0) }) (angle: -89.63 degrees, expected: -90.00 degrees)
  • onesuperior (U+00B9): Line(Line { p0: (283.0, 941.0), p1: (285.0, 1273.0) }) (angle: 89.65 degrees, expected: 90.00 degrees)
    ... and 47 others [code: found-semi-vertical]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. (googlefonts/name/description_max_length)
  • ⚠️ WARN A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries. [code: too-long]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Donegal One" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DonegalOne-Regular.ttf
Dehinted Size 45008
Hinted Size 56944
Increase 11936
Change 26.5 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    cvt
    fpgm
    loca
    prep
    GSUB
    gasp [code: optional-tables]

ℹ️ 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 | - 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.004, Version 1.004 [code: version-not-detected]
[2] ofl/donegalone/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain broken links? (googlefonts/description/broken_links)
🔥 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]
[2] ofl/donegalone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Donegal One" does not match post_script_name="DonegalOne-Regular". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that garylonergan is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
45 30 9 105 71
17% 12% 3% 40% 27%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[32] ofl/doppioone/DoppioOne-Regular.ttf
🔥 FAIL Checking font version fields (head and name table). (opentype/font_version)
  • 🔥 FAIL Font version mismatch: head table: 1.0009918, name table: 1.002 [code: mismatch]
🔥 FAIL Ensure small caps glyphs are available (missing_small_caps_glyphs)
  • 🔥 FAIL The following letters did not take part in smcp substitutions:
  • mu
  • ae
  • aeacute
  • eng
  • uni1E03
  • oe
  • germandbls
  • uni1E41
  • uni1E61
    ... and 16 others [code: missing-smcp-lowercase]
  • 🔥 FAIL The following letters did not take part in c2sc substitutions:
  • Uhungarumlaut
  • Ograve
  • Otilde
  • Emacron
  • Uogonek
  • Tbar
  • Udieresis
  • uni1E40
  • Oacute
    ... and 125 others [code: missing-c2sc-uppercase]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions. (smart_dropout)
  • 🔥 FAIL The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script. [code: lacks-smart-dropout]
🔥 FAIL Ensure component transforms do not perform scaling or rotation. (transformed_components)
  • 🔥 FAIL The following glyphs had components with scaling or rotation or inverted outline direction:
  • exclamdown (component exclam)
  • dieresis (component period)
  • dieresis (component period)
  • guillemotright (component guilsinglleft)
  • guillemotright (component guilsinglleft)
  • edieresis (component period)
  • edieresis (component period)
  • odieresis (component period)
  • odieresis (component period)
    ... and 17 others [code: transformed-components]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Space and non-breaking space have the same width? (whitespace_widths)
  • 🔥 FAIL The space glyph named space is 512 font units wide, non-breaking space named (nonbreakingspace) is 410 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 Failed language shaping:
Message Languages
Mandatory orthography codepoints: * en_Latn (English)
The following mark characters are missing from the font: ̀, ̈, ̧, ̃, ̂, ́
Mandatory orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following mark characters are missing from the font: ̀, ́, ̈, ̊, ̂
Mandatory orthography codepoints: * sk_Latn (Slovak)
The following mark characters are missing from the font: ́, ̈, ̌, ̂
Mandatory orthography codepoints: * sq_Latn (Albanian)
The following mark characters are missing from the font: ̈, ̧
Mandatory orthography codepoints: * lt_Latn (Lithuanian)
The following mark characters are missing from the font: ̌, ̨, ̇, ̄
Mandatory orthography codepoints: * cy_Latn (Welsh)
The following mark characters are missing from the font: ́, ̈, ̀, ̂
Mandatory orthography codepoints: * de_Latn (German)
The following base characters are missing from the font: ẞ
The following mark characters are missing from the font: ̀, ́, ̈
Mandatory orthography codepoints: * lv_Latn (Latvian)
The following mark characters are missing from the font: ̌, ̄, ̧
Mandatory orthography codepoints: * cs_Latn (Czech)
The following mark characters are missing from the font: ̌, ̊, ́
Mandatory orthography codepoints: * hu_Latn (Hungarian)
The following mark characters are missing from the font: ̈, ̋, ́
Mandatory orthography codepoints: * fi_Latn (Finnish)
The following mark characters are missing from the font: ̃, ̌, ̈, ̊
Mandatory orthography codepoints: * ro_Latn (Romanian)
The following base characters are missing from the font: ț, Ț
The following mark characters are missing from the font: ̂, ̧, ̆, ̦
Mandatory orthography codepoints: * pl_Latn (Polish)
The following mark characters are missing from the font: ̨, ́, ̇
Mandatory orthography codepoints: * tr_Latn (Turkish)
The following mark characters are missing from the font: ̦, ̆, ̂, ̇, ̈, ̧
Mandatory orthography codepoints: * ca_Latn (Catalan)
The following mark characters are missing from the font: ̈, ́, ̀, ̧
Mandatory orthography codepoints: * nl_Latn (Dutch)
The following base characters are missing from the font: ÍJ́, íj́
The following mark characters are missing from the font: ̀, ̂, ̈, ́
Mandatory orthography codepoints: * is_Latn (Icelandic)
The following mark characters are missing from the font: ̈, ́, ̨
Mandatory orthography codepoints: * es_Latn (Spanish)
The following mark characters are missing from the font: ̃, ̈, ́
Mandatory orthography codepoints: * fr_Latn (French)
The following mark characters are missing from the font: ̧, ́, ̀, ̂, ̈
Mandatory orthography codepoints: * pt_Latn (Portuguese)
The following mark characters are missing from the font: ̃, ́, ̀, ̈, ̧, ̂
Mandatory orthography codepoints: * mt_Latn (Maltese)
The following mark characters are missing from the font: ̇, ̀, ̂
Mandatory orthography codepoints: * da_Latn (Danish)
The following mark characters are missing from the font: ̊, ́
Mandatory orthography codepoints: * sv_Latn (Swedish)
The following mark characters are missing from the font: ́, ̈, ̊, ̀
Mandatory orthography codepoints: * hr_Latn (Croatian)
The following mark characters are missing from the font: ́, ̌
Mandatory orthography codepoints: * it_Latn (Italian)
The following mark characters are missing from the font: ̈, ̂, ́, ̀
  • ⚠️ WARN Warning language shaping:
Message Languages
Small caps for Latin letters: * fr_Latn (French)
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'œ' and shaping the text 'œ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ß' and shaping the text 'ß' with features: smcp, the output is expected to be different, but was the same
Auxiliary orthography codepoints: * lt_Latn (Lithuanian)
The following auxiliary characters are missing from the font: Ą́
The following auxiliary characters are missing from the font: Ą̃
The following auxiliary characters are missing from the font: Ẽ
The following auxiliary characters are missing from the font: Ę́
The following auxiliary characters are missing from the font: Ę̃
The following auxiliary characters are missing from the font: Ė́
The following auxiliary characters are missing from the font: Ė̃
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: Į́
The following auxiliary characters are missing from the font: Į̇́
The following auxiliary characters are missing from the font: Į̃
The following auxiliary characters are missing from the font: Į̇̃
The following auxiliary characters are missing from the font: J̃
The following auxiliary characters are missing from the font: J̇̃
The following auxiliary characters are missing from the font: L̃
The following auxiliary characters are missing from the font: M̃
The following auxiliary characters are missing from the font: R̃
The following auxiliary characters are missing from the font: Ų́
The following auxiliary characters are missing from the font: Ų̃
The following auxiliary characters are missing from the font: Ū́
The following auxiliary characters are missing from the font: Ū̃
The following auxiliary characters are missing from the font: ą́
The following auxiliary characters are missing from the font: ą̃
The following auxiliary characters are missing from the font: ẽ
The following auxiliary characters are missing from the font: ę́
The following auxiliary characters are missing from the font: ę̃
The following auxiliary characters are missing from the font: ė́
The following auxiliary characters are missing from the font: ė̃
The following auxiliary characters are missing from the font: i̇́
The following auxiliary characters are missing from the font: i̇̀
The following auxiliary characters are missing from the font: i̇̃
The following auxiliary characters are missing from the font: į́
The following auxiliary characters are missing from the font: į̇́
The following auxiliary characters are missing from the font: į̃
The following auxiliary characters are missing from the font: į̇̃
The following auxiliary characters are missing from the font: j̃
The following auxiliary characters are missing from the font: j̇̃
The following auxiliary characters are missing from the font: l̃
The following auxiliary characters are missing from the font: m̃
The following auxiliary characters are missing from the font: r̃
The following auxiliary characters are missing from the font: ų́
The following auxiliary characters are missing from the font: ų̃
The following auxiliary characters are missing from the font: ū́
The following auxiliary characters are missing from the font: ū̃
Small caps for Latin letters: * fi_Latn (Finnish)
When shaping the text 'ð' and shaping the text 'ð' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ı' and shaping the text 'ı' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ŋ' and shaping the text 'ŋ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'œ' and shaping the text 'œ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ß' and shaping the text 'ß' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'þ' and shaping the text 'þ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same
Auxiliary orthography codepoints: * en_Latn (English)
The following auxiliary characters are missing from the font: ʻ
Small caps for Latin letters: * is_Latn (Icelandic)
When shaping the text 'ð' and shaping the text 'ð' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'þ' and shaping the text 'þ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
Small caps for Latin letters: * ca_Latn (Catalan)
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same * cs_Latn (Czech)
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same * cy_Latn (Welsh)
When shaping the text 'œ' and shaping the text 'œ' with features: smcp, the output is expected to be different, but was the same * da_Latn (Danish)
* en_Latn (English)
* es_Latn (Spanish)
* hu_Latn (Hungarian)
* pt_Latn (Portuguese)
* sk_Latn (Slovak)
Small caps i should be dotted: * tr_Latn (Turkish)
When shaping the text 'i' with features: smcp and shaping the text 'i' in language 'tr' with features: smcp, the output is expected to be different, but was the same
Small caps for Latin letters: * pl_Latn (Polish)
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'œ' and shaping the text 'œ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ß' and shaping the text 'ß' with features: smcp, the output is expected to be different, but was the same
Small caps for Latin letters: * tr_Latn (Turkish)
When shaping the text 'ı' and shaping the text 'ı' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'œ' and shaping the text 'œ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ß' and shaping the text 'ß' with features: smcp, the output is expected to be different, but was the same
Small caps for Latin letters: * nb_Latn (Norwegian Bokmål)
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ŋ' and shaping the text 'ŋ' with features: smcp, the output is expected to be different, but was the same
Small caps for Latin letters: * de_Latn (German)
When shaping the text 'ß' and shaping the text 'ß' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ı' and shaping the text 'ı' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'œ' and shaping the text 'œ' with features: smcp, the output is expected to be different, but was the same
Auxiliary orthography codepoints: * it_Latn (Italian)
The following auxiliary characters are missing from the font: ẞ * pl_Latn (Polish)
* tr_Latn (Turkish)
Small caps for Latin letters: * it_Latn (Italian)
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'œ' and shaping the text 'œ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ß' and shaping the text 'ß' with features: smcp, the output is expected to be different, but was the same
Small caps for Latin letters: * sv_Latn (Swedish)
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same
Small caps for Latin letters: * nl_Latn (Dutch)
When shaping the text 'æ' and shaping the text 'æ' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ij' and shaping the text 'ij' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'ø' and shaping the text 'ø' with features: smcp, the output is expected to be different, but was the same
When shaping the text 'œ' and shaping the text 'œ' with features: smcp, the output is expected to be different, but was the same
Auxiliary orthography codepoints: * da_Latn (Danish)
The following auxiliary characters are missing from the font: Ǿ
The following auxiliary characters are missing from the font: ǿ
Auxiliary orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following auxiliary characters are missing from the font: Ǎ
The following auxiliary characters are missing from the font: ǎ
Auxiliary orthography codepoints: * fr_Latn (French)
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ǔ
The following auxiliary characters are missing from the font: ſ
The following auxiliary characters are missing from the font: ǔ
Auxiliary orthography codepoints: * fi_Latn (Finnish)
The following auxiliary characters are missing from the font: Ǧ
The following auxiliary characters are missing from the font: Ǥ
The following auxiliary characters are missing from the font: Ȟ
The following auxiliary characters are missing from the font: Ǩ
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ț
The following auxiliary characters are missing from the font: Ʒ
The following auxiliary characters are missing from the font: Ǯ
The following auxiliary characters are missing from the font: ǧ
The following auxiliary characters are missing from the font: ǥ
The following auxiliary characters are missing from the font: ȟ
The following auxiliary characters are missing from the font: ǩ
The following auxiliary characters are missing from the font: ț
The following auxiliary characters are missing from the font: ʒ
The following auxiliary characters are missing from the font: ǯ
Auxiliary orthography codepoints: * de_Latn (German)
The following auxiliary characters are missing from the font: ſ
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0009918 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 1131 but it should be 1119 which corresponds to the average of the widths of all glyphs in the font. This may indicate a problem with the font editor or the font compiler. [code: xAvgCharWidth-wrong]
⚠️ 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 Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ 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 1005 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=1382: approxequal
    width=969: greater, less
    width=1025: plusminus
    width=812: minus
    width=1124: divide
    width=1031: equal
    width=1018: plus
    width=1062: notequal
    width=1004: multiply
    width=1146: logicalnot [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • dieresis.cap
  • dotaccent.cap
  • breve.cap
  • macron.cap [code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nonbreakingspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • numbersign (U+0023): X=499,Y=1428 (should be at cap-height 1427?)
    • numbersign (U+0023): X=709,Y=1428 (should be at cap-height 1427?)
    • numbersign (U+0023): X=983,Y=1428 (should be at cap-height 1427?)
    • numbersign (U+0023): X=1193,Y=1428 (should be at cap-height 1427?)
    • ampersand (U+0026): X=358.5,Y=1428 (should be at cap-height 1427?)
    • ampersand (U+0026): X=754.5,Y=1428 (should be at cap-height 1427?)
    • zero (U+0030): X=446.5,Y=1426.5 (should be at cap-height 1427?)
    • zero (U+0030): X=929,Y=1426.5 (should be at cap-height 1427?)
    • five (U+0035): X=249,Y=2 (should be at baseline 0?)
      ... and 83 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • .notdef: from (166.0, 1448.0) to (297.0, 1501.0) is colinear with segment from (297.0, 1501.0) to (436.0, 1554.0)
  • .notdef: from (430.0, 1456.0) to (334.0, 1417.0) is colinear with segment from (334.0, 1417.0) to (231.0, 1378.0)
  • .notdef: from (524.0, 1130.0) to (453.0, 1104.0) is colinear with segment from (453.0, 1104.0) to (387.0, 1075.0)
  • Eng (U+014A): from (1339.0, 1427.0) to (1339.0, 77.0) is colinear with segment from (1339.0, 77.0) to (1340.0, -237.0)
  • Delta (U+2206): from (758.0, 1014.0) to (749.0, 984.0) is colinear with segment from (749.0, 984.0) to (443.0, 226.0)
  • ff (U+FB00): from (858.0, 1055.0) to (858.0, 1272.0) is colinear with segment from (858.0, 1272.0) to (858.0, 1286.0) [code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • guillemotright (U+00BB) has a counter-clockwise outer contour
  • guillemotright (U+00BB) has a counter-clockwise outer contour [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • .notdef: Line(Line { p0: (748.0, 197.0), p1: (745.0, 199.0) })/Quad(QuadBez { p0: (745.0, 199.0), p1: (765.0, 186.0), p2: (779.5, 183.0) }) = 0.6661999701832053 degrees
  • .notdef: Line(Line { p0: (567.0, 334.0), p1: (748.0, 197.0) })/Line(Line { p0: (748.0, 197.0), p1: (745.0, 199.0) }) = 3.4322328021532926 degrees [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • four (U+0034): Line(Line { p0: (733.0, 505.0), p1: (735.0, 1237.0) }) (angle: 89.84 degrees, expected: 90.00 degrees)
  • J (U+004A): Line(Line { p0: (525.0, 1427.0), p1: (526.0, 238.0) }) (angle: -89.95 degrees, expected: -90.00 degrees)
  • r (U+0072): Line(Line { p0: (778.0, 1063.0), p1: (776.0, 817.0) }) (angle: -90.47 degrees, expected: -90.00 degrees)
  • ae (U+00E6): Line(Line { p0: (1695.0, 440.0), p1: (1034.0, 444.0) }) (angle: 179.65 degrees, expected: 180.00 degrees)
  • IJ (U+0132): Line(Line { p0: (1126.0, 1427.0), p1: (1127.0, 238.0) }) (angle: -89.95 degrees, expected: -90.00 degrees)
  • Jcircumflex (U+0134): Line(Line { p0: (576.0, 1427.0), p1: (577.0, 238.0) }) (angle: -89.95 degrees, expected: -90.00 degrees)
  • Eng (U+014A): Line(Line { p0: (1339.0, 77.0), p1: (1340.0, -237.0) }) (angle: -89.82 degrees, expected: -90.00 degrees)
  • racute (U+0155): Line(Line { p0: (808.0, 1063.0), p1: (806.0, 817.0) }) (angle: -90.47 degrees, expected: -90.00 degrees)
  • rcommaaccent (U+0157): Line(Line { p0: (778.0, 1063.0), p1: (776.0, 817.0) }) (angle: -90.47 degrees, expected: -90.00 degrees)
    ... and 7 others [code: found-semi-vertical]
⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering? (googlefonts/gasp)
  • ℹ️ INFO These are the ppm ranges declared on the gasp table:

| PPM <= 8 | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
PPM <= 42 - Use grid-fitting
- Use grayscale rendering
- Use gridfitting with ClearType symmetric smoothing
- Use smoothing along multiple axes with ClearType®
PPM <= 65535 - Use grayscale rendering
- Use gridfitting with ClearType symmetric smoothing
- Use smoothing along multiple axes with ClearType®
[code: ranges]
  • ⚠️ WARN The gasp table has a range of 8 that may be unnecessary [code: non-ffff-range]

  • ⚠️ WARN The gasp table has a range of 42 that may be unnecessary [code: non-ffff-range]

  • ⚠️ WARN The gasp range 0xFFFF value 0x0E should be set to 0x0F [code: unset-flags]

⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. (googlefonts/name/description_max_length)
  • ⚠️ WARN A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries. [code: too-long]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Doppio One" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DoppioOne-Regular.ttf
Dehinted Size 36692
Hinted Size 55704
Increase 19012
Change 51.8 %
ℹ️ 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 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.002, Version 1.002 [code: version-not-detected]
[2] ofl/doppioone/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011 by sorkin type co (www.sorkintype.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+with Reserved Font Name "Doppio".
[code: incorrect-ofl-body-text]

[9] ofl/doppioone
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.14% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Aleut language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̂ (U+0302) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̈ (U+0308)
  • ̃ (U+0303) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL DoppioOne-Regular.ttf: 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) 2011, sorkin type co (www.sorkintype.com), with reserved font name "doppio"" [code: bad-notice-format]

  • 🔥 FAIL DoppioOne-Regular.ttf: 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) 2011, sorkin type co (www.sorkintype.com), with reserved font name "doppio"" [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) 2011, sorkin type co (www.sorkintype.com eben@eyebytes.com), with reserved font name "doppio"" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2011, sorkin type co (www.sorkintype.com), with reserved font name "doppio": ["DoppioOne-Regular.ttf: Name Table entry", "DoppioOne-Regular.ttf: Name Table entry"]
  • copyright (c) 2011, sorkin type co (www.sorkintype.com eben@eyebytes.com), with reserved font name "doppio": ["METADATA.pb"] [code: mismatch]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/doppioone/DoppioOne-Regular.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: greek, math, elbasan
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: math, elbasan, greek
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: greek, math, yi
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
    ... and 13 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2011, Sorkin Type Co (www.sorkintype.com eben@eyebytes.com), with Reserved Font Name "Doppio"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/doppioone/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain broken links? (googlefonts/description/broken_links)
🔥 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]
[1] ofl/doppioone/METADATA.pb
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
26 36 9 109 65
11% 15% 4% 44% 27%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[10] ofl/drsugiyama
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.01% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̈ (U+0308)
  • ̃ (U+0303) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL DrSugiyama-Regular.ttf: 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) 2004 alejandro paul (sudtipos@sudtipos.com),
with reserved font name "dr sujiyama"" [code: bad-notice-format]

  • 🔥 FAIL DrSugiyama-Regular.ttf: 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) 2004 alejandro paul (sudtipos@sudtipos.com),
with reserved font name "dr sujiyama"" [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) 2004 alejandro paul (sudtipos@sudtipos.com), with reserved font name "dr sujiyama"" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2004 alejandro paul (sudtipos@sudtipos.com), with reserved font name "dr sujiyama": ["METADATA.pb"]
  • copyright (c) 2004 alejandro paul (sudtipos@sudtipos.com),
    with reserved font name "dr sujiyama": ["DrSugiyama-Regular.ttf: Name Table entry", "DrSugiyama-Regular.ttf: Name Table entry"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/drsugiyama/DrSugiyama-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE [code: missing-codepoints]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/drsugiyama/DrSugiyama-Regular.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2074 SUPERSCRIPT FOUR: try adding math
  • U+2264 LESS-THAN OR EQUAL TO: try adding math
  • U+2265 GREATER-THAN OR EQUAL TO: try adding math

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2004 Alejandro Paul (sudtipos@sudtipos.com), with Reserved Font Name "Dr Sujiyama"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/drsugiyama/DESCRIPTION.en_us.html
🔥 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]
⚠️ 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]
[26] ofl/drsugiyama/DrSugiyama-Regular.ttf
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Font contains glyphs for whitespace characters? (whitespace_glyphs)
  • 🔥 FAIL Whitespace glyph missing for codepoint 0x00A0 [code: missing-whitespace-glyph-0x00A0]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN b (x=-17, bounds are 0<->385) [code: points-out-of-bounds]

  • ⚠️ WARN u (y=217, bounds are -32<->206) [code: points-out-of-bounds]

⚠️ 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
    inferred from the typical amounts 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:

  • germandbls (U+00DF): found 3, expected one of: [1, 2, 5] [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 292 among a set of 11 math glyphs.
    The following math glyphs have a different width, though:
    width=329: less
    width=314: lessequal, greaterequal
    width=304: greater
    width=267: multiply [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • numbersign (U+0023): X=61.5,Y=1 (should be at baseline 0?)
    • seven (U+0037): X=126,Y=1 (should be at baseline 0?)
    • less (U+003C): X=310,Y=2 (should be at baseline 0?)
    • greater (U+003E): X=33,Y=2.5 (should be at baseline 0?)
    • A (U+0041): X=699,Y=1.5 (should be at baseline 0?)
    • B (U+0042): X=253.5,Y=-2 (should be at baseline 0?)
    • E (U+0045): X=414.5,Y=712.5 (should be at cap-height 710?)
    • E (U+0045): X=216,Y=709.5 (should be at cap-height 710?)
    • G (U+0047): X=572,Y=708.5 (should be at cap-height 710?)
      ... and 83 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • F (U+0046): from (151.0, 74.0) to (152.0, -12.0) is colinear with segment from (152.0, -12.0) to (152.0, -27.0)
  • K (U+004B): from (0.0, 252.0) to (0.0, 387.0) is colinear with segment from (0.0, 387.0) to (1.0, 490.0)
  • M (U+004D): from (52.0, 699.0) to (52.0, 692.0) is colinear with segment from (52.0, 692.0) to (54.0, 608.0)
  • M (U+004D): from (52.0, 692.0) to (54.0, 608.0) is colinear with segment from (54.0, 608.0) to (54.0, 567.0)
  • R (U+0052): from (195.0, 148.0) to (196.0, 173.0) is colinear with segment from (196.0, 173.0) to (195.0, 299.0)
  • underscore (U+005F): from (56.0, -12.0) to (262.0, -16.0) is colinear with segment from (262.0, -16.0) to (294.0, -16.0)
  • underscore (U+005F): from (46.0, -12.0) to (56.0, -12.0) is colinear with segment from (56.0, -12.0) to (262.0, -16.0)
  • germandbls (U+00DF): from (18.0, -347.0) to (26.0, -89.0) is colinear with segment from (26.0, -89.0) to (26.0, -57.0)
  • thorn (U+00FE): from (62.0, 86.0) to (77.0, 298.0) is colinear with segment from (77.0, 298.0) to (77.0, 309.0)
    ... and 6 others [code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • exclam (U+0021) has a counter-clockwise outer contour
  • percent (U+0025) has a counter-clockwise outer contour
  • percent (U+0025) has a counter-clockwise outer contour
  • F (U+0046) has a counter-clockwise outer contour
  • T (U+0054) has a counter-clockwise outer contour
  • k (U+006B) has a counter-clockwise outer contour
  • exclamdown (U+00A1) has a counter-clockwise outer contour
  • paragraph (U+00B6) has a counter-clockwise outer contour
  • Agrave (U+00C0) has a counter-clockwise outer contour
    ... and 18 others [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • greater (U+003E): Quad(QuadBez { p0: (96.5, 114.5), p1: (167.0, 160.0), p2: (218.0, 163.0) })/Quad(QuadBez { p0: (218.0, 163.0), p1: (198.0, 166.0), p2: (161.5, 176.5) }) = 11.897226273377932 degrees
  • M (U+004D): Quad(QuadBez { p0: (486.0, 501.0), p1: (555.0, 695.0), p2: (562.0, 691.0) })/Quad(QuadBez { p0: (562.0, 691.0), p1: (560.0, 692.0), p2: (568.0, 699.0) }) = 3.1798301198641643 degrees
  • trademark (U+2122): Quad(QuadBez { p0: (178.0, 405.5), p1: (178.0, 373.0), p2: (164.0, 289.0) })/Quad(QuadBez { p0: (164.0, 289.0), p1: (203.0, 425.0), p2: (222.0, 425.0) }) = 6.538700645820437 degrees
  • trademark (U+2122): Quad(QuadBez { p0: (239.0, 336.0), p1: (239.0, 307.0), p2: (238.0, 300.0) })/Line(Line { p0: (238.0, 300.0), p1: (243.0, 315.0) }) = 10.304846468766044 degrees
  • lessequal (U+2264): Line(Line { p0: (172.0, 178.0), p1: (126.0, 167.0) })/Quad(QuadBez { p0: (126.0, 167.0), p1: (175.0, 167.0), p2: (242.0, 150.5) }) = 13.448615051686527 degrees
  • greaterequal (U+2265): Quad(QuadBez { p0: (111.0, 158.0), p1: (122.0, 158.0), p2: (224.0, 152.0) })/Quad(QuadBez { p0: (224.0, 152.0), p1: (141.0, 168.0), p2: (83.0, 208.0) }) = 7.544667720853607 degrees [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • R (U+0052): Line(Line { p0: (196.0, 173.0), p1: (195.0, 299.0) }) (angle: 90.45 degrees, expected: 90.00 degrees)
  • bar (U+007C): Line(Line { p0: (102.0, 542.0), p1: (100.0, -26.0) }) (angle: -90.20 degrees, expected: -90.00 degrees)
  • brokenbar (U+00A6): Line(Line { p0: (103.0, 198.0), p1: (102.0, -26.0) }) (angle: -90.26 degrees, expected: -90.00 degrees) [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 'SUDT' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Dr Sugiyama" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DrSugiyama-Regular.ttf
Dehinted Size 39904
Hinted Size 39928
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - Use grid-fitting |
| | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
[code: ranges]
ℹ️ INFO Font has old ttfautohint applied? (googlefonts/old_ttfautohint)
  • ℹ️ INFO Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: Version 1.000, Version 1.000 [code: version-not-detected]
[1] ofl/drsugiyama/METADATA.pb
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[2] ofl/drsugiyama/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011 alejandro paul (sudtipos@sudtipos.com), "

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+with Reserved Font Name "Dr Sugiyama"
[code: incorrect-ofl-body-text]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
21 29 9 109 70
9% 12% 4% 46% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[10] ofl/durusans
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • 🔥 FAIL METADATA.pb full_name field "Duru Sans" does not match correct full name "Duru Sans Regular". [code: fullname-mismatch]

  • 🔥 FAIL METADATA.pb full_name field "Duru Sans" does not match correct full name "Duru Sans Regular". [code: fullname-mismatch]

🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.14% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Aleut language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̂ (U+0302) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̃ (U+0303)
  • ̈ (U+0308) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL DuruSans-Regular.ttf: 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) 2010 by sorkin type co with reserved font name duru.

this font software is licensed under the sil open font license, version 1.1. this license is copied below, and is also available with a faq at: http://scripts.sil.org/ofl" [code: bad-notice-format]

  • 🔥 FAIL DuruSans-Regular.ttf: 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) 2010 by sorkin type co with reserved font name duru.

this font software is licensed under the sil open font license, version 1.1. this license is copied below, and is also available with a faq at: http://scripts.sil.org/ofl" [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) 2010 by sorkin type co (eben@eyebytes.com) with reserved font name duru." [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2010 by sorkin type co (eben@eyebytes.com) with reserved font name duru.: ["METADATA.pb"]
  • copyright (c) 2010 by sorkin type co with reserved font name duru.

this font software is licensed under the sil open font license, version 1.1. this license is copied below, and is also available with a faq at: http://scripts.sil.org/ofl: ["DuruSans-Regular.ttf: Name Table entry", "DuruSans-Regular.ttf: Name Table entry"] [code: mismatch]

⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/durusans/DuruSans-Regular.ttf: 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+0001 : try adding symbols
  • U+0002 : try adding symbols
  • U+0003 : try adding symbols
  • U+0004 : try adding symbols
  • U+0005 : try adding symbols
  • U+0006 : try adding symbols
  • U+0007 : try adding symbols
  • U+0008 : try adding symbols
  • U+0009 : try adding symbols
    ... and 31 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2010 by Sorkin Type Co (eben@eyebytes.com) with Reserved Font Name Duru.") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/durusans/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011 by sorkin type co (www.sorkintype.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+with Reserved Font Name "Duru".
[code: incorrect-ofl-body-text]

[29] ofl/durusans/DuruSans-Regular.ttf
🔥 FAIL Does font file include unacceptable control character glyphs? (control_chars)
  • 🔥 FAIL Unacceptable control character U+0001 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0002 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0003 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0004 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0005 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0006 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0007 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0008 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0009 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0010 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0011 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0012 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0013 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0014 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0015 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0016 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0017 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0018 found in font [code: unacceptable]

  • 🔥 FAIL Unacceptable control character U+0019 found in font [code: unacceptable]

🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Space and non-breaking space have the same width? (whitespace_widths)
  • 🔥 FAIL The space glyph named space is 686 font units wide, non-breaking space named (nonbreakingspace) is 493 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 Failed language shaping:
Message Languages
Mandatory orthography codepoints: * hr_Latn (Croatian)
The following mark characters are missing from the font: ́, ̌
Mandatory orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following mark characters are missing from the font: ̊, ̀, ̂, ́, ̈
Mandatory orthography codepoints: * ca_Latn (Catalan)
The following mark characters are missing from the font: ̀, ́, ̈, ̧
Mandatory orthography codepoints: * sk_Latn (Slovak)
The following mark characters are missing from the font: ̌, ́, ̈, ̂
Mandatory orthography codepoints: * nl_Latn (Dutch)
The following base characters are missing from the font: ÍJ́, íj́
The following mark characters are missing from the font: ̀, ́, ̂, ̈
Mandatory orthography codepoints: * pl_Latn (Polish)
The following mark characters are missing from the font: ̨, ́, ̇
Mandatory orthography codepoints: * en_Latn (English)
The following mark characters are missing from the font: ̂, ̀, ̈, ̧, ̃, ́
Mandatory orthography codepoints: * es_Latn (Spanish)
The following mark characters are missing from the font: ́, ̃, ̈
Mandatory orthography codepoints: * lv_Latn (Latvian)
The following mark characters are missing from the font: ̧, ̄, ̌
Mandatory orthography codepoints: * pt_Latn (Portuguese)
The following mark characters are missing from the font: ̀, ̧, ̂, ̈, ́, ̃
Mandatory orthography codepoints: * da_Latn (Danish)
The following mark characters are missing from the font: ̊, ́
Mandatory orthography codepoints: * ro_Latn (Romanian)
The following base characters are missing from the font: Ț, ț
The following mark characters are missing from the font: ̦, ̆, ̧, ̂
Mandatory orthography codepoints: * de_Latn (German)
The following base characters are missing from the font: ẞ
The following mark characters are missing from the font: ́, ̈, ̀
Mandatory orthography codepoints: * is_Latn (Icelandic)
The following mark characters are missing from the font: ̨, ́, ̈
Mandatory orthography codepoints: * fr_Latn (French)
The following mark characters are missing from the font: ̀, ̂, ̧, ́, ̈
Mandatory orthography codepoints: * sv_Latn (Swedish)
The following mark characters are missing from the font: ́, ̈, ̊, ̀
Mandatory orthography codepoints: * tr_Latn (Turkish)
The following mark characters are missing from the font: ̦, ̇, ̧, ̈, ̂, ̆
Mandatory orthography codepoints: * sq_Latn (Albanian)
The following mark characters are missing from the font: ̈, ̧
Mandatory orthography codepoints: * it_Latn (Italian)
The following mark characters are missing from the font: ̀, ̂, ̈, ́
Mandatory orthography codepoints: * cy_Latn (Welsh)
The following mark characters are missing from the font: ̂, ̀, ̈, ́
Mandatory orthography codepoints: * hu_Latn (Hungarian)
The following mark characters are missing from the font: ́, ̋, ̈
Mandatory orthography codepoints: * cs_Latn (Czech)
The following mark characters are missing from the font: ́, ̊, ̌
Mandatory orthography codepoints: * fi_Latn (Finnish)
The following mark characters are missing from the font: ̌, ̈, ̊, ̃
Mandatory orthography codepoints: * mt_Latn (Maltese)
The following mark characters are missing from the font: ̇, ̀, ̂
Mandatory orthography codepoints: * lt_Latn (Lithuanian)
The following mark characters are missing from the font: ̨, ̄, ̇, ̌
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following auxiliary characters are missing from the font: Ǎ
The following auxiliary characters are missing from the font: ǎ
Auxiliary orthography codepoints: * de_Latn (German)
The following auxiliary characters are missing from the font: ſ
Auxiliary orthography codepoints: * da_Latn (Danish)
The following auxiliary characters are missing from the font: Ǿ
The following auxiliary characters are missing from the font: ǿ
Auxiliary orthography codepoints: * en_Latn (English)
The following auxiliary characters are missing from the font: ʻ
Auxiliary orthography codepoints: * fi_Latn (Finnish)
The following auxiliary characters are missing from the font: Ǧ
The following auxiliary characters are missing from the font: Ǥ
The following auxiliary characters are missing from the font: Ȟ
The following auxiliary characters are missing from the font: Ǩ
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ț
The following auxiliary characters are missing from the font: Ʒ
The following auxiliary characters are missing from the font: Ǯ
The following auxiliary characters are missing from the font: ǧ
The following auxiliary characters are missing from the font: ǥ
The following auxiliary characters are missing from the font: ȟ
The following auxiliary characters are missing from the font: ǩ
The following auxiliary characters are missing from the font: ț
The following auxiliary characters are missing from the font: ʒ
The following auxiliary characters are missing from the font: ǯ
Auxiliary orthography codepoints: * lt_Latn (Lithuanian)
The following auxiliary characters are missing from the font: Ą́
The following auxiliary characters are missing from the font: Ą̃
The following auxiliary characters are missing from the font: Ẽ
The following auxiliary characters are missing from the font: Ę́
The following auxiliary characters are missing from the font: Ę̃
The following auxiliary characters are missing from the font: Ė́
The following auxiliary characters are missing from the font: Ė̃
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: Į́
The following auxiliary characters are missing from the font: Į̇́
The following auxiliary characters are missing from the font: Į̃
The following auxiliary characters are missing from the font: Į̇̃
The following auxiliary characters are missing from the font: J̃
The following auxiliary characters are missing from the font: J̇̃
The following auxiliary characters are missing from the font: L̃
The following auxiliary characters are missing from the font: M̃
The following auxiliary characters are missing from the font: R̃
The following auxiliary characters are missing from the font: Ų́
The following auxiliary characters are missing from the font: Ų̃
The following auxiliary characters are missing from the font: Ū́
The following auxiliary characters are missing from the font: Ū̃
The following auxiliary characters are missing from the font: ą́
The following auxiliary characters are missing from the font: ą̃
The following auxiliary characters are missing from the font: ẽ
The following auxiliary characters are missing from the font: ę́
The following auxiliary characters are missing from the font: ę̃
The following auxiliary characters are missing from the font: ė́
The following auxiliary characters are missing from the font: ė̃
The following auxiliary characters are missing from the font: i̇́
The following auxiliary characters are missing from the font: i̇̀
The following auxiliary characters are missing from the font: i̇̃
The following auxiliary characters are missing from the font: į́
The following auxiliary characters are missing from the font: į̇́
The following auxiliary characters are missing from the font: į̃
The following auxiliary characters are missing from the font: į̇̃
The following auxiliary characters are missing from the font: j̃
The following auxiliary characters are missing from the font: j̇̃
The following auxiliary characters are missing from the font: l̃
The following auxiliary characters are missing from the font: m̃
The following auxiliary characters are missing from the font: r̃
The following auxiliary characters are missing from the font: ų́
The following auxiliary characters are missing from the font: ų̃
The following auxiliary characters are missing from the font: ū́
The following auxiliary characters are missing from the font: ū̃
Auxiliary orthography codepoints: * fr_Latn (French)
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ǔ
The following auxiliary characters are missing from the font: ſ
The following auxiliary characters are missing from the font: ǔ
Auxiliary orthography codepoints: * it_Latn (Italian)
The following auxiliary characters are missing from the font: ẞ * pl_Latn (Polish)
* tr_Latn (Turkish)
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0019989 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 1226 but it should be 1205 which corresponds to the average of the widths of all glyphs in the font. This may indicate a problem with the font editor or the font compiler. [code: xAvgCharWidth-wrong]
⚠️ 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 Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 1196 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=1366: logicalnot
    width=1024: greaterequal, lessequal
    width=1022: less, greater [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • commaaccent
  • tilde.cap
  • ring.cap
  • caron.cap
  • dieresis.cap
  • circumflex.cap
  • acute.cap
    ... and 7 others [code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nonbreakingspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • numbersign (U+0023): X=510,Y=1555 (should be at cap-height 1554?)
    • numbersign (U+0023): X=656,Y=1555 (should be at cap-height 1554?)
    • numbersign (U+0023): X=927,Y=1555 (should be at cap-height 1554?)
    • numbersign (U+0023): X=1073,Y=1555 (should be at cap-height 1554?)
    • percent (U+0025): X=1481,Y=1555 (should be at cap-height 1554?)
    • percent (U+0025): X=1393,Y=-2 (should be at baseline 0?)
    • seven (U+0037): X=411,Y=-2 (should be at baseline 0?)
    • at (U+0040): X=1064,Y=1553 (should be at cap-height 1554?)
    • B (U+0042): X=197,Y=1555 (should be at cap-height 1554?)
      ... and 68 others [code: found-misalignments]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • parenright (U+0029) has a counter-clockwise outer contour
  • backslash (U+005C) has a counter-clockwise outer contour
  • bracketright (U+005D) has a counter-clockwise outer contour
  • braceright (U+007D) has a counter-clockwise outer contour
  • guillemotright (U+00BB) has a counter-clockwise outer contour
  • guillemotright (U+00BB) has a counter-clockwise outer contour
  • guilsinglright (U+203A) has a counter-clockwise outer contour
  • greaterequal (U+2265) has a counter-clockwise outer contour
  • greaterequal (U+2265) has a counter-clockwise outer contour [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • asterisk (U+002A): Line(Line { p0: (856.0, 1203.0), p1: (853.0, 1203.0) })/Quad(QuadBez { p0: (853.0, 1203.0), p1: (891.0, 1195.0), p2: (921.0, 1181.0) }) = 11.888658039627968 degrees [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • b (U+0062): Line(Line { p0: (369.0, 400.0), p1: (368.0, 248.0) }) (angle: -90.38 degrees, expected: -90.00 degrees)
  • h (U+0068): Line(Line { p0: (218.0, 0.0), p1: (215.0, 1409.0) }) (angle: 90.12 degrees, expected: 90.00 degrees)
  • k (U+006B): Line(Line { p0: (376.0, 1634.0), p1: (378.0, 694.0) }) (angle: -89.88 degrees, expected: -90.00 degrees)
  • l (U+006C): Line(Line { p0: (196.0, 301.0), p1: (198.0, 1620.0) }) (angle: 89.91 degrees, expected: 90.00 degrees)
  • l (U+006C): Line(Line { p0: (370.0, 1634.0), p1: (368.0, 312.0) }) (angle: -90.09 degrees, expected: -90.00 degrees)
  • m (U+006D): Line(Line { p0: (206.0, 0.0), p1: (207.0, 339.0) }) (angle: 89.83 degrees, expected: 90.00 degrees)
  • n (U+006E): Line(Line { p0: (206.0, 0.0), p1: (207.0, 339.0) }) (angle: 89.83 degrees, expected: 90.00 degrees)
  • q (U+0071): Line(Line { p0: (932.0, -479.0), p1: (930.0, 329.0) }) (angle: 90.14 degrees, expected: 90.00 degrees)
  • t (U+0074): Line(Line { p0: (245.0, 301.0), p1: (250.0, 1016.0) }) (angle: 89.60 degrees, expected: 90.00 degrees)
    ... and 45 others [code: found-semi-vertical]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • dollar (U+0024) contains a short segment Quad(QuadBez { p0: (642.0, 868.0), p1: (647.0, 864.0), p2: (653.5, 862.0) }) (length: 13.05, total outline: 6296.35)
  • ampersand (U+0026) contains a short segment Quad(QuadBez { p0: (164.0, 391.0), p1: (163.0, 399.0), p2: (163.0, 407.0) }) (length: 16.04, total outline: 5993.61)
  • ampersand (U+0026) contains a short segment Quad(QuadBez { p0: (163.0, 407.0), p1: (163.0, 415.0), p2: (163.0, 423.0) }) (length: 16.00, total outline: 5993.61)
  • ampersand (U+0026) contains a short segment Quad(QuadBez { p0: (711.0, 820.0), p1: (718.0, 811.0), p2: (724.5, 801.0) }) (length: 23.31, total outline: 5993.61)
  • asterisk (U+002A) contains a short segment Line(Line { p0: (856.0, 1203.0), p1: (853.0, 1203.0) }) (length: 3.00, total outline: 934.84)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (1524.0, 123.0), p1: (1503.0, 120.0), p2: (1477.5, 120.0) }) (length: 46.64, total outline: 13580.01)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (1477.5, 120.0), p1: (1452.0, 120.0), p2: (1422.5, 127.0) }) (length: 55.57, total outline: 13580.01)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (1422.5, 127.0), p1: (1393.0, 134.0), p2: (1368.0, 150.0) }) (length: 59.44, total outline: 13580.01)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (1413.0, 345.0), p1: (1413.0, 299.0), p2: (1435.0, 275.5) }) (length: 74.66, total outline: 13580.01)
    ... and 37 others [code: found-short-segments]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. (googlefonts/name/description_max_length)
  • ⚠️ WARN A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries. [code: too-long]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Duru Sans" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
DuruSans-Regular.ttf
Dehinted Size 50832
Hinted Size 88088
Increase 37256
Change 73.3 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    cvt
    fpgm
    loca
    prep
    gasp [code: optional-tables]

ℹ️ 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 | - 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.002, Version 1.002 [code: version-not-detected]
[2] ofl/durusans/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain broken links? (googlefonts/description/broken_links)
🔥 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]
[2] ofl/durusans/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Duru Sans" does not match post_script_name="DuruSans-Regular". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that onuryazicigil is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
43 34 9 107 68
16% 13% 3% 41% 26%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[25] ofl/economica/Economica-Regular.ttf
🔥 FAIL Check if each glyph has the recommended amount of contours. (contour_count)
  • 🔥 FAIL The following glyphs have no contours even though they were expected to have some:
  • Delta (U+2206): found 0, expected one of: [2, 3]
  • Omega (U+2126): found 0, expected one of: [1, 3]
  • pi (U+03C0): found 0, expected one of: [1, 3]
  • partialdiff (U+2202): found 0, expected one of: [1, 2]
  • product (U+220F): found 0, expected one of: [1, 3, 5]
  • summation (U+2211): found 0, expected one of: [1, 2]
  • radical (U+221A): found 0, expected one of: [1, 2]
  • infinity (U+221E): found 0, expected one of: [1, 2, 3]
  • integral (U+222B): found 0, expected one of: [1, 5]
    ... and 5 others [code: no-contour]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Economica Economica
Subfamily Name Regular Regular
Full Name Economica Economica Regular
Postscript Name Economica-Regular Economica-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.1009979 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ 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 500 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=356: logicalnot
    width=336: minus
    width=271: multiply
    width=279: plusminus
    width=236: greater
    width=237: less
    width=243: plus
    width=363: equal
    width=275: divide [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • apple [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • exclam (U+0021): X=141,Y=721 (should be at cap-height 720?)
    • quotedbl (U+0022): X=66,Y=719 (should be at cap-height 720?)
    • quotedbl (U+0022): X=126.5,Y=718.5 (should be at cap-height 720?)
    • quotedbl (U+0022): X=210,Y=719 (should be at cap-height 720?)
    • quotedbl (U+0022): X=270.5,Y=718.5 (should be at cap-height 720?)
    • quotesingle (U+0027): X=66.5,Y=719 (should be at cap-height 720?)
    • quotesingle (U+0027): X=131.5,Y=718.5 (should be at cap-height 720?)
    • parenleft (U+0028): X=103,Y=721.5 (should be at cap-height 720?)
    • parenright (U+0029): X=145,Y=721.5 (should be at cap-height 720?)
      ... and 71 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • M (U+004D): from (435.0, 560.0) to (334.0, 347.0) is colinear with segment from (334.0, 347.0) to (310.0, 301.0)
  • M (U+004D): from (270.0, 301.0) to (245.0, 346.0) is colinear with segment from (245.0, 346.0) to (142.0, 560.0)
  • W (U+0057): from (191.0, 128.0) to (260.0, 466.0) is colinear with segment from (260.0, 466.0) to (276.0, 520.0)
  • W (U+0057): from (338.0, 520.0) to (353.0, 465.0) is colinear with segment from (353.0, 465.0) to (422.0, 128.0)
  • e (U+0065): from (304.0, 374.0) to (304.0, 322.0) is colinear with segment from (304.0, 322.0) to (308.0, 268.0)
  • registered (U+00AE): from (292.0, 281.0) to (293.0, 268.0) is colinear with segment from (293.0, 268.0) to (293.0, 181.0)
  • registered (U+00AE): from (293.0, 418.0) to (293.0, 335.0) is colinear with segment from (293.0, 335.0) to (292.0, 322.0)
  • ae (U+00E6): from (246.0, 357.0) to (246.0, 415.0) is colinear with segment from (246.0, 415.0) to (247.0, 453.0)
  • egrave (U+00E8): from (304.0, 374.0) to (304.0, 322.0) is colinear with segment from (304.0, 322.0) to (308.0, 268.0)
    ... and 8 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • currency (U+00A4): Line(Line { p0: (324.0, 268.0), p1: (325.0, 269.0) })/Quad(QuadBez { p0: (325.0, 269.0), p1: (290.0, 247.0), p2: (252.0, 247.0) }) = 12.84770485871769 degrees [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • dollar (U+0024): Line(Line { p0: (227.0, -4.0), p1: (226.0, -121.0) }) (angle: -90.49 degrees, expected: -90.00 degrees)
  • M (U+004D): Line(Line { p0: (446.0, 46.0), p1: (450.0, 578.0) }) (angle: 89.57 degrees, expected: 90.00 degrees)
  • M (U+004D): Line(Line { p0: (129.0, 578.0), p1: (132.0, 46.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • f (U+0066): Line(Line { p0: (66.0, -200.0), p1: (67.0, 453.0) }) (angle: 89.91 degrees, expected: 90.00 degrees)
  • m (U+006D): Line(Line { p0: (275.0, 46.0), p1: (274.0, 267.0) }) (angle: 90.26 degrees, expected: 90.00 degrees)
  • germandbls (U+00DF): Line(Line { p0: (122.0, 577.0), p1: (121.0, 58.0) }) (angle: -90.11 degrees, expected: -90.00 degrees)
  • germandbls (U+00DF): Line(Line { p0: (59.0, 0.0), p1: (60.0, 577.0) }) (angle: 89.90 degrees, expected: 90.00 degrees)
  • florin (U+0192): Line(Line { p0: (110.0, -58.0), p1: (111.0, 262.0) }) (angle: 89.82 degrees, expected: 90.00 degrees)
  • fi (U+FB01): Line(Line { p0: (82.0, -200.0), p1: (83.0, 458.0) }) (angle: 89.91 degrees, expected: 90.00 degrees)
    ... and 7 others [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 '{0x00}{0x00}{0x00}{0x00}' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Economica" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Economica-Regular.ttf
Dehinted Size 26732
Hinted Size 26756
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.101, Version 1.101 [code: version-not-detected]
[10] ofl/economica
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.01% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̈ (U+0308)
  • ̃ (U+0303) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Fonts have equal codepoint coverage? (googlefonts/family/equal_codepoint_coverage)
  • 🔥 FAIL Font ofl/economica/Economica-Bold.ttf has codepoints not present in sibling fonts: U+03A9, U+0394 [code: glyphset-diverges]

  • 🔥 FAIL Other fonts have codepoints not present in ofl/economica/Economica-Bold.ttf: U+FB00, U+0132, U+FB06, U+0133, U+FB05 [code: glyphset-diverges]

🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL Economica-Bold.ttf: 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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [code: bad-notice-format]

  • 🔥 FAIL Economica-Bold.ttf: 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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [code: bad-notice-format]

  • 🔥 FAIL Economica-Regular.ttf: 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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [code: bad-notice-format]

  • 🔥 FAIL Economica-Regular.ttf: 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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [code: bad-notice-format]

  • 🔥 FAIL Economica-BoldItalic.ttf: 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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [code: bad-notice-format]

  • 🔥 FAIL Economica-BoldItalic.ttf: 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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [code: bad-notice-format]

  • 🔥 FAIL Economica-Italic.ttf: 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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [code: bad-notice-format]

  • 🔥 FAIL Economica-Italic.ttf: 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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [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) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com)" [code: bad-notice-format]

⚠️ WARN Make sure all font files have the same version value. (opentype/family/equal_font_versions)
  • ⚠️ WARN Version info differs among font files of the same font project.

The following values were found:

  • 1.100: ofl/economica/Economica-Bold.ttf
  • 1.101: ofl/economica/Economica-Regular.ttf
  • 1.100: ofl/economica/Economica-BoldItalic.ttf
  • 1.100: ofl/economica/Economica-Italic.ttf [code: mismatch]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/economica/Economica-Bold.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: greek, elbasan, math
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: math, elbasan, greek
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: greek, math, yi
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2126 OHM SIGN: try adding math
    ... and 12 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

  • ⚠️ WARN ofl/economica/Economica-Regular.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: greek, elbasan, math
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: math, elbasan, greek
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: greek, math, yi
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2126 OHM SIGN: try adding math
    ... and 12 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

  • ⚠️ WARN ofl/economica/Economica-BoldItalic.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: greek, math, yi
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2126 OHM SIGN: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
  • U+2206 INCREMENT: try adding math
    ... and 10 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

  • ⚠️ WARN ofl/economica/Economica-Italic.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: greek, elbasan, math
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: math, elbasan, greek
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: greek, math, yi
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2126 OHM SIGN: try adding math
    ... and 12 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[26] ofl/economica/Economica-Bold.ttf
🔥 FAIL Check if each glyph has the recommended amount of contours. (contour_count)
  • 🔥 FAIL The following glyphs have no contours even though they were expected to have some:
  • Delta (U+2206): found 0, expected one of: [2, 3]
  • Omega (U+2126): found 0, expected one of: [1, 3]
  • pi (U+03C0): found 0, expected one of: [1, 3]
  • partialdiff (U+2202): found 0, expected one of: [1, 2]
  • product (U+220F): found 0, expected one of: [1, 3, 5]
  • summation (U+2211): found 0, expected one of: [1, 2]
  • radical (U+221A): found 0, expected one of: [1, 2]
  • infinity (U+221E): found 0, expected one of: [1, 2, 3]
  • integral (U+222B): found 0, expected one of: [1, 5]
    ... and 5 others [code: no-contour]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN x (x=16, bounds are 22<->339) [code: points-out-of-bounds]

  • ⚠️ WARN x_t (x=16, bounds are 22<->628) [code: points-out-of-bounds]

⚠️ 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 500 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=267: less
    width=340: logicalnot
    width=281: multiply
    width=368: equal
    width=326: minus
    width=296: plusminus
    width=265: greater
    width=275: divide
    width=270: plus [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • apple [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • dollar (U+0024): X=229,Y=-2 (should be at baseline 0?)
    • percent (U+0025): X=154.5,Y=721 (should be at cap-height 720?)
    • zero (U+0030): X=154.5,Y=1 (should be at baseline 0?)
    • nine (U+0039): X=266,Y=718 (should be at cap-height 720?)
    • B (U+0042): X=60,Y=1 (should be at baseline 0?)
    • B (U+0042): X=60,Y=721 (should be at cap-height 720?)
    • C (U+0043): X=312.5,Y=1.5 (should be at baseline 0?)
    • D (U+0044): X=60,Y=722 (should be at cap-height 720?)
    • K (U+004B): X=390.5,Y=719 (should be at cap-height 720?)
      ... and 38 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • M (U+004D): from (245.0, 287.0) to (218.0, 337.0) is colinear with segment from (218.0, 337.0) to (142.0, 517.0)
  • W (U+0057): from (372.0, 507.0) to (392.0, 425.0) is colinear with segment from (392.0, 425.0) to (429.0, 187.0)
  • a (U+0061): from (234.0, 389.0) to (234.0, 413.0) is colinear with segment from (234.0, 413.0) to (235.0, 440.0)
  • m (U+006D): from (265.0, 60.0) to (264.0, 305.0) is colinear with segment from (264.0, 305.0) to (264.0, 344.0)
  • n (U+006E): from (275.0, 60.0) to (275.0, 267.0) is colinear with segment from (275.0, 267.0) to (276.0, 355.0)
  • w (U+0077): from (324.0, 487.0) to (342.0, 414.0) is colinear with segment from (342.0, 414.0) to (387.0, 132.0)
  • germandbls (U+00DF): from (45.0, 0.0) to (46.0, 558.0) is colinear with segment from (46.0, 558.0) to (46.0, 608.0)
  • agrave (U+00E0): from (234.0, 389.0) to (234.0, 413.0) is colinear with segment from (234.0, 413.0) to (235.0, 440.0)
  • aacute (U+00E1): from (234.0, 389.0) to (234.0, 413.0) is colinear with segment from (234.0, 413.0) to (235.0, 440.0)
    ... and 5 others [code: found-colinear-vectors]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • AE (U+00C6) has a path with no bounds (probably a single point) [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • AE (U+00C6): Quad(QuadBez { p0: (197.0, 326.0), p1: (196.0, 324.0), p2: (196.0, 321.0) })/Line(Line { p0: (196.0, 321.0), p1: (197.0, 326.0) }) = 11.309932474020195 degrees
  • eth (U+00F0): Line(Line { p0: (179.0, 410.0), p1: (177.0, 411.0) })/Line(Line { p0: (177.0, 411.0), p1: (179.0, 410.0) }) = 0.0000012074182697257333 degrees
  • eth (U+00F0): Line(Line { p0: (177.0, 411.0), p1: (179.0, 410.0) })/Line(Line { p0: (179.0, 410.0), p1: (177.0, 411.0) }) = 0.0000012074182697257333 degrees [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • AE (U+00C6): Line(Line { p0: (279.0, 326.0), p1: (279.0, 325.0) }) has the same coordinates as a previous segment.
  • AE (U+00C6): Quad(QuadBez { p0: (197.0, 326.0), p1: (196.0, 324.0), p2: (196.0, 321.0) }) has the same coordinates as a previous segment.
  • eth (U+00F0): Line(Line { p0: (177.0, 411.0), p1: (179.0, 410.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • five (U+0035): Line(Line { p0: (60.0, 709.0), p1: (337.0, 708.0) }) (angle: -0.21 degrees, expected: 0.00 degrees)
  • M (U+004D): Line(Line { p0: (416.0, 61.0), p1: (415.0, 516.0) }) (angle: 90.13 degrees, expected: 90.00 degrees)
  • R (U+0052): Line(Line { p0: (155.0, 301.0), p1: (156.0, 61.0) }) (angle: -89.76 degrees, expected: -90.00 degrees)
  • Z (U+005A): Line(Line { p0: (90.0, 719.0), p1: (346.0, 720.0) }) (angle: 0.22 degrees, expected: 0.00 degrees)
  • a (U+0061): Line(Line { p0: (135.0, 260.0), p1: (134.0, 128.0) }) (angle: -90.43 degrees, expected: -90.00 degrees)
  • f (U+0066): Line(Line { p0: (65.0, -187.0), p1: (66.0, 424.0) }) (angle: 89.91 degrees, expected: 90.00 degrees)
  • m (U+006D): Line(Line { p0: (265.0, 60.0), p1: (264.0, 305.0) }) (angle: 90.23 degrees, expected: 90.00 degrees)
  • paragraph (U+00B6): Line(Line { p0: (163.0, 720.0), p1: (479.0, 719.0) }) (angle: -0.18 degrees, expected: 0.00 degrees)
  • germandbls (U+00DF): Line(Line { p0: (136.0, 558.0), p1: (135.0, 71.0) }) (angle: -90.12 degrees, expected: -90.00 degrees)
    ... and 18 others [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 '{0x00}{0x00}{0x00}{0x00}' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Economica" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Economica-Bold.ttf
Dehinted Size 27172
Hinted Size 27196
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.100, Version 1.100 [code: version-not-detected]
[2] ofl/economica/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Economica" does not match post_script_name="Economica-Regular". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN Designer vicentelamonaca still does not have an avatar image. Please provide one. [code: missing-avatar]
[2] ofl/economica/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2012, vicente lamonaca (produccion.taller@gmail.com www.tipografia-montevideo.info www.tipotype.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+with Reserved Font Name Economica.
[code: incorrect-ofl-body-text]

[24] ofl/economica/Economica-BoldItalic.ttf
🔥 FAIL Checking post.italicAngle value. (opentype/italic_angle)
  • 🔥 FAIL Font is italic, so post.italicAngle should be non-zero. [code: zero-italic]
🔥 FAIL Check if each glyph has the recommended amount of contours. (contour_count)
  • 🔥 FAIL The following glyphs have no contours even though they were expected to have some:
  • Omega (U+2126): found 0, expected one of: [1, 3]
  • partialdiff (U+2202): found 0, expected one of: [1, 2]
  • Delta (U+2206): found 0, expected one of: [2, 3]
  • product (U+220F): found 0, expected one of: [1, 3, 5]
  • summation (U+2211): found 0, expected one of: [1, 2]
  • radical (U+221A): found 0, expected one of: [1, 2]
  • infinity (U+221E): found 0, expected one of: [1, 2, 3]
  • integral (U+222B): found 0, expected one of: [1, 5]
  • lozenge (U+25CA): found 0, expected one of: [2] [code: no-contour]
  • ⚠️ WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are
    inferred from the typical amounts 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:

  • pi (U+03C0): found 2, expected one of: [1, 3]
  • notequal (U+2260): found 2, expected one of: [1, 3, 7] [code: contour-count]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN J (x=298, bounds are -29<->296) [code: points-out-of-bounds]

  • ⚠️ WARN I_J (x=470, bounds are 65<->468) [code: points-out-of-bounds]

⚠️ 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 363 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=275: divide
    width=237: less
    width=279: plusminus
    width=364: approxequal
    width=273: lessequal
    width=271: multiply
    width=243: plus
    width=356: logicalnot
    width=336: minus
    width=232: greaterequal
    width=236: greater [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • apple [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • M (U+004D): from (496.0, 502.0) to (397.0, 340.0) is colinear with segment from (397.0, 340.0) to (362.0, 289.0)
  • W (U+0057): from (176.0, 173.0) to (282.0, 467.0) is colinear with segment from (282.0, 467.0) to (309.0, 528.0)
  • q (U+0071): from (254.0, 544.0) to (266.0, 544.0) is colinear with segment from (266.0, 544.0) to (341.0, 537.0)
  • t (U+0074): from (219.0, 580.0) to (212.0, 546.0) is colinear with segment from (212.0, 546.0) to (210.0, 537.0)
  • OE (U+0152): from (459.0, 335.0) to (421.0, 95.0) is colinear with segment from (421.0, 95.0) to (419.0, 84.0)
  • f_t (U+FB05): from (429.0, 689.0) to (422.0, 655.0) is colinear with segment from (422.0, 655.0) to (406.0, 537.0)
  • s_t (U+FB06): from (228.0, 546.0) to (345.0, 543.0) is colinear with segment from (345.0, 543.0) to (432.0, 543.0)
  • s_t (U+FB06): from (522.0, 580.0) to (515.0, 552.0) is colinear with segment from (515.0, 552.0) to (513.0, 543.0)
  • o_t: from (598.0, 580.0) to (593.0, 553.0) is colinear with segment from (593.0, 553.0) to (591.0, 544.0)
    ... and 1 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • oe (U+0153): Line(Line { p0: (406.0, 333.0), p1: (404.0, 329.0) })/Line(Line { p0: (404.0, 329.0), p1: (405.0, 331.0) }) = 0.0000012074182697257333 degrees [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • oe (U+0153): Quad(QuadBez { p0: (405.0, 331.0), p1: (404.0, 330.0), p2: (404.0, 329.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value '{0x00}{0x00}{0x00}{0x00}' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Economica" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Economica-BoldItalic.ttf
Dehinted Size 27000
Hinted Size 27024
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.100, Version 1.100 [code: version-not-detected]
[3] ofl/economica/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain broken links? (googlefonts/description/broken_links)
🔥 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]
⚠️ 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]
[24] ofl/economica/Economica-Italic.ttf
🔥 FAIL Checking post.italicAngle value. (opentype/italic_angle)
  • 🔥 FAIL Font is italic, so post.italicAngle should be non-zero. [code: zero-italic]
🔥 FAIL Check if each glyph has the recommended amount of contours. (contour_count)
  • 🔥 FAIL The following glyphs have no contours even though they were expected to have some:
  • Delta (U+2206): found 0, expected one of: [2, 3]
  • Omega (U+2126): found 0, expected one of: [1, 3]
  • pi (U+03C0): found 0, expected one of: [1, 3]
  • partialdiff (U+2202): found 0, expected one of: [1, 2]
  • product (U+220F): found 0, expected one of: [1, 3, 5]
  • summation (U+2211): found 0, expected one of: [1, 2]
  • radical (U+221A): found 0, expected one of: [1, 2]
  • infinity (U+221E): found 0, expected one of: [1, 2, 3]
  • integral (U+222B): found 0, expected one of: [1, 5]
    ... and 5 others [code: no-contour]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Check tabular widths don't have kerning. (tabular_kerning)
  • 🔥 FAIL Kerning between four and five [code: has-tabular-kerning]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN AE (x=50, bounds are 51<->694) [code: points-out-of-bounds]
⚠️ 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 500 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=236: greater
    width=243: plus
    width=271: multiply
    width=363: equal
    width=237: less
    width=356: logicalnot
    width=336: minus
    width=279: plusminus
    width=275: divide [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • apple [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • exclam (U+0021): X=255,Y=721 (should be at cap-height 720?)
    • quotedbl (U+0022): X=175.5,Y=718 (should be at cap-height 720?)
    • quotedbl (U+0022): X=239,Y=721 (should be at cap-height 720?)
    • quotedbl (U+0022): X=319.5,Y=718 (should be at cap-height 720?)
    • quotedbl (U+0022): X=383,Y=721 (should be at cap-height 720?)
    • percent (U+0025): X=319,Y=721.5 (should be at cap-height 720?)
    • quotesingle (U+0027): X=242,Y=721 (should be at cap-height 720?)
    • two (U+0032): X=172,Y=722 (should be at cap-height 720?)
    • six (U+0036): X=412,Y=722 (should be at cap-height 720?)
      ... and 54 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • dollar (U+0024): from (317.0, 613.0) to (314.0, 585.0) is colinear with segment from (314.0, 585.0) to (308.0, 537.0)
  • at (U+0040): from (504.0, 288.0) to (530.0, 453.0) is colinear with segment from (530.0, 453.0) to (531.0, 463.0)
  • C (U+0043): from (403.0, 668.0) to (391.0, 669.0) is colinear with segment from (391.0, 669.0) to (342.0, 675.0)
  • M (U+004D): from (525.0, 560.0) to (394.0, 347.0) is colinear with segment from (394.0, 347.0) to (363.0, 301.0)
  • M (U+004D): from (311.0, 301.0) to (294.0, 346.0) is colinear with segment from (294.0, 346.0) to (228.0, 560.0)
  • S (U+0053): from (382.0, 670.0) to (369.0, 671.0) is colinear with segment from (369.0, 671.0) to (314.0, 677.0)
  • V (U+0056): from (445.0, 709.0) to (445.0, 705.0) is colinear with segment from (445.0, 705.0) to (445.0, 704.0)
  • W (U+0057): from (162.0, 128.0) to (284.0, 466.0) is colinear with segment from (284.0, 466.0) to (309.0, 520.0)
  • t (U+0074): from (146.0, 537.0) to (150.0, 572.0) is colinear with segment from (150.0, 572.0) to (156.0, 616.0)
    ... and 8 others [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 '{0x00}{0x00}{0x00}{0x00}' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Economica" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Economica-Italic.ttf
Dehinted Size 27668
Hinted Size 27692
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.100, Version 1.100 [code: version-not-detected]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
48 99 24 346 244
6% 13% 3% 45% 32%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[1] ofl/elsie/METADATA.pb
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[13] ofl/elsie
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̃ (U+0303)
  • ̈ (U+0308) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Fonts have equal codepoint coverage? (googlefonts/family/equal_codepoint_coverage)
  • 🔥 FAIL Font ofl/elsie/Elsie-Black.ttf has codepoints not present in sibling fonts: U+017E, U+03C0, U+015D, U+222B, U+2126, U+0160, U+2122, U+221A, U+0161, U+0000, U+220F, U+F8FF, U+221E, U+2202, U+FB00, U+2206, U+017D, U+2211, U+015B, U+FB01, U+0192 [code: glyphset-diverges]

  • 🔥 FAIL Other fonts have codepoints not present in ofl/elsie/Elsie-Black.ttf: U+0118, U+0119, U+012F, U+012E, U+0105, U+0104, U+0172, U+0173 [code: glyphset-diverges]

🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL Elsie-Black.ttf: 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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [code: bad-notice-format]

  • 🔥 FAIL Elsie-Black.ttf: 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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [code: bad-notice-format]

  • 🔥 FAIL Elsie-Regular.ttf: 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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [code: bad-notice-format]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/elsie/Elsie-Regular.ttf missing required codepoints:
  • 0x2122: TRADE MARK SIGN [code: missing-codepoints]
⚠️ WARN Make sure all font files have the same version value. (opentype/family/equal_font_versions)
  • ⚠️ WARN Version info differs among font files of the same font project.

The following values were found:

  • 1.002: ofl/elsie/Elsie-Black.ttf
  • 1.003: ofl/elsie/Elsie-Regular.ttf [code: mismatch]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • ⚠️ WARN METADATA.pb family name field "Elsie" does not match correct family name "Elsie Black". This is a warning because the font is not a non-variable RIBBI. [code: familyname-mismatch]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/elsie/Elsie-Black.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+007F : try adding symbols
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: math, yi, greek
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2126 OHM SIGN: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
    ... and 11 others

Or you can add the above codepoints to one of the subsets supported by the font: latin, latin-ext, menu [code: unreachable-subsetting]

  • ⚠️ WARN ofl/elsie/Elsie-Regular.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+007F : try adding symbols
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2248 ALMOST EQUAL TO: try adding math
  • U+2260 NOT EQUAL TO: try adding math
  • U+2264 LESS-THAN OR EQUAL TO: try adding math
    ... and 2 others

Or you can add the above codepoints to one of the subsets supported by the font: latin, latin-ext, menu [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2010-2012, Alejandro Inler (alejandroinler@gmail.com), with Reserved Font Name 'Elsie'") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2010-2012, Alejandro Inler (alejandroinler@gmail.com), with Reserved Font Name 'Elsie'") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ INFO METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.03% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]
ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[1] ofl/elsie/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

[28] ofl/elsie/Elsie-Black.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+015D [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0133 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0137 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+015B [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]

🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Version format is correct in 'name' table? (googlefonts/name/version_format)
  • 🔥 FAIL The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000.

The "Version" prefix is a recommendation given by the OpenType spec.

Current version string is: "1.002" [code: bad-version-strings]

  • 🔥 FAIL The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000.

The "Version" prefix is a recommendation given by the OpenType spec.

Current version string is: "1.002" [code: bad-version-strings]

🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 564 but it should be 584 which corresponds to the average of the widths of all glyphs in the font. This may indicate a problem with the font editor or the font compiler. [code: xAvgCharWidth-wrong]
⚠️ WARN Check if each glyph has the recommended amount of contours. (contour_count)
  • ⚠️ WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are
    inferred from the typical amounts 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:

  • guillemotleft (U+00AB): found 3, expected one of: [2, 6]
  • divide (U+00F7): found 5, expected one of: [3, 7]
  • circumflex (U+02C6): found 2, expected one of: [1, 5]
  • guilsinglright (U+203A): found 2, expected one of: [1, 5]
  • M.alt (unencoded): found 2, expected one of: [1] [code: contour-count]
⚠️ WARN Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ 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 642 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=518: greaterequal
    width=510: greater
    width=508: divide
    width=471: less
    width=513: logicalnot
    width=494: lessequal
    width=635: minus
    width=560: approxequal
    width=593: plus
    width=615: plusminus
    width=456: multiply [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • nonmarkingreturn
  • uhungarumalut
  • T_h
  • c_h
  • f1_dotlessj
  • f1_dotlessi [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nbspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • seven (U+0037): X=112,Y=2 (should be at baseline 0?)
    • nine (U+0039): X=98,Y=-1 (should be at baseline 0?)
    • nine (U+0039): X=219.5,Y=2.5 (should be at baseline 0?)
    • C (U+0043): X=472.5,Y=701.5 (should be at cap-height 700?)
    • G (U+0047): X=644,Y=-2 (should be at baseline 0?)
    • G (U+0047): X=476.5,Y=2 (should be at baseline 0?)
    • G (U+0047): X=472.5,Y=701.5 (should be at cap-height 700?)
    • J (U+004A): X=182,Y=-2 (should be at baseline 0?)
    • S (U+0053): X=427.5,Y=701.5 (should be at cap-height 700?)
      ... and 57 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • florin (U+0192): from (150.0, 39.0) to (139.0, 313.0) is colinear with segment from (139.0, 313.0) to (139.0, 320.0) [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • asterisk (U+002A): Quad(QuadBez { p0: (188.5, 617.5), p1: (165.0, 586.0), p2: (164.0, 576.0) })/Quad(QuadBez { p0: (164.0, 576.0), p1: (163.0, 585.0), p2: (139.5, 617.0) }) = 12.050784883409548 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (131.5, 595.0), p1: (141.0, 570.0), p2: (151.0, 564.0) })/Quad(QuadBez { p0: (151.0, 564.0), p1: (143.0, 567.0), p2: (132.0, 567.0) }) = 10.40771131249005 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (196.0, 567.0), p1: (184.0, 567.0), p2: (177.0, 564.0) })/Quad(QuadBez { p0: (177.0, 564.0), p1: (187.0, 570.0), p2: (196.5, 595.0) }) = 7.765166018425354 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (132.0, 548.0), p1: (141.0, 548.0), p2: (151.0, 552.0) })/Quad(QuadBez { p0: (151.0, 552.0), p1: (141.0, 546.0), p2: (131.5, 521.0) }) = 9.162347045721706 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (139.5, 498.5), p1: (163.0, 530.0), p2: (164.0, 540.0) })/Quad(QuadBez { p0: (164.0, 540.0), p1: (165.0, 529.0), p2: (188.5, 497.5) }) = 10.905022045234459 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (196.5, 521.0), p1: (187.0, 546.0), p2: (177.0, 552.0) })/Quad(QuadBez { p0: (177.0, 552.0), p1: (187.0, 548.0), p2: (196.0, 548.0) }) = 9.162347045721706 degrees
  • Racute (U+0154): Quad(QuadBez { p0: (664.0, 517.0), p1: (664.0, 362.0), p2: (445.0, 342.0) })/Quad(QuadBez { p0: (445.0, 342.0), p1: (453.0, 342.0), p2: (462.0, 342.0) }) = 5.218017123575083 degrees
  • Rcaron (U+0158): Quad(QuadBez { p0: (664.0, 517.0), p1: (664.0, 362.0), p2: (445.0, 342.0) })/Quad(QuadBez { p0: (445.0, 342.0), p1: (453.0, 342.0), p2: (462.0, 342.0) }) = 5.218017123575083 degrees
  • A.alt: Quad(QuadBez { p0: (162.0, 329.0), p1: (252.0, 296.0), p2: (317.0, 195.0) })/Line(Line { p0: (317.0, 195.0), p1: (216.0, 482.0) }) = 13.376083164360683 degrees [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • guillemotleft (U+00AB): Line(Line { p0: (117.0, 237.0), p1: (144.0, 237.0) }) has the same coordinates as a previous segment.
  • Acircumflex (U+00C2): Line(Line { p0: (304.0, 856.0), p1: (304.0, 836.0) }) has the same coordinates as a previous segment.
  • Ecircumflex (U+00CA): Line(Line { p0: (361.0, 856.0), p1: (361.0, 836.0) }) has the same coordinates as a previous segment.
  • Icircumflex (U+00CE): Line(Line { p0: (210.0, 856.0), p1: (210.0, 836.0) }) has the same coordinates as a previous segment.
  • Ocircumflex (U+00D4): Line(Line { p0: (374.0, 856.0), p1: (374.0, 836.0) }) has the same coordinates as a previous segment.
  • Ucircumflex (U+00DB): Line(Line { p0: (413.0, 856.0), p1: (413.0, 836.0) }) has the same coordinates as a previous segment.
  • acircumflex (U+00E2): Line(Line { p0: (302.0, 629.0), p1: (302.0, 609.0) }) has the same coordinates as a previous segment.
  • jcircumflex (U+0135): Line(Line { p0: (180.0, 629.0), p1: (180.0, 609.0) }) has the same coordinates as a previous segment.
  • circumflex (U+02C6): Line(Line { p0: (183.0, 629.0), p1: (183.0, 609.0) }) has the same coordinates as a previous segment.
    ... and 2 others [code: overlapping-path-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • pi (U+03C0): Line(Line { p0: (220.0, 381.0), p1: (221.0, 139.0) }) (angle: -89.76 degrees, expected: -90.00 degrees) [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 'pyrs' 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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Elsie-Black.ttf
Dehinted Size 42192
Hinted Size 42216
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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: 1.002, 1.002 [code: version-not-detected]
[27] ofl/elsie/Elsie-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0137 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0133 [code: missing-case-counterparts]

🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Version format is correct in 'name' table? (googlefonts/name/version_format)
  • 🔥 FAIL The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000.

The "Version" prefix is a recommendation given by the OpenType spec.

Current version string is: "1.003" [code: bad-version-strings]

🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.003006 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 510 but it should be 524 which corresponds to the average of the widths of all glyphs in the font. This may indicate a problem with the font editor or the font compiler. [code: xAvgCharWidth-wrong]
⚠️ WARN Check if each glyph has the recommended amount of contours. (contour_count)
  • ⚠️ WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are
    inferred from the typical amounts 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:

  • divide (U+00F7): found 5, expected one of: [3, 7] [code: contour-count]
⚠️ WARN Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ 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 494 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=642: equal, notequal
    width=456: multiply
    width=510: greater
    width=634: plus
    width=508: divide
    width=615: plusminus
    width=635: minus
    width=471: less
    width=560: approxequal
    width=513: logicalnot [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn [code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nbspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]
⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • percent (U+0025): X=741,Y=-2 (should be at baseline 0?)
    • ampersand (U+0026): X=341,Y=648 (should be at cap-height 650?)
    • asterisk (U+002A): X=34.5,Y=648.5 (should be at cap-height 650?)
    • asterisk (U+002A): X=293.5,Y=648.5 (should be at cap-height 650?)
    • three (U+0033): X=441,Y=-1 (should be at baseline 0?)
    • eight (U+0038): X=262.5,Y=-2 (should be at baseline 0?)
    • C (U+0043): X=336,Y=651 (should be at cap-height 650?)
    • G (U+0047): X=426.5,Y=-2.5 (should be at baseline 0?)
    • G (U+0047): X=338,Y=651 (should be at cap-height 650?)
      ... and 76 others [code: found-misalignments]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • X.alt has a counter-clockwise outer contour
  • Y.alt has a counter-clockwise outer contour [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • asterisk (U+002A): Quad(QuadBez { p0: (188.5, 617.5), p1: (165.0, 586.0), p2: (164.0, 576.0) })/Quad(QuadBez { p0: (164.0, 576.0), p1: (163.0, 585.0), p2: (139.5, 617.0) }) = 12.050784883409548 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (131.5, 595.0), p1: (141.0, 570.0), p2: (151.0, 564.0) })/Quad(QuadBez { p0: (151.0, 564.0), p1: (143.0, 567.0), p2: (132.0, 567.0) }) = 10.40771131249005 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (196.0, 567.0), p1: (184.0, 567.0), p2: (177.0, 564.0) })/Quad(QuadBez { p0: (177.0, 564.0), p1: (187.0, 570.0), p2: (196.5, 595.0) }) = 7.765166018425354 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (132.0, 548.0), p1: (141.0, 548.0), p2: (151.0, 552.0) })/Quad(QuadBez { p0: (151.0, 552.0), p1: (141.0, 546.0), p2: (131.5, 521.0) }) = 9.162347045721706 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (139.5, 498.5), p1: (163.0, 530.0), p2: (164.0, 540.0) })/Quad(QuadBez { p0: (164.0, 540.0), p1: (165.0, 529.0), p2: (188.5, 497.5) }) = 10.905022045234459 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (196.5, 521.0), p1: (187.0, 546.0), p2: (177.0, 552.0) })/Quad(QuadBez { p0: (177.0, 552.0), p1: (187.0, 548.0), p2: (196.0, 548.0) }) = 9.162347045721706 degrees [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • f_k: Line(Line { p0: (309.0, 690.0), p1: (309.0, 675.0) }) has the same coordinates as a previous segment.
  • f_h: Line(Line { p0: (309.0, 690.0), p1: (309.0, 675.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'pyrs' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Elsie-Regular.ttf
Dehinted Size 38912
Hinted Size 38936
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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: 1.003 [code: version-not-detected]
[1] ofl/elsie/DESCRIPTION.en_us.html
🔥 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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
35 54 13 185 125
8% 13% 3% 45% 30%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[29] ofl/elsieswashcaps/ElsieSwashCaps-Black.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0133 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+015D [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+015B [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0137 [code: missing-case-counterparts]

🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Version format is correct in 'name' table? (googlefonts/name/version_format)
  • 🔥 FAIL The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000.

The "Version" prefix is a recommendation given by the OpenType spec.

Current version string is: "1.003" [code: bad-version-strings]

  • 🔥 FAIL The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000.

The "Version" prefix is a recommendation given by the OpenType spec.

Current version string is: "1.003" [code: bad-version-strings]

🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.003006 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 562 but it should be 573 which corresponds to the average of the widths of all glyphs in the font. This may indicate a problem with the font editor or the font compiler. [code: xAvgCharWidth-wrong]
⚠️ WARN Check if each glyph has the recommended amount of contours. (contour_count)
  • ⚠️ WARN This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are
    inferred from the typical amounts 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:

  • guillemotleft (U+00AB): found 3, expected one of: [2, 6]
  • divide (U+00F7): found 5, expected one of: [3, 7]
  • circumflex (U+02C6): found 2, expected one of: [1, 5]
  • guilsinglright (U+203A): found 2, expected one of: [1, 5] [code: contour-count]
⚠️ WARN Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ 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 642 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=615: plusminus
    width=593: plus
    width=635: minus
    width=518: greaterequal
    width=456: multiply
    width=560: approxequal
    width=513: logicalnot
    width=510: greater
    width=471: less
    width=508: divide
    width=494: lessequal [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • nonmarkingreturn
  • uhungarumalut
  • T_h
  • c_h
  • f1_dotlessj
  • f1_dotlessi
  • nbspace [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nonbreakingspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • seven (U+0037): X=112,Y=2 (should be at baseline 0?)
    • nine (U+0039): X=98,Y=-1 (should be at baseline 0?)
    • nine (U+0039): X=219.5,Y=2.5 (should be at baseline 0?)
    • F (U+0046): X=33,Y=699 (should be at cap-height 700?)
    • G (U+0047): X=467,Y=1 (should be at baseline 0?)
    • S (U+0053): X=355,Y=699 (should be at cap-height 700?)
    • Z (U+005A): X=280.5,Y=698.5 (should be at cap-height 700?)
    • f (U+0066): X=223,Y=701 (should be at cap-height 700?)
    • k (U+006B): X=635,Y=1 (should be at baseline 0?)
      ... and 50 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • florin (U+0192): from (150.0, 39.0) to (139.0, 313.0) is colinear with segment from (139.0, 313.0) to (139.0, 320.0) [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • asterisk (U+002A): Quad(QuadBez { p0: (188.5, 617.5), p1: (165.0, 586.0), p2: (164.0, 576.0) })/Quad(QuadBez { p0: (164.0, 576.0), p1: (163.0, 585.0), p2: (139.5, 617.0) }) = 12.050784883409548 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (131.5, 595.0), p1: (141.0, 570.0), p2: (151.0, 564.0) })/Quad(QuadBez { p0: (151.0, 564.0), p1: (143.0, 567.0), p2: (132.0, 567.0) }) = 10.40771131249005 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (196.0, 567.0), p1: (184.0, 567.0), p2: (177.0, 564.0) })/Quad(QuadBez { p0: (177.0, 564.0), p1: (187.0, 570.0), p2: (196.5, 595.0) }) = 7.765166018425354 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (132.0, 548.0), p1: (141.0, 548.0), p2: (151.0, 552.0) })/Quad(QuadBez { p0: (151.0, 552.0), p1: (141.0, 546.0), p2: (131.5, 521.0) }) = 9.162347045721706 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (139.5, 498.5), p1: (163.0, 530.0), p2: (164.0, 540.0) })/Quad(QuadBez { p0: (164.0, 540.0), p1: (165.0, 529.0), p2: (188.5, 497.5) }) = 10.905022045234459 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (196.5, 521.0), p1: (187.0, 546.0), p2: (177.0, 552.0) })/Quad(QuadBez { p0: (177.0, 552.0), p1: (187.0, 548.0), p2: (196.0, 548.0) }) = 9.162347045721706 degrees
  • A (U+0041): Quad(QuadBez { p0: (162.0, 329.0), p1: (252.0, 296.0), p2: (317.0, 195.0) })/Line(Line { p0: (317.0, 195.0), p1: (216.0, 482.0) }) = 13.376083164360683 degrees
  • Racute (U+0154): Quad(QuadBez { p0: (664.0, 517.0), p1: (664.0, 362.0), p2: (445.0, 342.0) })/Quad(QuadBez { p0: (445.0, 342.0), p1: (453.0, 342.0), p2: (462.0, 342.0) }) = 5.218017123575083 degrees
  • Rcaron (U+0158): Quad(QuadBez { p0: (664.0, 517.0), p1: (664.0, 362.0), p2: (445.0, 342.0) })/Quad(QuadBez { p0: (445.0, 342.0), p1: (453.0, 342.0), p2: (462.0, 342.0) }) = 5.218017123575083 degrees [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • guillemotleft (U+00AB): Line(Line { p0: (117.0, 237.0), p1: (144.0, 237.0) }) has the same coordinates as a previous segment.
  • Acircumflex (U+00C2): Line(Line { p0: (304.0, 856.0), p1: (304.0, 836.0) }) has the same coordinates as a previous segment.
  • Ecircumflex (U+00CA): Line(Line { p0: (361.0, 856.0), p1: (361.0, 836.0) }) has the same coordinates as a previous segment.
  • Icircumflex (U+00CE): Line(Line { p0: (210.0, 856.0), p1: (210.0, 836.0) }) has the same coordinates as a previous segment.
  • Ocircumflex (U+00D4): Line(Line { p0: (374.0, 856.0), p1: (374.0, 836.0) }) has the same coordinates as a previous segment.
  • Ucircumflex (U+00DB): Line(Line { p0: (413.0, 856.0), p1: (413.0, 836.0) }) has the same coordinates as a previous segment.
  • acircumflex (U+00E2): Line(Line { p0: (302.0, 629.0), p1: (302.0, 609.0) }) has the same coordinates as a previous segment.
  • jcircumflex (U+0135): Line(Line { p0: (180.0, 629.0), p1: (180.0, 609.0) }) has the same coordinates as a previous segment.
  • circumflex (U+02C6): Line(Line { p0: (183.0, 629.0), p1: (183.0, 609.0) }) has the same coordinates as a previous segment.
    ... and 2 others [code: overlapping-path-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • pi (U+03C0): Line(Line { p0: (220.0, 381.0), p1: (221.0, 139.0) }) (angle: -89.76 degrees, expected: -90.00 degrees) [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 'pyrs' 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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
ElsieSwashCaps-Black.ttf
Dehinted Size 39232
Hinted Size 39256
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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: 1.003, 1.003 [code: version-not-detected]
[1] ofl/elsieswashcaps/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

[29] ofl/elsieswashcaps/ElsieSwashCaps-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0137 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0133 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]

🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Version format is correct in 'name' table? (googlefonts/name/version_format)
  • 🔥 FAIL The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000.

The "Version" prefix is a recommendation given by the OpenType spec.

Current version string is: "1.003" [code: bad-version-strings]

  • 🔥 FAIL The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000.

The "Version" prefix is a recommendation given by the OpenType spec.

Current version string is: "1.003" [code: bad-version-strings]

🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.003006 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ 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
    inferred from the typical amounts 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:

  • divide (U+00F7): found 5, expected one of: [3, 7] [code: contour-count]
⚠️ WARN Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ 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 642 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=456: multiply
    width=494: greaterequal, lessequal
    width=615: plusminus
    width=508: divide
    width=510: greater
    width=634: plus
    width=635: minus
    width=560: approxequal
    width=471: less
    width=513: logicalnot [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • uhungarumalut
  • f2
  • c_h
  • nbspace [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x00A0 is called nonbreakingspace; must be named 'uni00A0'. [code: not-recommended-00A0]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • percent (U+0025): X=741,Y=-2 (should be at baseline 0?)
    • ampersand (U+0026): X=341,Y=648 (should be at cap-height 650?)
    • asterisk (U+002A): X=34.5,Y=648.5 (should be at cap-height 650?)
    • asterisk (U+002A): X=293.5,Y=648.5 (should be at cap-height 650?)
    • three (U+0033): X=441,Y=-1 (should be at baseline 0?)
    • eight (U+0038): X=262.5,Y=-2 (should be at baseline 0?)
    • B (U+0042): X=288,Y=649 (should be at cap-height 650?)
    • D (U+0044): X=299,Y=649 (should be at cap-height 650?)
    • F (U+0046): X=435,Y=652 (should be at cap-height 650?)
      ... and 61 others [code: found-misalignments]
⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • X (U+0058) has a counter-clockwise outer contour
  • Y (U+0059) has a counter-clockwise outer contour [code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • asterisk (U+002A): Quad(QuadBez { p0: (188.5, 617.5), p1: (165.0, 586.0), p2: (164.0, 576.0) })/Quad(QuadBez { p0: (164.0, 576.0), p1: (163.0, 585.0), p2: (139.5, 617.0) }) = 12.050784883409548 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (131.5, 595.0), p1: (141.0, 570.0), p2: (151.0, 564.0) })/Quad(QuadBez { p0: (151.0, 564.0), p1: (143.0, 567.0), p2: (132.0, 567.0) }) = 10.40771131249005 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (196.0, 567.0), p1: (184.0, 567.0), p2: (177.0, 564.0) })/Quad(QuadBez { p0: (177.0, 564.0), p1: (187.0, 570.0), p2: (196.5, 595.0) }) = 7.765166018425354 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (132.0, 548.0), p1: (141.0, 548.0), p2: (151.0, 552.0) })/Quad(QuadBez { p0: (151.0, 552.0), p1: (141.0, 546.0), p2: (131.5, 521.0) }) = 9.162347045721706 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (139.5, 498.5), p1: (163.0, 530.0), p2: (164.0, 540.0) })/Quad(QuadBez { p0: (164.0, 540.0), p1: (165.0, 529.0), p2: (188.5, 497.5) }) = 10.905022045234459 degrees
  • asterisk (U+002A): Quad(QuadBez { p0: (196.5, 521.0), p1: (187.0, 546.0), p2: (177.0, 552.0) })/Quad(QuadBez { p0: (177.0, 552.0), p1: (187.0, 548.0), p2: (196.0, 548.0) }) = 9.162347045721706 degrees [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • f_k: Line(Line { p0: (309.0, 690.0), p1: (309.0, 675.0) }) has the same coordinates as a previous segment.
  • f_h: Line(Line { p0: (309.0, 690.0), p1: (309.0, 675.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'pyrs' 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 Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Elsie Swash Caps" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
ElsieSwashCaps-Regular.ttf
Dehinted Size 38308
Hinted Size 38332
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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: 1.003, 1.003 [code: version-not-detected]
[12] ofl/elsieswashcaps
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̈ (U+0308)
  • ̃ (U+0303) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Fonts have equal codepoint coverage? (googlefonts/family/equal_codepoint_coverage)
  • 🔥 FAIL Font ofl/elsieswashcaps/ElsieSwashCaps-Black.ttf has codepoints not present in sibling fonts: U+2122, U+2126, U+221E, U+0192, U+2206, U+222B, U+015B, U+017D, U+2211, U+03C0, U+221A, U+0160, U+017E, U+0000, U+0161, U+015D, U+FB00, U+FB01, U+2202, U+220F, U+F8FF [code: glyphset-diverges]

  • 🔥 FAIL Other fonts have codepoints not present in ofl/elsieswashcaps/ElsieSwashCaps-Black.ttf: U+0104, U+0119, U+0173, U+0105, U+0118, U+0172, U+012F, U+012E [code: glyphset-diverges]

🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL ElsieSwashCaps-Black.ttf: 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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [code: bad-notice-format]

  • 🔥 FAIL ElsieSwashCaps-Black.ttf: 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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [code: bad-notice-format]

  • 🔥 FAIL ElsieSwashCaps-Regular.ttf: 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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [code: bad-notice-format]

  • 🔥 FAIL ElsieSwashCaps-Regular.ttf: 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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [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) 2010-2012, alejandro inler (alejandroinler@gmail.com), with reserved font name 'elsie'" [code: bad-notice-format]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/elsieswashcaps/ElsieSwashCaps-Regular.ttf missing required codepoints:
  • 0x2122: TRADE MARK SIGN [code: missing-codepoints]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • ⚠️ WARN METADATA.pb family name field "Elsie Swash Caps" does not match correct family name "Elsie Swash Caps Black". This is a warning because the font is not a non-variable RIBBI. [code: familyname-mismatch]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/elsieswashcaps/ElsieSwashCaps-Black.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+007F : try adding symbols
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: greek, math, yi
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2126 OHM SIGN: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
    ... and 11 others

Or you can add the above codepoints to one of the subsets supported by the font: latin, latin-ext, menu [code: unreachable-subsetting]

  • ⚠️ WARN ofl/elsieswashcaps/ElsieSwashCaps-Regular.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+007F : try adding symbols
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: yi, canadian-aboriginal
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2248 ALMOST EQUAL TO: try adding math
  • U+2260 NOT EQUAL TO: try adding math
  • U+2264 LESS-THAN OR EQUAL TO: try adding math
    ... and 2 others

Or you can add the above codepoints to one of the subsets supported by the font: latin, latin-ext, menu [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2010-2012, Alejandro Inler (alejandroinler@gmail.com), with Reserved Font Name 'Elsie'") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2010-2012, Alejandro Inler (alejandroinler@gmail.com), with Reserved Font Name 'Elsie'") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ INFO METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.03% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]
ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[1] ofl/elsieswashcaps/METADATA.pb
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[1] ofl/elsieswashcaps/DESCRIPTION.en_us.html
🔥 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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
39 56 14 183 126
9% 13% 3% 44% 30%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[2] ofl/emblemaone/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011 by sorkin type co (www.sorkintype.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+with Reserved Font Names "Emblema" and "Emblema One"
[code: incorrect-ofl-body-text]

[10] ofl/emblemaone
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.14% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Aleut language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̂ (U+0302) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̃ (U+0303)
  • ̈ (U+0308) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL EmblemaOne-Regular.ttf: 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) 2011 by sorkin type co with reserved font names "emblema" and "emblema one"" [code: bad-notice-format]

  • 🔥 FAIL EmblemaOne-Regular.ttf: 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) 2011 by sorkin type co with reserved font names "emblema" and "emblema one"" [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) 2011 by sorkin type co (eben@eyebytes.com) with reserved font names "emblema" and "emblema one"" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2011 by sorkin type co (eben@eyebytes.com) with reserved font names "emblema" and "emblema one": ["METADATA.pb"]
  • copyright (c) 2011 by sorkin type co with reserved font names "emblema" and "emblema one": ["EmblemaOne-Regular.ttf: Name Table entry", "EmblemaOne-Regular.ttf: Name Table entry"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/emblemaone/EmblemaOne-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE [code: missing-codepoints]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/emblemaone/EmblemaOne-Regular.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: yi, canadian-aboriginal
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: elbasan, math, greek
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: greek, elbasan, math
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: yi, greek, math
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
    ... and 13 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2011 by Sorkin Type Co (eben@eyebytes.com) with Reserved Font Names "Emblema" and "Emblema One"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/emblemaone/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain broken links? (googlefonts/description/broken_links)
🔥 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]
[1] ofl/emblemaone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Emblema One" does not match post_script_name="EmblemaOne-Regular". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

[30] ofl/emblemaone/EmblemaOne-Regular.ttf
🔥 FAIL Checking font version fields (head and name table). (opentype/font_version)
  • 🔥 FAIL Font version mismatch: head table: 1.0019989, name table: 1.003 [code: mismatch]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Font contains unique glyph names? (unique_glyphnames)
  • 🔥 FAIL These glyph names occur more than once:
  • .notdef [code: duplicated-glyph-names]
🔥 FAIL Glyph names are all valid? (valid_glyphnames)
  • 🔥 FAIL These glyph names occur more than once: ".notdef" [code: duplicated-glyph-names]
🔥 FAIL Font contains glyphs for whitespace characters? (whitespace_glyphs)
  • 🔥 FAIL Whitespace glyph missing for codepoint 0x00A0 [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • 🔥 FAIL Failed language shaping:
Message Languages
Mandatory orthography codepoints: * lt_Latn (Lithuanian)
The following mark characters are missing from the font: ̨, ̌, ̇, ̄
Mandatory orthography codepoints: * fr_Latn (French)
The following mark characters are missing from the font: ̀, ̂, ̈, ̧, ́
Mandatory orthography codepoints: * ca_Latn (Catalan)
The following mark characters are missing from the font: ̧, ̈, ̀, ́
Mandatory orthography codepoints: * hr_Latn (Croatian)
The following mark characters are missing from the font: ́, ̌
Mandatory orthography codepoints: * es_Latn (Spanish)
The following mark characters are missing from the font: ̈, ̃, ́
Mandatory orthography codepoints: * pt_Latn (Portuguese)
The following mark characters are missing from the font: ̧, ̀, ̂, ́, ̃, ̈
Mandatory orthography codepoints: * en_Latn (English)
The following mark characters are missing from the font: ̃, ̈, ́, ̧, ̂, ̀
Mandatory orthography codepoints: * cy_Latn (Welsh)
The following mark characters are missing from the font: ̀, ̂, ́, ̈
Mandatory orthography codepoints: * fi_Latn (Finnish)
The following mark characters are missing from the font: ̌, ̊, ̃, ̈
Mandatory orthography codepoints: * da_Latn (Danish)
The following mark characters are missing from the font: ̊, ́
Mandatory orthography codepoints: * de_Latn (German)
The following base characters are missing from the font: ẞ
The following mark characters are missing from the font: ́, ̈, ̀
Mandatory orthography codepoints: * is_Latn (Icelandic)
The following mark characters are missing from the font: ̈, ̨, ́
Mandatory orthography codepoints: * mt_Latn (Maltese)
The following mark characters are missing from the font: ̀, ̂, ̇
Mandatory orthography codepoints: * nl_Latn (Dutch)
The following base characters are missing from the font: ÍJ́, íj́
The following mark characters are missing from the font: ́, ̂, ̈, ̀
Mandatory orthography codepoints: * lv_Latn (Latvian)
The following mark characters are missing from the font: ̄, ̧, ̌
Mandatory orthography codepoints: * ro_Latn (Romanian)
The following base characters are missing from the font: Ț, ț
The following mark characters are missing from the font: ̦, ̂, ̆, ̧
Mandatory orthography codepoints: * sq_Latn (Albanian)
The following mark characters are missing from the font: ̈, ̧
Mandatory orthography codepoints: * sk_Latn (Slovak)
The following mark characters are missing from the font: ̈, ́, ̂, ̌
Mandatory orthography codepoints: * sv_Latn (Swedish)
The following mark characters are missing from the font: ̀, ́, ̈, ̊
Mandatory orthography codepoints: * pl_Latn (Polish)
The following mark characters are missing from the font: ́, ̇, ̨
Mandatory orthography codepoints: * hu_Latn (Hungarian)
The following mark characters are missing from the font: ̋, ́, ̈
Mandatory orthography codepoints: * tr_Latn (Turkish)
The following mark characters are missing from the font: ̈, ̂, ̧, ̦, ̆, ̇
Mandatory orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following mark characters are missing from the font: ́, ̂, ̈, ̊, ̀
Mandatory orthography codepoints: * cs_Latn (Czech)
The following mark characters are missing from the font: ̊, ̌, ́
Mandatory orthography codepoints: * it_Latn (Italian)
The following mark characters are missing from the font: ̈, ̂, ̀, ́
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * lt_Latn (Lithuanian)
The following auxiliary characters are missing from the font: Ą́
The following auxiliary characters are missing from the font: Ą̃
The following auxiliary characters are missing from the font: Ẽ
The following auxiliary characters are missing from the font: Ę́
The following auxiliary characters are missing from the font: Ę̃
The following auxiliary characters are missing from the font: Ė́
The following auxiliary characters are missing from the font: Ė̃
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ́
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̀
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: İ̃
The following auxiliary characters are missing from the font: Į́
The following auxiliary characters are missing from the font: Į̇́
The following auxiliary characters are missing from the font: Į̃
The following auxiliary characters are missing from the font: Į̇̃
The following auxiliary characters are missing from the font: J̃
The following auxiliary characters are missing from the font: J̇̃
The following auxiliary characters are missing from the font: L̃
The following auxiliary characters are missing from the font: M̃
The following auxiliary characters are missing from the font: R̃
The following auxiliary characters are missing from the font: Ų́
The following auxiliary characters are missing from the font: Ų̃
The following auxiliary characters are missing from the font: Ū́
The following auxiliary characters are missing from the font: Ū̃
The following auxiliary characters are missing from the font: ą́
The following auxiliary characters are missing from the font: ą̃
The following auxiliary characters are missing from the font: ẽ
The following auxiliary characters are missing from the font: ę́
The following auxiliary characters are missing from the font: ę̃
The following auxiliary characters are missing from the font: ė́
The following auxiliary characters are missing from the font: ė̃
The following auxiliary characters are missing from the font: i̇́
The following auxiliary characters are missing from the font: i̇̀
The following auxiliary characters are missing from the font: i̇̃
The following auxiliary characters are missing from the font: į́
The following auxiliary characters are missing from the font: į̇́
The following auxiliary characters are missing from the font: į̃
The following auxiliary characters are missing from the font: į̇̃
The following auxiliary characters are missing from the font: j̃
The following auxiliary characters are missing from the font: j̇̃
The following auxiliary characters are missing from the font: l̃
The following auxiliary characters are missing from the font: m̃
The following auxiliary characters are missing from the font: r̃
The following auxiliary characters are missing from the font: ų́
The following auxiliary characters are missing from the font: ų̃
The following auxiliary characters are missing from the font: ū́
The following auxiliary characters are missing from the font: ū̃
Auxiliary orthography codepoints: * en_Latn (English)
The following auxiliary characters are missing from the font: ʻ
Auxiliary orthography codepoints: * nb_Latn (Norwegian Bokmål)
The following auxiliary characters are missing from the font: Ǎ
The following auxiliary characters are missing from the font: ǎ
Auxiliary orthography codepoints: * it_Latn (Italian)
The following auxiliary characters are missing from the font: ẞ * pl_Latn (Polish)
* tr_Latn (Turkish)
Auxiliary orthography codepoints: * fr_Latn (French)
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ǔ
The following auxiliary characters are missing from the font: ſ
The following auxiliary characters are missing from the font: ǔ
Auxiliary orthography codepoints: * fi_Latn (Finnish)
The following auxiliary characters are missing from the font: Ǧ
The following auxiliary characters are missing from the font: Ǥ
The following auxiliary characters are missing from the font: Ȟ
The following auxiliary characters are missing from the font: Ǩ
The following auxiliary characters are missing from the font: ẞ
The following auxiliary characters are missing from the font: Ț
The following auxiliary characters are missing from the font: Ʒ
The following auxiliary characters are missing from the font: Ǯ
The following auxiliary characters are missing from the font: ǧ
The following auxiliary characters are missing from the font: ǥ
The following auxiliary characters are missing from the font: ȟ
The following auxiliary characters are missing from the font: ǩ
The following auxiliary characters are missing from the font: ț
The following auxiliary characters are missing from the font: ʒ
The following auxiliary characters are missing from the font: ǯ
Auxiliary orthography codepoints: * de_Latn (German)
The following auxiliary characters are missing from the font: ſ
Auxiliary orthography codepoints: * da_Latn (Danish)
The following auxiliary characters are missing from the font: Ǿ
The following auxiliary characters are missing from the font: ǿ
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Emblema One Emblema One
Subfamily Name Regular Regular
Full Name Emblema One Emblema One Regular
Postscript Name EmblemaOne-Regular EmblemaOne-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0019989 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 1236 but it should be 1332 which corresponds to the average of the widths of all glyphs in the font. This may indicate a problem with the font editor or the font compiler. [code: xAvgCharWidth-wrong]
⚠️ 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
    inferred from the typical amounts 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:

  • two (U+0032): found 3, expected one of: [1, 2, 5]
  • three (U+0033): found 3, expected one of: [1, 2, 5]
  • five (U+0035): found 3, expected one of: [1, 2, 5]
  • C (U+0043): found 3, expected one of: [1, 2, 5]
  • S (U+0053): found 3, expected one of: [1, 2, 5]
  • c (U+0063): found 2, expected one of: [1, 3, 5]
  • twosuperior (U+00B2): found 3, expected one of: [1, 2]
  • threesuperior (U+00B3): found 3, expected one of: [1, 2]
  • onehalf (U+00BD): found 6, expected one of: [3, 4, 5]
    ... and 12 others [code: contour-count]
⚠️ WARN Does GPOS table have kerning information? (gpos_kerning_info)
  • ⚠️ WARN GPOS table lacks kerning information. [code: lacks-kern-info]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .notdef
  • nonmarkingreturn
  • NULL
  • CR.001
  • commaaccent
  • grave.case
  • acute.case
  • circumflex.case
  • caron.case
    ... and 9 others [code: unreachable-glyphs]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • exclam (U+0021): X=797,Y=1363 (should be at cap-height 1361?)
    • numbersign (U+0023): X=676,Y=1 (should be at baseline 0?)
    • numbersign (U+0023): X=601,Y=1 (should be at baseline 0?)
    • numbersign (U+0023): X=303,Y=1 (should be at baseline 0?)
    • numbersign (U+0023): X=228,Y=1 (should be at baseline 0?)
    • percent (U+0025): X=1165,Y=1362 (should be at cap-height 1361?)
    • percent (U+0025): X=1277,Y=1362 (should be at cap-height 1361?)
    • ampersand (U+0026): X=938,Y=1359 (should be at cap-height 1361?)
    • plus (U+002B): X=655.5,Y=2.5 (should be at baseline 0?)
      ... and 88 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • A (U+0041): from (364.0, 209.0) to (364.0, 177.0) is colinear with segment from (364.0, 177.0) to (367.0, 66.0)
  • bracketleft (U+005B): from (487.0, 1415.0) to (415.0, 734.0) is colinear with segment from (415.0, 734.0) to (253.0, -98.0)
  • bracketright (U+005D): from (66.0, -100.0) to (138.0, 581.0) is colinear with segment from (138.0, 581.0) to (300.0, 1413.0)
  • Agrave (U+00C0): from (364.0, 209.0) to (364.0, 177.0) is colinear with segment from (364.0, 177.0) to (367.0, 66.0)
  • Aacute (U+00C1): from (364.0, 209.0) to (364.0, 177.0) is colinear with segment from (364.0, 177.0) to (367.0, 66.0)
  • Acircumflex (U+00C2): from (364.0, 209.0) to (364.0, 177.0) is colinear with segment from (364.0, 177.0) to (367.0, 66.0)
  • Atilde (U+00C3): from (364.0, 209.0) to (364.0, 177.0) is colinear with segment from (364.0, 177.0) to (367.0, 66.0)
  • Adieresis (U+00C4): from (364.0, 209.0) to (364.0, 177.0) is colinear with segment from (364.0, 177.0) to (367.0, 66.0)
  • Aring (U+00C5): from (364.0, 209.0) to (364.0, 177.0) is colinear with segment from (364.0, 177.0) to (367.0, 66.0)
    ... and 5 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • three (U+0033): Quad(QuadBez { p0: (986.0, 764.0), p1: (851.0, 713.0), p2: (679.0, 702.0) })/Quad(QuadBez { p0: (679.0, 702.0), p1: (906.0, 702.0), p2: (1035.0, 642.0) }) = 3.6592815186608463 degrees
  • four (U+0034): Quad(QuadBez { p0: (354.5, 762.5), p1: (559.0, 1043.0), p2: (653.0, 1202.0) })/Quad(QuadBez { p0: (653.0, 1202.0), p1: (504.0, 748.0), p2: (261.0, 389.0) }) = 12.42184887678218 degrees
  • seven (U+0037): Line(Line { p0: (311.0, 1348.0), p1: (943.0, 1348.0) })/Quad(QuadBez { p0: (943.0, 1348.0), p1: (665.0, 1289.0), p2: (499.0, 1132.0) }) = 11.982108847593963 degrees
  • B (U+0042): Quad(QuadBez { p0: (1204.0, 757.0), p1: (1074.0, 703.0), p2: (928.0, 688.0) })/Quad(QuadBez { p0: (928.0, 688.0), p1: (988.0, 692.0), p2: (1026.0, 692.0) }) = 2.0518963074360848 degrees
  • R (U+0052): Quad(QuadBez { p0: (1334.0, 806.0), p1: (1205.0, 707.0), p2: (989.0, 692.0) })/Line(Line { p0: (989.0, 692.0), p1: (1079.0, 684.0) }) = 9.05210380076527 degrees
  • k (U+006B): Quad(QuadBez { p0: (1248.0, 634.0), p1: (1136.0, 567.0), p2: (991.0, 553.0) })/Quad(QuadBez { p0: (991.0, 553.0), p1: (1161.0, 553.0), p2: (1249.5, 504.0) }) = 5.514911591245033 degrees
  • registered (U+00AE): Quad(QuadBez { p0: (1175.5, 765.5), p1: (1098.0, 706.0), p2: (967.0, 697.0) })/Line(Line { p0: (967.0, 697.0), p1: (1022.0, 693.0) }) = 8.08981783943813 degrees
  • threesuperior (U+00B3): Quad(QuadBez { p0: (950.0, 1286.0), p1: (950.0, 1117.0), p2: (534.0, 1095.0) })/Quad(QuadBez { p0: (534.0, 1095.0), p1: (717.0, 1095.0), p2: (774.5, 1074.0) }) = 3.0272451822799957 degrees
  • threequarters (U+00BE): Quad(QuadBez { p0: (874.0, 1286.0), p1: (874.0, 1117.0), p2: (458.0, 1095.0) })/Quad(QuadBez { p0: (458.0, 1095.0), p1: (641.0, 1095.0), p2: (698.5, 1074.0) }) = 3.0272451822799957 degrees
    ... and 6 others [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • OE (U+0152): Line(Line { p0: (1013.0, 1363.0), p1: (1506.0, 1361.0) }) (angle: -0.23 degrees, expected: 0.00 degrees) [code: found-semi-vertical]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • zero (U+0030) contains a short segment Quad(QuadBez { p0: (668.0, -21.0), p1: (664.0, -21.0), p2: (655.0, -20.5) }) (length: 13.01, total outline: 3431.24)
  • zero (U+0030) contains a short segment Quad(QuadBez { p0: (655.0, -20.5), p1: (646.0, -20.0), p2: (642.0, -20.0) }) (length: 13.01, total outline: 3431.24)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (1241.0, 940.0), p1: (1241.0, 953.0), p2: (1274.0, 979.0) }) (length: 52.23, total outline: 13628.39)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (1274.0, 979.0), p1: (1307.0, 1005.0), p2: (1329.0, 1005.0) }) (length: 61.86, total outline: 13628.39)
  • Aring (U+00C5) contains a short segment Quad(QuadBez { p0: (1023.0, 1349.0), p1: (1015.0, 1342.0), p2: (1008.0, 1336.0) }) (length: 19.85, total outline: 4447.06)
  • Aring (U+00C5) contains a short segment Quad(QuadBez { p0: (636.0, 1336.0), p1: (638.0, 1337.0), p2: (639.0, 1338.0) }) (length: 3.62, total outline: 4447.06)
  • Oslash (U+00D8) contains a short segment Quad(QuadBez { p0: (1260.0, 1242.0), p1: (1269.0, 1234.0), p2: (1277.0, 1225.0) }) (length: 24.06, total outline: 4075.38)
  • Eng (U+014A) contains a short segment Line(Line { p0: (1263.0, 65.0), p1: (1263.0, 64.0) }) (length: 1.00, total outline: 4663.89)
  • Eng (U+014A) contains a short segment Line(Line { p0: (1263.0, 64.0), p1: (1263.0, 63.0) }) (length: 1.00, total outline: 4663.89)
    ... and 2 others [code: found-short-segments]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Description strings in the name table must not exceed 200 characters. (googlefonts/name/description_max_length)
  • ⚠️ WARN A few name table entries with ID=10 (NameID.DESCRIPTION) are longer than 200 characters. Please check whether those entries are copyright notices mistakenly stored in the description string entries by a bug in an old FontLab version. If that's the case, then such copyright notices must be removed from these entries. [code: too-long]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Emblema One" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    gasp
    VDMX [code: optional-tables]

ℹ️ 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 | - Use grid-fitting |
| | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
[code: ranges]
ℹ️ INFO Font has old ttfautohint applied? (googlefonts/old_ttfautohint)
  • ℹ️ INFO Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: Version 1.003, Version 1.003 [code: version-not-detected]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
27 33 8 103 72
11% 14% 3% 42% 30%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[28] ofl/ericaone/EricaOne-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0164 [code: missing-case-counterparts]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Font contains glyphs for whitespace characters? (whitespace_glyphs)
  • 🔥 FAIL Whitespace glyph missing for codepoint 0x00A0 [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Erica One Erica One
Subfamily Name Regular Regular
Full Name Erica One Erica One Regular
Postscript Name EricaOne-Regular EricaOne-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.003006 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ 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
    inferred from the typical amounts 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:

  • currency (U+00A4): found 1, expected one of: [2, 6]
  • section (U+00A7): found 1, expected one of: [2, 4, 6]
  • germandbls (U+00DF): found 3, expected one of: [1, 2, 5]
  • lozenge (U+25CA): found 1, expected one of: [2] [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 495 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=582: equal
    width=599: notequal
    width=593: logicalnot
    width=576: approxequal
    width=546: multiply
    width=591: divide, plus
    width=462: greaterequal, lessequal
    width=450: minus, plusminus [code: width-outliers]
⚠️ WARN Name table records must not have trailing spaces. (name/trailing_spaces)
  • ⚠️ WARN Name table record 1/0/0/COPYRIGHT_NOTICE has double spaces:
    Copyright (c) 2011 by LatinoType Limitada (info@latinotype.com), with Reserved Font Names "Erica" "Erica One" [code: double-spaces]

  • ⚠️ WARN Name table record 3/1/1033/COPYRIGHT_NOTICE has double spaces:
    Copyright (c) 2011 by LatinoType Limitada (info@latinotype.com), with Reserved Font Names "Erica" "Erica One" [code: double-spaces]

⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • CR [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • dollar (U+0024): X=429,Y=1 (should be at baseline 0?)
    • eight (U+0038): X=479.5,Y=693 (should be at cap-height 691?)
    • question (U+003F): X=156,Y=692 (should be at cap-height 691?)
    • C (U+0043): X=544.5,Y=692 (should be at cap-height 691?)
    • G (U+0047): X=542,Y=692 (should be at cap-height 691?)
    • J (U+004A): X=124.5,Y=-1 (should be at baseline 0?)
    • S (U+0053): X=521.5,Y=690.5 (should be at cap-height 691?)
    • S (U+0053): X=162,Y=1.5 (should be at baseline 0?)
    • a (U+0061): X=574,Y=2 (should be at baseline 0?)
      ... and 26 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • b (U+0062): from (327.0, 745.0) to (327.0, 619.0) is colinear with segment from (327.0, 619.0) to (325.0, 576.0)
  • q (U+0071): from (353.0, -93.0) to (353.0, -29.0) is colinear with segment from (353.0, -29.0) to (356.0, 14.0) [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • asciicircum (U+005E): Line(Line { p0: (282.0, 523.0), p1: (266.0, 676.0) })/Line(Line { p0: (266.0, 676.0), p1: (246.0, 523.0) }) = 13.417432831052205 degrees
  • g (U+0067): Line(Line { p0: (130.0, 139.0), p1: (152.0, 139.0) })/Quad(QuadBez { p0: (152.0, 139.0), p1: (135.0, 142.0), p2: (121.0, 152.0) }) = 10.007979801441312 degrees
  • g (U+0067): Quad(QuadBez { p0: (107.0, 177.0), p1: (107.0, 207.0), p2: (156.0, 216.0) })/Quad(QuadBez { p0: (156.0, 216.0), p1: (94.0, 216.0), p2: (57.0, 258.0) }) = 10.40771131249005 degrees
  • h (U+0068): Line(Line { p0: (327.0, 619.0), p1: (317.0, 533.0) })/Quad(QuadBez { p0: (317.0, 533.0), p1: (321.0, 546.0), p2: (331.0, 559.0) }) = 10.470214353913882 degrees
  • apple (U+F8FF): Quad(QuadBez { p0: (1054.0, 508.0), p1: (1064.0, 435.0), p2: (1064.0, 400.0) })/Quad(QuadBez { p0: (1064.0, 400.0), p1: (1084.0, 519.0), p2: (1175.0, 519.0) }) = 9.540381804842612 degrees [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • threesuperior (U+00B3): Line(Line { p0: (74.0, 459.0), p1: (194.0, 458.0) }) (angle: -0.48 degrees, expected: 0.00 degrees)
  • threequarters (U+00BE): Line(Line { p0: (74.0, 466.0), p1: (194.0, 465.0) }) (angle: -0.48 degrees, expected: 0.00 degrees) [code: found-semi-vertical]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (686.0, 269.0), p1: (686.0, 261.0), p2: (691.0, 258.0) }) (length: 12.67, total outline: 4359.12)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (691.0, 258.0), p1: (696.0, 255.0), p2: (705.0, 257.0) }) (length: 14.37, total outline: 4359.12)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (505.0, 463.0), p1: (505.0, 468.0), p2: (497.0, 478.5) }) (length: 17.67, total outline: 4359.12)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (497.0, 478.5), p1: (489.0, 489.0), p2: (479.0, 496.0) }) (length: 25.21, total outline: 4359.12)
  • K (U+004B) contains a short segment Line(Line { p0: (373.0, 379.0), p1: (395.0, 379.0) }) (length: 22.00, total outline: 3869.14)
  • K (U+004B) contains a short segment Line(Line { p0: (395.0, 190.0), p1: (373.0, 190.0) }) (length: 22.00, total outline: 3869.14)
  • W (U+0057) contains a short segment Line(Line { p0: (499.0, 190.0), p1: (478.0, 190.0) }) (length: 21.00, total outline: 4637.89)
  • W (U+0057) contains a short segment Line(Line { p0: (345.0, 363.0), p1: (366.0, 363.0) }) (length: 21.00, total outline: 4637.89)
  • W (U+0057) contains a short segment Line(Line { p0: (619.0, 363.0), p1: (641.0, 363.0) }) (length: 22.00, total outline: 4637.89)
    ... and 29 others [code: found-short-segments]
⚠️ WARN Ensure fonts have ScriptLangTags declared on the 'meta' table. (googlefonts/meta/script_lang_tags)
  • ⚠️ WARN This font file does not have a 'meta' table. [code: lacks-meta-table]
⚠️ WARN Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'ltt{0x00}' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Erica One" seems to be already in use.
    Please visit http://namecheck.fontdata.com/ for more info. [code: name-collision]
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
EricaOne-Regular.ttf
Dehinted Size 26220
Hinted Size 26244
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - Use grid-fitting |
| | - Use grayscale rendering |
| | - Use gridfitting with ClearType symmetric smoothing |

- Use smoothing along multiple axes with ClearType®
[code: ranges]
ℹ️ INFO Font has old ttfautohint applied? (googlefonts/old_ttfautohint)
  • ℹ️ INFO Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: Version 1.003, Version 1.003 [code: version-not-detected]
[1] ofl/ericaone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Erica One" does not match post_script_name="EricaOne-Regular". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

[10] ofl/ericaone
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.01% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̃ (U+0303)
  • ̈ (U+0308) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL EricaOne-Regular.ttf: 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) 2011 by latinotype limitada (info@latinotype.com), with reserved font names "erica" "erica one"" [code: bad-notice-format]

  • 🔥 FAIL EricaOne-Regular.ttf: 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) 2011 by latinotype limitada (info@latinotype.com), with reserved font names "erica" "erica one"" [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) 2011 by latinotype limitada (info@latinotype.com), with reserved font names "erica" "erica one"" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2011 by latinotype limitada (info@latinotype.com), with reserved font names "erica" "erica one": ["METADATA.pb"]
  • copyright (c) 2011 by latinotype limitada (info@latinotype.com), with reserved font names "erica" "erica one": ["EricaOne-Regular.ttf: Name Table entry", "EricaOne-Regular.ttf: Name Table entry"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/ericaone/EricaOne-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE [code: missing-codepoints]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/ericaone/EricaOne-Regular.ttf: The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: yi, canadian-aboriginal
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: greek, yi, math
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2126 OHM SIGN: try adding math
  • U+2202 PARTIAL DIFFERENTIAL: try adding math
  • U+2206 INCREMENT: try adding math
    ... and 10 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2011 by LatinoType Limitada (info@latinotype.com), with Reserved Font Names "Erica" "Erica One"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/ericaone/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011 by latinotype limitada (luciano@latinotype.com), "

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

+with Reserved Font Names "Erica One"
[code: incorrect-ofl-body-text]

[3] ofl/ericaone/DESCRIPTION.en_us.html
🔥 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 DESCRIPTION.en_us.html must have more than 200 bytes. (googlefonts/description/min_length)
  • 🔥 FAIL DESCRIPTION.en_us.html must have size larger than 200 bytes. [code: too-short]
⚠️ 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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
25 30 9 106 70
10% 12% 4% 44% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.2

Check results

[2] ofl/esteban/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, ang�lica d�iaz (http://typereview.wordpress.com|angiecina@gmail.com),"

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]

⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

  • with Reserved Font Name "Esteban"
    [code: incorrect-ofl-body-text]
[1] ofl/esteban/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (Esteban). The name must end with Regular or Italic [code: mismatch]

  • 🔥 FAIL METADATA.pb font filename = "Esteban-Regular.ttf" does not match post_script_name="Esteban". [code: mismatch]

  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]

[11] ofl/esteban
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. (googlefonts/metadata/consistent_repo_urls)
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ℹ️ INFO The subset 'latin-ext' is listed in production metadata, but only 0.03% of its glyphs are supported by this font file. We can't remove it, however, since that would cause a regression in production. [code: unsupported-production-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Yaneshaʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̃ (U+0303)
  • ̈ (U+0308) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Amarakaeri language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Qʼeqchiʼ language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Otomi, Mezquital language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Secoya language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ̱ (U+0331) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Purepecha language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ŋ (U+014B) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yapese language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Yucateco language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ʼ (U+02BC) [code: bad-sample-text]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL Esteban-Regular.ttf: 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) 2011, angelica diaz rivera (www.typereview.wordpress.com), with reserved font name "esteban"" [code: bad-notice-format]

  • 🔥 FAIL Esteban-Regular.ttf: 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) 2011, angelica diaz rivera (www.typereview.wordpress.com), with reserved font name "esteban"" [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) 2011, angelica diaz rivera (www.typereview.wordpress.com angiecina@gmail.com), with reserved font name "esteban"" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/esteban/Esteban-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE [code: missing-codepoints]
⚠️ WARN Ensure Fonts have 'ital' STAT axis. (opentype/STAT/ital_axis)
  • ⚠️ WARN Static font is missing the 'STAT' table. [code: no-stat-table]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/esteban/Esteban-Regular.ttf: 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+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, tifinagh, todhri, duployan, canadian-aboriginal, syriac, malayalam, hebrew, coptic, tai-le, old-permic
  • U+03BC GREEK SMALL LETTER MU: try adding one of: greek, math
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+222B INTEGRAL: try adding math
  • U+2248 ALMOST EQUAL TO: try adding math
  • U+2260 NOT EQUAL TO: try adding math
  • U+2264 LESS-THAN OR EQUAL TO: try adding math
    ... and 1 others

Or you can add the above codepoints to one of the subsets supported by the font: menu, latin, latin-ext [code: unreachable-subsetting]

⚠️ WARN Copyright notice on METADATA.pb should not contain 'Reserved Font Name'. (googlefonts/metadata/reserved_font_name)
  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2011, Angelica Diaz Rivera (www.typereview.wordpress.com angiecina@gmail.com), with Reserved Font Name "Esteban"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=LICENSE_DESCRIPTION] [code: http-in-description]

  • ⚠️ WARN Please consider updating the url from 'https://scripts.sil.org/OFL' to 'https://openfontlicense.org'. [code: old-url]

  • ⚠️ WARN For now we're still accepting http URLs, but you should consider using https instead. [code: http]

ℹ️ 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 Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[2] ofl/esteban/DESCRIPTION.en_us.html
🔥 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]
⚠️ 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]
[28] ofl/esteban/Esteban-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [code: missing-case-counterparts]
🔥 FAIL Font contains '.notdef' as its first glyph? (mandatory_glyphs)
  • 🔥 FAIL The '.notdef' glyph should contain a drawing, but it is blank. [code: notdef-is-blank]
🔥 FAIL Are there unwanted tables? (unwanted_tables)
  • 🔥 FAIL Unwanted tables found:
    Table: FFTM Reason: Table contains redundant FontForge timestamp info
    [code: unwanted-tables]
🔥 FAIL Font contains glyphs for whitespace characters? (whitespace_glyphs)
  • 🔥 FAIL Whitespace glyph missing for codepoint 0x00A0 [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Esteban Esteban
Subfamily Name Regular Regular
Full Name Esteban Esteban Regular
Postscript Name Esteban Esteban-Regular
Typographic Family Name N/A N/A
Typographic Subfamily Name N/A N/A
  • ⚠️ WARN Regular missing from full name [code: lacks-regular]
🔥 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) was NOT set. [code: missing-os2-fsselection-bit7]
🔥 FAIL Version number has increased since previous release on Google Fonts? (googlefonts/version_bump)
  • 🔥 FAIL Version number 1.0019989 is equal to version on Google fonts [code: same-version]
⚠️ WARN Check that OS/2 fsSelection WWS bit is set correctly. (opentype/fsselection_wws)
  • ⚠️ WARN OS/2 fsSelection WWS bit is not set, and the font does not have name IDs 21/22 (WWS Family/Subfamily). If the font's naming is WWS-conformant, the WWS bit should be set. [code: no-wws-without-wws-names]
⚠️ WARN Check mark characters are in GDEF mark glyph class. (opentype/GDEF_mark_chars)
  • ⚠️ WARN The following mark characters should be in the GDEF mark glyph class:
  • U+0307 (dotaccentcmb) [code: mark-chars]
⚠️ WARN Check for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN comma (x=45, bounds are 52<->173) [code: points-out-of-bounds]

  • ⚠️ WARN fj (x=517, bounds are 34<->516) [code: points-out-of-bounds]

  • ⚠️ WARN ffj (x=837, bounds are 33<->836) [code: points-out-of-bounds]

⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 493 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=463: less, greater
    width=542: logicalnot
    width=472: plus
    width=568: equal
    width=471: multiply
    width=495: plusminus
    width=574: minus
    width=590: approxequal
    width=515: divide
    width=492: notequal [code: width-outliers]
⚠️ WARN Ensure indic fonts have the Indian Rupee Sign glyph. (rupee)
  • ⚠️ WARN Font is missing the Indian Rupee Sign glyph. Please add a glyph for Indian Rupee Sign (₹) at codepoint U+20B9. [code: missing-rupee]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • .null
  • nonmarkingreturn
  • CR
  • fh
  • ffh
  • fj
  • ffj
  • fk
  • ffk
    ... and 5 others [code: unreachable-glyphs]
⚠️ WARN Does the font have a DSIG table? (dsig)
  • ⚠️ WARN This font has a digital signature (DSIG table) which is only required — even if only a placeholder — on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN Missing separator glyph U+2028 [code: missing-separator-glyphs]

  • ⚠️ WARN Missing separator glyph U+2029 [code: missing-separator-glyphs]

⚠️ WARN License URL matches License text on name table? (googlefonts/name/license_url)
  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

  • ⚠️ WARN Please consider using HTTPS URLs in the license description [code: http-in-description]

⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (soft_dotted)
  • ⚠️ WARN The dot of soft dotted characters should disappear in other cases, for example:
  • j̇ [code: soft-dotted]
⚠️ WARN Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • percent (U+0025): X=159,Y=-1 (should be at baseline 0?)
    • two (U+0032): X=215,Y=-1 (should be at baseline 0?)
    • N (U+004E): X=571,Y=135 (should be at cap-height 137?)
    • underscore (U+005F): X=315.5,Y=2 (should be at baseline 0?)
    • g (U+0067): X=127,Y=-2 (should be at baseline 0?)
    • s (U+0073): X=140,Y=135 (should be at cap-height 137?)
    • u (U+0075): X=456.5,Y=-1 (should be at baseline 0?)
    • z (U+007A): X=174.5,Y=1 (should be at baseline 0?)
    • bar (U+007C): X=86,Y=139 (should be at cap-height 137?)
      ... and 32 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • J (U+004A): from (178.0, 613.0) to (190.0, 50.0) is colinear with segment from (190.0, 50.0) to (190.0, 21.0)
  • J (U+004A): from (114.0, 41.0) to (114.0, 70.0) is colinear with segment from (114.0, 70.0) to (110.0, 613.0)
  • U (U+0055): from (15.0, 703.0) to (152.0, 697.0) is colinear with segment from (152.0, 697.0) to (282.0, 703.0)
  • U (U+0055): from (445.0, 703.0) to (570.0, 697.0) is colinear with segment from (570.0, 697.0) to (699.0, 703.0)
  • w (U+0077): from (-1.0, 480.0) to (113.0, 475.0) is colinear with segment from (113.0, 475.0) to (233.0, 480.0)
  • w (U+0077): from (294.0, 480.0) to (416.0, 475.0) is colinear with segment from (416.0, 475.0) to (519.0, 480.0)
  • w (U+0077): from (610.0, 480.0) to (725.0, 475.0) is colinear with segment from (725.0, 475.0) to (816.0, 480.0)
  • bar (U+007C): from (146.0, 327.0) to (151.0, -226.0) is colinear with segment from (151.0, -226.0) to (151.0, -277.0)
  • sterling (U+00A3): from (239.0, 323.0) to (241.0, 275.0) is colinear with segment from (241.0, 275.0) to (241.0, 265.0)
    ... and 19 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • Q (U+0051): Quad(QuadBez { p0: (249.5, -31.0), p1: (285.0, -8.0), p2: (313.0, -6.0) })/Quad(QuadBez { p0: (313.0, -6.0), p1: (228.0, 2.0), p2: (168.0, 54.0) }) = 9.462322208025613 degrees [code: found-jaggy-segments]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • one (U+0031): Line(Line { p0: (191.0, 127.0), p1: (194.0, 511.0) }) (angle: 89.55 degrees, expected: 90.00 degrees)
  • two (U+0032): Line(Line { p0: (215.0, -1.0), p1: (37.0, 0.0) }) (angle: 179.68 degrees, expected: 180.00 degrees)
  • H (U+0048): Line(Line { p0: (544.0, 90.0), p1: (546.0, 337.0) }) (angle: 89.54 degrees, expected: 90.00 degrees)
  • I (U+0049): Line(Line { p0: (115.0, 90.0), p1: (119.0, 613.0) }) (angle: 89.56 degrees, expected: 90.00 degrees)
  • J (U+004A): Line(Line { p0: (114.0, 70.0), p1: (110.0, 613.0) }) (angle: 90.42 degrees, expected: 90.00 degrees)
  • P (U+0050): Line(Line { p0: (115.0, 90.0), p1: (119.0, 614.0) }) (angle: 89.56 degrees, expected: 90.00 degrees)
  • R (U+0052): Line(Line { p0: (115.0, 90.0), p1: (119.0, 614.0) }) (angle: 89.56 degrees, expected: 90.00 degrees)
  • T (U+0054): Line(Line { p0: (246.0, 90.0), p1: (250.0, 650.0) }) (angle: 89.59 degrees, expected: 90.00 degrees)
  • U (U+0055): Line(Line { p0: (613.0, 613.0), p1: (611.0, 248.0) }) (angle: -90.31 degrees, expected: -90.00 degrees)
    ... and 80 others [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 'pyrs' 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Esteban-Regular.ttf
Dehinted Size 46480
Hinted Size 46504
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    GPOS
    GSUB
    gasp [code: optional-tables]

ℹ️ INFO 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 | - 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.002, Version 1.002 [code: version-not-detected]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
26 31 9 107 69
11% 13% 4% 44% 29%

@felipesanches
felipesanches merged commit 2f6daa8 into main Jul 21, 2026
12 checks passed
@felipesanches
felipesanches deleted the sfd-modernized-sources-round3-2026-07 branch July 21, 2026 00:24
cmyr pushed a commit to googlefonts/fontc_crater that referenced this pull request Jul 21, 2026
Add the 16 round-3 families (dawningofanewday through esteban) whose FontForge
.sfd upstreams had no fontc-buildable source. Each was converted to Glyphs
under googlefonts/<family>, pinned at its merged commit, and builds with
gftools-builder3 + fontc from its own sources/config.yaml.

Bump fonts_repo_sha to 2f6daa88 -- google/fonts main after reference PR #10717
merged -- refreshing the pinned checkout used by the remaining external-config
targets.

(google/fonts#10717)

Assisted by an AI agent (Claude Opus 4.8)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant