Skip to content

Reference 32 more modernized .glyphs source repositories (SFD -> Glyphs)#10725

Merged
felipesanches merged 32 commits into
mainfrom
sfd-modernized-sources-round4-2026-07
Jul 22, 2026
Merged

Reference 32 more modernized .glyphs source repositories (SFD -> Glyphs)#10725
felipesanches merged 32 commits into
mainfrom
sfd-modernized-sources-round4-2026-07

Conversation

@felipesanches

Copy link
Copy Markdown
Collaborator

The fourth batch in this series (after #10697, #10709 and #10717): 32 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
euphoriascript googlefonts/euphoriascript 78d9965282
ewert googlefonts/ewert 1fdc40c5b4
felipa googlefonts/felipa 1ba44f8353
fenix googlefonts/fenix cfae6dd042
fjordone googlefonts/fjordone a6c1784e33
flamenco googlefonts/flamenco 457c24c540
fresca googlefonts/fresca 6f0f0d00ca
fugazone googlefonts/fugazone cc513bad4e
gafata googlefonts/gafata 145c6761d3
galdeano googlefonts/galdeano 41268aaf05
geostar googlefonts/geostar cd70b3170a
geostarfill googlefonts/geostarfill 61aec9b930
germaniaone googlefonts/germaniaone 8c373b1705
giveyouglory googlefonts/giveyouglory 79ab8c04f2
glassantiqua googlefonts/glassantiqua 64763eadb6
goblinone googlefonts/goblinone 82b0d4b4f5
gochihand googlefonts/gochihand af523d983c
gravitasone googlefonts/gravitasone feede2e878
gudea googlefonts/gudea 7651bdceea
habibi googlefonts/habibi dca56369c2
hammersmithone googlefonts/hammersmithone fa842a5d78
handlee googlefonts/handlee f9930b13dd
inder googlefonts/inder e4d4209a92
inika googlefonts/inika 07bb78b80a
jockeyone googlefonts/jockeyone 4f6087374d
juliussansone googlefonts/juliussansone 6e62919794
justmeagaindownhere googlefonts/justmeagaindownhere 23514049cb
lusitana googlefonts/lusitana 393d85168a
macondoswashcaps googlefonts/macondoswashcaps bd29bdafaa
marckscript googlefonts/marckscript b85fe9173d
montaga googlefonts/montaga c01e6e195c
quando googlefonts/quando bba03c60be

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

Point METADATA.pb at the new googlefonts/euphoriascript 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/ewert 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/felipa 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/fenix 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/fjordone 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/flamenco 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/fresca 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/fugazone 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/gafata 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/galdeano 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/geostar 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/geostarfill 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/germaniaone 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/giveyouglory 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/glassantiqua 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/goblinone 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/gochihand 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/gravitasone 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/gudea 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/habibi 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/hammersmithone 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/handlee 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/inder 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/inika 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/jockeyone 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/juliussansone 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)
…e .glyphs source

Point METADATA.pb at the new googlefonts/justmeagaindownhere 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/lusitana 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)
…s source

Point METADATA.pb at the new googlefonts/macondoswashcaps 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/marckscript 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.3

Check results

[24] ofl/flamenco/Flamenco-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 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 for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN quotedbl (x=50, bounds are 51<->199) [code: points-out-of-bounds]

  • ⚠️ WARN quotedbl (x=200, bounds are 51<->199) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (x=50, bounds are 51<->102) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (x=103, bounds are 51<->102) [code: points-out-of-bounds]

  • ⚠️ WARN A (y=-17, bounds are -11<->608) [code: points-out-of-bounds]

  • ⚠️ WARN y (x=-34, bounds are -32<->408) [code: points-out-of-bounds]

  • ⚠️ WARN Agrave (y=-17, bounds are -11<->790) [code: points-out-of-bounds]

  • ⚠️ WARN Aacute (y=-17, bounds are -11<->790) [code: points-out-of-bounds]

  • ⚠️ WARN Acircumflex (y=-17, bounds are -11<->779) [code: points-out-of-bounds]

  • ⚠️ WARN Atilde (y=-17, bounds are -11<->777) [code: points-out-of-bounds]

  • ⚠️ WARN Adieresis (y=-17, bounds are -11<->760) [code: points-out-of-bounds]

  • ⚠️ WARN Aring (y=-17, bounds are -11<->800) [code: points-out-of-bounds]

  • ⚠️ WARN yacute (x=-34, bounds are -32<->408) [code: points-out-of-bounds]

  • ⚠️ WARN ydieresis (x=-34, bounds are -32<->408) [code: points-out-of-bounds]

  • ⚠️ WARN florin (x=505, bounds are 23<->503) [code: points-out-of-bounds]

⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 432 among a set of 8 math glyphs.
    The following math glyphs have a different width, though:
    width=486: multiply
    width=426: equal
    width=394: divide
    width=363: plus
    width=475: logicalnot
    width=391: 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 "Flamenco" [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 "Flamenco" [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 [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=265,Y=-1.5 (should be at baseline 0?)
    • numbersign (U+0023): X=76,Y=-1.5 (should be at baseline 0?)
    • numbersign (U+0023): X=247,Y=610 (should be at cap-height 608?)
    • numbersign (U+0023): X=436,Y=610 (should be at cap-height 608?)
    • percent (U+0025): X=508,Y=606 (should be at cap-height 608?)
    • ampersand (U+0026): X=460,Y=-1 (should be at baseline 0?)
    • slash (U+002F): X=460,Y=606 (should be at cap-height 608?)
    • three (U+0033): X=230,Y=-229 (should be at descender -231?)
    • four (U+0034): X=299,Y=-229 (should be at descender -231?)
      ... and 59 others [code: found-misalignments]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • apple (U+F8FF): Quad(QuadBez { p0: (868.0, 627.0), p1: (874.0, 585.0), p2: (874.0, 553.0) })/Line(Line { p0: (874.0, 553.0), p1: (876.0, 563.0) }) = 11.309932474020195 degrees
  • apple (U+F8FF): Quad(QuadBez { p0: (597.0, 355.0), p1: (604.0, 304.0), p2: (604.0, 280.0) })/Quad(QuadBez { p0: (604.0, 280.0), p1: (618.0, 363.0), p2: (682.0, 363.0) }) = 9.574227885091826 degrees
  • apple (U+F8FF): Line(Line { p0: (386.0, 185.0), p1: (390.0, 194.0) })/Quad(QuadBez { p0: (390.0, 194.0), p1: (379.0, 179.0), p2: (333.0, 179.0) }) = 12.291348762866589 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:
  • e (U+0065): Line(Line { p0: (373.0, 174.0), p1: (96.0, 173.0) }) (angle: -179.79 degrees, expected: -180.00 degrees)
  • ae (U+00E6): Line(Line { p0: (643.0, 174.0), p1: (366.0, 173.0) }) (angle: -179.79 degrees, expected: -180.00 degrees)
  • egrave (U+00E8): Line(Line { p0: (373.0, 174.0), p1: (96.0, 173.0) }) (angle: -179.79 degrees, expected: -180.00 degrees)
  • eacute (U+00E9): Line(Line { p0: (373.0, 174.0), p1: (96.0, 173.0) }) (angle: -179.79 degrees, expected: -180.00 degrees)
  • ecircumflex (U+00EA): Line(Line { p0: (373.0, 174.0), p1: (96.0, 173.0) }) (angle: -179.79 degrees, expected: -180.00 degrees)
  • edieresis (U+00EB): Line(Line { p0: (373.0, 174.0), p1: (96.0, 173.0) }) (angle: -179.79 degrees, expected: -180.00 degrees)
  • oe (U+0153): Line(Line { p0: (630.0, 174.0), p1: (349.0, 173.0) }) (angle: -179.80 degrees, expected: -180.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 '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 "Flamenco" 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:
Flamenco-Regular.ttf
Dehinted Size 36552
Hinted Size 36576
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]
[24] ofl/flamenco/Flamenco-Light.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 Checking OS/2 Metrics match hhea Metrics. (os2_metrics_match_hhea)
  • 🔥 FAIL OS/2 sTypoAscender (800) and hhea ascent (801) must be equal. [code: ascender]
🔥 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]
🔥 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 for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN one (x=52, bounds are 53<->260) [code: points-out-of-bounds]

  • ⚠️ WARN e (x=389, bounds are 48<->388) [code: points-out-of-bounds]

  • ⚠️ WARN w (y=381, bounds are -5<->380) [code: points-out-of-bounds]

  • ⚠️ WARN onehalf (y=614, bounds are -3<->613) [code: points-out-of-bounds]

  • ⚠️ WARN threequarters (y=614, bounds are -5<->613) [code: points-out-of-bounds]

  • ⚠️ WARN Oslash (y=614, bounds are -5<->613) [code: points-out-of-bounds]

  • ⚠️ WARN Oslash (y=-6, bounds are -5<->613) [code: points-out-of-bounds]

  • ⚠️ WARN ae (x=675, bounds are 45<->674) [code: points-out-of-bounds]

  • ⚠️ WARN egrave (x=389, bounds are 48<->388) [code: points-out-of-bounds]

  • ⚠️ WARN eacute (x=389, bounds are 48<->388) [code: points-out-of-bounds]

  • ⚠️ WARN ecircumflex (x=389, bounds are 48<->388) [code: points-out-of-bounds]

  • ⚠️ WARN edieresis (x=389, bounds are 48<->388) [code: points-out-of-bounds]

  • ⚠️ WARN igrave (x=115, bounds are 1<->113) [code: points-out-of-bounds]

  • ⚠️ WARN oe (x=659, bounds are 48<->658) [code: points-out-of-bounds]

  • ⚠️ WARN perthousand (y=-6, bounds are -5<->613) [code: points-out-of-bounds]

⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 430 among a set of 8 math glyphs.
    The following math glyphs have a different width, though:
    width=346: plus
    width=475: multiply
    width=351: plusminus
    width=473: logicalnot
    width=355: divide
    width=415: equal [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 "Flamenco" [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 "Flamenco" [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 [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=225,Y=610 (should be at cap-height 608?)
    • numbersign (U+0023): X=427,Y=610 (should be at cap-height 608?)
    • percent (U+0025): X=497,Y=607 (should be at cap-height 608?)
    • parenleft (U+0028): X=198,Y=609 (should be at cap-height 608?)
    • parenright (U+0029): X=21,Y=609 (should be at cap-height 608?)
    • slash (U+002F): X=443,Y=607 (should be at cap-height 608?)
    • three (U+0033): X=228,Y=-229 (should be at descender -231?)
    • three (U+0033): X=228,Y=-229 (should be at descender -231?)
    • four (U+0034): X=303.5,Y=-229 (should be at descender -231?)
      ... and 81 others [code: found-misalignments]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • apple (U+F8FF): Quad(QuadBez { p0: (868.0, 627.0), p1: (874.0, 585.0), p2: (874.0, 553.0) })/Line(Line { p0: (874.0, 553.0), p1: (876.0, 563.0) }) = 11.309932474020195 degrees
  • apple (U+F8FF): Quad(QuadBez { p0: (597.0, 355.0), p1: (604.0, 304.0), p2: (604.0, 280.0) })/Quad(QuadBez { p0: (604.0, 280.0), p1: (618.0, 363.0), p2: (682.0, 363.0) }) = 9.574227885091826 degrees
  • apple (U+F8FF): Line(Line { p0: (386.0, 185.0), p1: (390.0, 194.0) })/Quad(QuadBez { p0: (390.0, 194.0), p1: (379.0, 179.0), p2: (333.0, 179.0) }) = 12.291348762866589 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:
  • exclam (U+0021): Line(Line { p0: (110.0, 604.0), p1: (108.0, 89.0) }) (angle: -90.22 degrees, expected: -90.00 degrees)
  • exclam (U+0021): Line(Line { p0: (94.0, 89.0), p1: (92.0, 604.0) }) (angle: 90.22 degrees, expected: 90.00 degrees)
  • exclamdown (U+00A1): Line(Line { p0: (108.0, 519.0), p1: (110.0, 4.0) }) (angle: -89.78 degrees, expected: -90.00 degrees)
  • exclamdown (U+00A1): Line(Line { p0: (92.0, 4.0), p1: (94.0, 519.0) }) (angle: 89.78 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 '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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Flamenco-Light.ttf
Dehinted Size 34576
Hinted Size 34600
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]
[2] ofl/flamenco/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 "Flamenco"
[code: incorrect-ofl-body-text]

[12] ofl/flamenco
🔥 FAIL Each font in a family must have the same set of vertical metrics values. (family/vertical_metrics)
  • 🔥 FAIL ascent is not the same across the family:
  • Flamenco-Light.ttf: 801
  • Flamenco-Regular.ttf: 800 [code: ascent-mismatch]
  • 🔥 FAIL usWinAscent is not the same across the family:
  • Flamenco-Light.ttf: 801
  • Flamenco-Regular.ttf: 800 [code: usWinAscent-mismatch]
🔥 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 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 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 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 Flamenco-Light.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 "flamenco"" [code: bad-notice-format]

  • 🔥 FAIL Flamenco-Light.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 "flamenco"" [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 "flamenco"" [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 "flamenco": ["Flamenco-Light.ttf: Name Table entry", "Flamenco-Light.ttf: Name Table entry"]
  • copyright (c) 2011 by latinotype limitada (info@latinotype.com), with reserved font names "flamenco": ["METADATA.pb"] [code: mismatch]
  • 🔥 FAIL Flamenco-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 "flamenco"" [code: bad-notice-format]

  • 🔥 FAIL Flamenco-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 "flamenco"" [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 "flamenco"" [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 "flamenco": ["METADATA.pb"]
  • copyright (c) 2011 by latinotype limitada (info@latinotype.com), with reserved font names "flamenco": ["Flamenco-Regular.ttf: Name Table entry", "Flamenco-Regular.ttf: Name Table entry"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/flamenco/Flamenco-Light.ttf missing required codepoints:
  • 0x2212: MINUS SIGN [code: missing-codepoints]
  • 🔥 FAIL ofl/flamenco/Flamenco-Regular.ttf missing required codepoints:
  • 0x2212: MINUS SIGN [code: missing-codepoints]
⚠️ WARN Fonts have consistent PANOSE family type? (opentype/family/panose_familytype)
  • ⚠️ WARN PANOSE family type is not the same across this family. In order to fix this, please make sure that the panose.bFamilyType value is the same in the OS/2 table of all of this family's font files.

The following values were found:

  • Unknown (0): Flamenco-Light.ttf
  • Latin Text: Flamenco-Regular.ttf [code: inconsistency]
⚠️ 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 "Flamenco" does not match correct family name "Flamenco Light". 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/flamenco/Flamenco-Light.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+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: yi, canadian-aboriginal, latin-ext, tifinagh
    ... and 6 others

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

  • ⚠️ WARN ofl/flamenco/Flamenco-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+0141 LATIN CAPITAL LETTER L WITH STROKE: try adding latin-ext
  • U+0142 LATIN SMALL LETTER L WITH STROKE: try adding latin-ext
  • U+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: yi, canadian-aboriginal, latin-ext, tifinagh
    ... and 6 others

Or you can add the above codepoints to one of the subsets supported by the font: latin, 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) 2011 by LatinoType Limitada (info@latinotype.com), with Reserved Font Names "Flamenco"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2011 by LatinoType Limitada (info@latinotype.com), with Reserved Font Names "Flamenco"") 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]
[1] ofl/flamenco/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/flamenco/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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
34 83 12 189 128
8% 19% 3% 42% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

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

"copyright (c) 2011 fontstage (info@fontstage.com), with reserved font names, 'fresca'"

which does not match the expected format, similar to:

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

[28] ofl/fresca/Fresca-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 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 Fresca Fresca
Subfamily Name Regular Regular
Full Name Fresca-Regular Fresca Regular
Postscript Name Fresca-Regular Fresca-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+0307 (dotaccentcmb) [code: mark-chars]
⚠️ 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 680 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=603: plusminus, minus
    width=548: multiply
    width=607: logicalnot
    width=644: notequal, equal
    width=571: approxequal
    width=604: plus
    width=584: 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
  • c_t
  • f_b
  • f_h
  • fj
  • f_k
  • f_t
  • g_j
    ... and 23 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 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:
  • i̇ [code: soft-dotted]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • h (U+0068): from (464.0, 315.0) to (462.0, 142.0) is colinear with segment from (462.0, 142.0) to (467.0, 1.0)
  • k (U+006B): from (69.0, 654.0) to (27.0, 650.0) is colinear with segment from (27.0, 650.0) to (3.0, 647.0)
  • u (U+0075): from (47.0, 161.0) to (49.0, 334.0) is colinear with segment from (49.0, 334.0) to (45.0, 475.0)
  • ugrave (U+00F9): from (62.0, 161.0) to (64.0, 334.0) is colinear with segment from (64.0, 334.0) to (60.0, 475.0)
  • uacute (U+00FA): from (62.0, 161.0) to (64.0, 334.0) is colinear with segment from (64.0, 334.0) to (60.0, 475.0)
  • ucircumflex (U+00FB): from (62.0, 161.0) to (64.0, 334.0) is colinear with segment from (64.0, 334.0) to (60.0, 475.0)
  • udieresis (U+00FC): from (62.0, 161.0) to (64.0, 334.0) is colinear with segment from (64.0, 334.0) to (60.0, 475.0)
  • hbar (U+0127): from (464.0, 315.0) to (462.0, 142.0) is colinear with segment from (462.0, 142.0) to (467.0, 1.0)
  • kcommaaccent (U+0137): from (69.0, 654.0) to (27.0, 650.0) is colinear with segment from (27.0, 650.0) to (3.0, 647.0)
    ... and 6 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • six (U+0036): Quad(QuadBez { p0: (245.0, 513.5), p1: (163.0, 443.0), p2: (145.0, 364.0) })/Quad(QuadBez { p0: (145.0, 364.0), p1: (148.0, 370.0), p2: (165.0, 382.5) }) = 13.729441690676545 degrees
  • six.onum: Quad(QuadBez { p0: (245.0, 513.5), p1: (163.0, 443.0), p2: (145.0, 364.0) })/Quad(QuadBez { p0: (145.0, 364.0), p1: (148.0, 370.0), p2: (165.0, 382.5) }) = 13.729441690676545 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:
  • .notdef: Line(Line { p0: (496.0, 653.0), p1: (493.0, 8.0) }) (angle: -90.27 degrees, expected: -90.00 degrees)
  • .notdef: Line(Line { p0: (50.0, 650.0), p1: (496.0, 653.0) }) (angle: 0.39 degrees, expected: 0.00 degrees)
  • .notdef: Line(Line { p0: (144.0, 68.0), p1: (420.0, 66.0) }) (angle: -0.42 degrees, expected: 0.00 degrees)
  • .notdef: Line(Line { p0: (119.0, 509.0), p1: (118.0, 132.0) }) (angle: -90.15 degrees, expected: -90.00 degrees)
  • .notdef: Line(Line { p0: (426.0, 165.0), p1: (427.0, 508.0) }) (angle: 89.83 degrees, expected: 90.00 degrees)
  • seven (U+0037): Line(Line { p0: (74.0, 649.0), p1: (287.0, 648.0) }) (angle: -0.27 degrees, expected: 0.00 degrees)
  • E (U+0045): Line(Line { p0: (349.0, 567.0), p1: (131.0, 568.0) }) (angle: 179.74 degrees, expected: 180.00 degrees)
  • P (U+0050): Line(Line { p0: (42.0, 2.0), p1: (44.0, 619.0) }) (angle: 89.81 degrees, expected: 90.00 degrees)
  • T (U+0054): Line(Line { p0: (439.0, 568.0), p1: (270.0, 567.0) }) (angle: -179.66 degrees, expected: -180.00 degrees)
    ... and 74 others [code: found-semi-vertical]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • .notdef contains a short segment Line(Line { p0: (275.0, 378.0), p1: (279.0, 378.0) }) (length: 4.00, total outline: 801.93)
  • .notdef contains a short segment Line(Line { p0: (275.0, 276.0), p1: (271.0, 276.0) }) (length: 4.00, total outline: 778.91)
  • at (U+0040) contains a short segment Line(Line { p0: (455.0, 94.0), p1: (448.0, 96.0) }) (length: 7.28, total outline: 3578.19)
  • G (U+0047) contains a short segment Quad(QuadBez { p0: (379.0, 240.0), p1: (379.0, 247.0), p2: (379.0, 254.0) }) (length: 14.00, total outline: 3012.37)
  • X (U+0058) contains a short segment Line(Line { p0: (283.0, 384.0), p1: (293.0, 384.0) }) (length: 10.00, total outline: 3100.71)
  • X (U+0058) contains a short segment Line(Line { p0: (284.0, 247.0), p1: (277.0, 248.0) }) (length: 7.07, total outline: 3100.71)
  • a (U+0061) contains a short segment Line(Line { p0: (309.0, 43.0), p1: (306.0, 45.0) }) (length: 3.61, total outline: 2052.12)
  • b (U+0062) contains a short segment Line(Line { p0: (135.0, 394.0), p1: (143.0, 389.0) }) (length: 9.43, total outline: 2304.41)
  • d (U+0064) contains a short segment Line(Line { p0: (371.0, 71.0), p1: (363.0, 73.0) }) (length: 8.25, total outline: 2446.92)
    ... and 58 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 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Fresca-Regular.ttf
Dehinted Size 32620
Hinted Size 32644
Increase 24
Change 0.1 %
ℹ️ 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.001, Version 1.001 [code: version-not-detected]
[1] ofl/fresca/METADATA.pb
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[3] ofl/fresca/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]
[9] ofl/fresca
🔥 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 Fresca-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 fontstage (info@fontstage.com), with reserved font name "fresca"" [code: bad-notice-format]

  • 🔥 FAIL Fresca-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 fontstage (info@fontstage.com), with reserved font name "fresca"" [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 fontstage (info@fontstage.com), with reserved font name "fresca"" [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/fresca/Fresca-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+0307 COMBINING DOT ABOVE: try adding one of: duployan, math, malayalam, tifinagh, syriac, coptic, canadian-aboriginal, todhri, hebrew, old-permic, tai-le
  • 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+2070 SUPERSCRIPT ZERO: try adding math
  • U+2074 SUPERSCRIPT FOUR: try adding math
    ... and 14 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 Fontstage (info@fontstage.com), with Reserved Font Name "Fresca"") 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]

Summary

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

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[2] ofl/fugazone/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/fugazone/FugazOne-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 Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Fugaz One Fugaz One
Subfamily Name Regular Regular
Full Name Fugaz One Fugaz One Regular
Postscript Name FugazOne-Regular FugazOne-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 422 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=489: equal
    width=483: plusminus
    width=438: divide
    width=481: notequal
    width=446: plus
    width=600: logicalnot
    width=425: multiply [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 "Fugaz" and "Fugaz 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 "Fugaz" and "Fugaz 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
  • 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:
    • parenright (U+0029): X=263.5,Y=722 (should be at cap-height 720?)
    • asterisk (U+002A): X=302,Y=722 (should be at cap-height 720?)
    • J (U+004A): X=464,Y=721 (should be at cap-height 720?)
    • J (U+004A): X=643,Y=721 (should be at cap-height 720?)
    • Thorn (U+00DE): X=145,Y=721 (should be at cap-height 720?)
    • Thorn (U+00DE): X=325,Y=721 (should be at cap-height 720?)
    • ogonek (U+02DB): X=230,Y=2 (should be at baseline 0?)
    • apple: X=972,Y=1 (should be at baseline 0?)
    • apple: X=215,Y=2 (should be at baseline 0?) [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • G (U+0047): from (609.0, 334.0) to (593.0, 248.0) is colinear with segment from (593.0, 248.0) to (588.0, 219.0) [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • W (U+0057): Line(Line { p0: (501.0, 0.0), p1: (528.0, 461.0) })/Line(Line { p0: (528.0, 461.0), p1: (394.0, 0.0) }) = 12.855803343266096 degrees
  • apple: Quad(QuadBez { p0: (858.0, 497.0), p1: (864.0, 455.0), p2: (864.0, 423.0) })/Line(Line { p0: (864.0, 423.0), p1: (866.0, 433.0) }) = 11.309932474020195 degrees
  • apple: Quad(QuadBez { p0: (587.0, 225.0), p1: (594.0, 174.0), p2: (594.0, 150.0) })/Quad(QuadBez { p0: (594.0, 150.0), p1: (608.0, 233.0), p2: (672.0, 233.0) }) = 9.574227885091826 degrees
  • apple: Line(Line { p0: (376.0, 55.0), p1: (380.0, 64.0) })/Quad(QuadBez { p0: (380.0, 64.0), p1: (369.0, 49.0), p2: (323.0, 49.0) }) = 12.291348762866589 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:
  • A (U+0041): Line(Line { p0: (561.0, 720.0), p1: (565.0, 0.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • V (U+0056): Line(Line { p0: (295.0, 720.0), p1: (292.0, 175.0) }) (angle: -90.32 degrees, expected: -90.00 degrees)
  • Agrave (U+00C0): Line(Line { p0: (561.0, 720.0), p1: (565.0, 0.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • Aacute (U+00C1): Line(Line { p0: (561.0, 720.0), p1: (565.0, 0.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • Acircumflex (U+00C2): Line(Line { p0: (561.0, 720.0), p1: (565.0, 0.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • Atilde (U+00C3): Line(Line { p0: (561.0, 720.0), p1: (565.0, 0.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • Adieresis (U+00C4): Line(Line { p0: (561.0, 720.0), p1: (565.0, 0.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • Aring (U+00C5): Line(Line { p0: (561.0, 720.0), p1: (565.0, 0.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • AE (U+00C6): Line(Line { p0: (563.0, 273.0), p1: (564.0, 156.0) }) (angle: -89.51 degrees, expected: -90.00 degrees) [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 Line(Line { p0: (205.0, 235.0), p1: (203.0, 223.0) }) (length: 12.17, total outline: 4240.28)
  • dollar (U+0024) contains a short segment Quad(QuadBez { p0: (203.0, 223.0), p1: (201.0, 213.0), p2: (201.0, 204.0) }) (length: 19.14, total outline: 4240.28)
  • three (U+0033) contains a short segment Quad(QuadBez { p0: (209.0, 228.0), p1: (207.0, 217.0), p2: (207.0, 207.0) }) (length: 21.12, total outline: 3682.76)
  • five (U+0035) contains a short segment Quad(QuadBez { p0: (215.0, 213.0), p1: (214.0, 206.0), p2: (214.0, 199.0) }) (length: 14.05, total outline: 3741.29)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (202.0, 197.0), p1: (200.0, 184.0), p2: (200.0, 164.5) }) (length: 32.59, total outline: 6647.34)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (706.0, 313.0), p1: (704.0, 303.0), p2: (704.0, 296.0) }) (length: 17.14, total outline: 6647.34)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (817.0, 489.0), p1: (820.0, 505.0), p2: (820.0, 524.0) }) (length: 35.18, total outline: 6647.34)
  • S (U+0053) contains a short segment Line(Line { p0: (214.0, 235.0), p1: (212.0, 223.0) }) (length: 12.17, total outline: 3722.44)
  • S (U+0053) contains a short segment Quad(QuadBez { p0: (212.0, 223.0), p1: (210.0, 213.0), p2: (210.0, 205.0) }) (length: 18.14, total outline: 3722.44)
    ... and 46 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 "Fugaz 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:
FugazOne-Regular.ttf
Dehinted Size 27844
Hinted Size 27868
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]
[10] ofl/fugazone
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-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 FugazOne-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 "fugaz" and "fugaz one"" [code: bad-notice-format]

  • 🔥 FAIL FugazOne-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 "fugaz" and "fugaz 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 "fugaz" and "fugaz 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 "fugaz" and "fugaz one": ["FugazOne-Regular.ttf: Name Table entry", "FugazOne-Regular.ttf: Name Table entry"]
  • copyright (c) 2011 by latinotype limitada (info@latinotype.com), with reserved font names "fugaz" and "fugaz one": ["METADATA.pb"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/fugazone/FugazOne-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE
  • 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/fugazone/FugazOne-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+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • 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
  • U+2260 NOT 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) 2011 by LatinoType Limitada (info@latinotype.com), with Reserved Font Names "Fugaz" and "Fugaz 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/fugazone/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 "Fugaz One"
[code: incorrect-ofl-body-text]

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

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

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
23 30 8 109 70
10% 12% 3% 45% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

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

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

[2] ofl/gafata/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]
[30] ofl/gafata/Gafata-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 Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Gafata Gafata
Subfamily Name Regular Regular
Full Name Gafata Gafata Regular
Postscript Name Gafata-Regular Gafata-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 4.001999 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 section (x=449, bounds are 51<->448) [code: points-out-of-bounds]

  • ⚠️ WARN ordfeminine (y=421, bounds are 422<->720) [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 449 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=521: plusminus
    width=527: divide
    width=514: multiply
    width=489: plus
    width=525: logicalnot
    width=533: minus
    width=483: equal [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 Ensure Stylistic Sets have description. (stylisticset_description)
  • ⚠️ WARN The stylistic set ss01 lacks a description string in the name table [code: missing-description]
⚠️ 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 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=160,Y=1 (should be at baseline 0?)
    • exclam (U+0021): X=88,Y=1 (should be at baseline 0?)
    • percent (U+0025): X=173,Y=647 (should be at cap-height 648?)
    • comma (U+002C): X=146,Y=1 (should be at baseline 0?)
    • comma (U+002C): X=69,Y=1 (should be at baseline 0?)
    • colon (U+003A): X=157,Y=2 (should be at baseline 0?)
    • colon (U+003A): X=72,Y=2 (should be at baseline 0?)
    • semicolon (U+003B): X=170,Y=2 (should be at baseline 0?)
    • semicolon (U+003B): X=93,Y=2 (should be at baseline 0?)
      ... and 87 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 (102.0, 146.0) to (92.0, 380.0) is colinear with segment from (92.0, 380.0) to (87.0, 671.0)
  • exclam (U+0021): from (162.0, 671.0) to (157.0, 380.0) is colinear with segment from (157.0, 380.0) to (147.0, 146.0)
  • quotedbl (U+0022): from (88.0, 535.0) to (91.0, 612.0) is colinear with segment from (91.0, 612.0) to (91.0, 667.0)
  • quotedbl (U+0022): from (211.0, 535.0) to (213.0, 612.0) is colinear with segment from (213.0, 612.0) to (213.0, 667.0)
  • quotesingle (U+0027): from (88.0, 535.0) to (91.0, 612.0) is colinear with segment from (91.0, 612.0) to (91.0, 667.0)
  • zero (U+0030): from (137.0, 397.0) to (137.0, 328.0) is colinear with segment from (137.0, 328.0) to (137.0, 246.0)
  • B (U+0042): from (260.0, -1.0) to (157.0, 0.0) is colinear with segment from (157.0, 0.0) to (91.0, 0.0)
  • M (U+004D): from (613.0, 0.0) to (607.0, 488.0) is colinear with segment from (607.0, 488.0) to (606.0, 560.0)
  • N (U+004E): from (153.0, 547.0) to (157.0, 453.0) is colinear with segment from (157.0, 453.0) to (157.0, 0.0)
    ... and 50 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:
  • Ccedilla (U+00C7) has a counter-clockwise outer contour
  • ccedilla (U+00E7) 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:
  • one (U+0031): Line(Line { p0: (259.0, 648.0), p1: (258.0, 0.0) }) (angle: -90.09 degrees, expected: -90.00 degrees)
  • four (U+0034): Line(Line { p0: (114.0, 237.0), p1: (288.0, 238.0) }) (angle: 0.33 degrees, expected: 0.00 degrees)
  • B (U+0042): Line(Line { p0: (157.0, 60.0), p1: (295.0, 59.0) }) (angle: -0.42 degrees, expected: 0.00 degrees)
  • G (U+0047): Line(Line { p0: (534.0, 332.0), p1: (533.0, 51.0) }) (angle: -90.20 degrees, expected: -90.00 degrees)
  • L (U+004C): Line(Line { p0: (157.0, 648.0), p1: (156.0, 56.0) }) (angle: -90.10 degrees, expected: -90.00 degrees)
  • U (U+0055): Line(Line { p0: (526.0, 648.0), p1: (525.0, 202.0) }) (angle: -90.13 degrees, expected: -90.00 degrees)
  • Y (U+0059): Line(Line { p0: (303.0, 265.0), p1: (302.0, 0.0) }) (angle: -90.22 degrees, expected: -90.00 degrees)
  • Z (U+005A): Line(Line { p0: (118.0, 56.0), p1: (476.0, 58.0) }) (angle: 0.32 degrees, expected: 0.00 degrees)
  • bracketleft (U+005B): Line(Line { p0: (85.0, 0.0), p1: (84.0, 409.0) }) (angle: 90.14 degrees, expected: 90.00 degrees)
    ... and 26 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 Line(Line { p0: (229.0, -7.0), p1: (226.0, -7.0) }) (length: 3.00, total outline: 3104.28)
  • ampersand (U+0026) contains a short segment Line(Line { p0: (560.0, 314.0), p1: (559.0, 302.0) }) (length: 12.04, total outline: 3191.38)
  • three (U+0033) contains a short segment Quad(QuadBez { p0: (265.5, 373.5), p1: (271.0, 376.0), p2: (278.0, 380.0) }) (length: 14.09, total outline: 2642.48)
  • greater (U+003E) contains a short segment Quad(QuadBez { p0: (327.0, 283.0), p1: (327.0, 284.0), p2: (326.0, 286.0) }) (length: 3.19, total outline: 1509.48)
  • greater (U+003E) contains a short segment Quad(QuadBez { p0: (326.0, 286.0), p1: (323.0, 288.0), p2: (319.5, 289.5) }) (length: 7.39, total outline: 1509.48)
  • greater (U+003E) contains a short segment Quad(QuadBez { p0: (319.5, 289.5), p1: (316.0, 291.0), p2: (314.0, 292.0) }) (length: 6.04, total outline: 1509.48)
  • at (U+0040) contains a short segment Line(Line { p0: (529.0, 65.0), p1: (522.0, 72.0) }) (length: 9.90, total outline: 4565.40)
  • A (U+0041) contains a short segment Line(Line { p0: (301.0, 593.0), p1: (298.0, 593.0) }) (length: 3.00, total outline: 925.25)
  • L (U+004C) contains a short segment Line(Line { p0: (92.0, 1.0), p1: (91.0, 1.0) }) (length: 1.00, total outline: 2003.00)
    ... and 91 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 Font has old ttfautohint applied? (googlefonts/old_ttfautohint)
  • ⚠️ WARN ttfautohint used in font = 0.94.20-1c74; latest = 1.8.4; Need to re-run with the newer version! [code: old-ttfa]
⚠️ 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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Gafata-Regular.ttf
Dehinted Size 37344
Hinted Size 51552
Increase 14208
Change 38.0 %
ℹ️ 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 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 ttfautohint params? (googlefonts/has_ttfautohint_params)
  • ℹ️ INFO Font has ttfautohint params (-l 7 -r 28 -G 0 -x 13 -w "" -W -c) [code: ok]

  • ℹ️ INFO Font has ttfautohint params (-l 7 -r 28 -G 0 -x 13 -w "" -W -c) [code: ok]

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

"copyright (c) 2010-2013, lautaro hourcade (lautaro_h@yahoo.com), with reserved font name 'gafata'
"

which does not match the expected format, similar to:

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

[9] ofl/gafata
🔥 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 Gafata-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, lautaro hourcade (lautaro.uy@gmail.com), with reserved font name 'gafata'" [code: bad-notice-format]

  • 🔥 FAIL Gafata-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, lautaro hourcade (lautaro.uy@gmail.com), with reserved font name 'gafata'" [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, lautaro hourcade (lautaro.uy@gmail.com), with reserved font name 'gafata'" [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/gafata/Gafata-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: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • 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

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-2012, Lautaro Hourcade (lautaro.uy@gmail.com), with Reserved Font Name 'Gafata'") 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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
21 31 11 111 65
9% 13% 5% 46% 27%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[2] ofl/galdeano/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN Designer dariomanuelmuhafara still does not have an avatar image. Please provide one. [code: missing-avatar]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[11] ofl/galdeano
🔥 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]

  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-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 Galdeano-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, dario manuel muhafara (http://www.tipo.net.ar), with reserved font name "galdeano"." [code: bad-notice-format]

  • 🔥 FAIL Galdeano-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, dario manuel muhafara (http://www.tipo.net.ar), with reserved font name "galdeano"." [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, dario manuel muhafara (http://www.tipo.net.ar dario@tipo.net.ar), with reserved font name "galdeano"." [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2011, dario manuel muhafara (http://www.tipo.net.ar dario@tipo.net.ar), with reserved font name "galdeano".: ["METADATA.pb"]
  • copyright (c) 2011, dario manuel muhafara (http://www.tipo.net.ar), with reserved font name "galdeano".: ["Galdeano-Regular.ttf: Name Table entry", "Galdeano-Regular.ttf: Name Table entry"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/galdeano/Galdeano-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/galdeano/Galdeano-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+001E : 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: yi, greek, 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
    ... and 11 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, Dario Manuel Muhafara (http://www.tipo.net.ar dario@tipo.net.ar), with Reserved Font Name "Galdeano".") 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/galdeano/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]
[23] ofl/galdeano/Galdeano-Regular.ttf
🔥 FAIL Does font file include unacceptable control character glyphs? (control_chars)
  • 🔥 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 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.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 math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 516 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=548: approxequal [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 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 ("Galdeano") that differs from the currently used family name (Galdeano), which is fine. [code: legacy-familyname]

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

⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • ogonek (U+02DB): Line(Line { p0: (222.0, 0.0), p1: (324.0, 0.0) })/Quad(QuadBez { p0: (324.0, 0.0), p1: (272.0, -13.0), p2: (235.0, -48.0) }) = 14.036243467926457 degrees [code: found-jaggy-segments]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • ampersand (U+0026) contains a short segment Line(Line { p0: (577.0, 13.0), p1: (577.0, 3.0) }) (length: 10.00, total outline: 2646.01)
  • B (U+0042) contains a short segment Line(Line { p0: (80.0, 599.0), p1: (89.0, 600.0) }) (length: 9.06, total outline: 1953.13)
  • K (U+004B) contains a short segment Line(Line { p0: (211.0, 307.0), p1: (211.0, 317.0) }) (length: 10.00, total outline: 1787.07)
  • K (U+004B) contains a short segment Line(Line { p0: (530.0, 605.0), p1: (530.0, 597.0) }) (length: 8.00, total outline: 1787.07)
  • K (U+004B) contains a short segment Line(Line { p0: (560.0, 9.0), p1: (560.0, -1.0) }) (length: 10.00, total outline: 1787.07)
  • R (U+0052) contains a short segment Line(Line { p0: (534.0, 9.0), p1: (534.0, -1.0) }) (length: 10.00, total outline: 3336.62)
  • X (U+0058) contains a short segment Line(Line { p0: (25.0, 0.0), p1: (25.0, 8.0) }) (length: 8.00, total outline: 3025.60)
  • X (U+0058) contains a short segment Line(Line { p0: (33.0, 593.0), p1: (33.0, 602.0) }) (length: 9.00, total outline: 3025.60)
  • X (U+0058) contains a short segment Line(Line { p0: (515.0, 605.0), p1: (515.0, 597.0) }) (length: 8.00, total outline: 3025.60)
    ... and 21 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 "Galdeano" 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:
Galdeano-Regular.ttf
Dehinted Size 24844
Hinted Size 24868
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]
[2] ofl/galdeano/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, dario manuel muhafara (http://www.tipo.net.ar), "

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 "Galdeano".
[code: incorrect-ofl-body-text]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
23 27 8 111 69
10% 11% 3% 47% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[10] ofl/geostar
🔥 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+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 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 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 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 Geostar-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, admix designs (http://www.admixdesigns.com/) with reserved font name geostar." [code: bad-notice-format]

  • 🔥 FAIL Geostar-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, admix designs (http://www.admixdesigns.com/) with reserved font name geostar." [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, admix designs (http://www.admixdesigns.com joe@admixdesigns.com) with reserved font name geostar." [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
⚠️ 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/geostar/Geostar-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+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: tifinagh, canadian-aboriginal, yi, latin-ext
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DD DOUBLE ACUTE ACCENT: try adding latin-ext
    ... and 3 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) 2011, Admix Designs (http://www.admixdesigns.com joe@admixdesigns.com) with Reserved Font Name Geostar.") 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]
[27] ofl/geostar/Geostar-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 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 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) [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 Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Geostar."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Geostar."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Geostar."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Geostar."

This is bad except in a few specific rare cases. [code: rfn]

🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Geostar Geostar
Subfamily Name Regular Regular
Full Name Geostar Geostar Regular
Postscript Name Geostar-Regular Geostar-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 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:

  • exclam (U+0021): found 4, expected one of: [2, 6]
  • quotedbl (U+0022): found 4, expected one of: [2, 6]
  • quotesingle (U+0027): found 2, expected one of: [1, 5]
  • parenleft (U+0028): found 2, expected one of: [1, 5]
  • parenright (U+0029): found 2, expected one of: [1, 5]
  • hyphen (U+002D): found 2, expected one of: [1]
  • period (U+002E): found 2, expected one of: [1, 5]
  • slash (U+002F): found 2, expected one of: [1, 5]
  • two (U+0032): found 3, expected one of: [1, 2, 5]
    ... and 63 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 Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 649 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=581: plusminus
    width=567: plus
    width=596: logicalnot
    width=810: multiply
    width=684: equal
    width=585: minus
    width=643: 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
  • dollar.alt
  • glyph224 [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:
    • onequarter (U+00BC): X=871,Y=693 (should be at cap-height 695?)
    • onequarter (U+00BC): X=815,Y=693 (should be at cap-height 695?)
    • onequarter (U+00BC): X=284,Y=1 (should be at baseline 0?)
    • onequarter (U+00BC): X=340,Y=1 (should be at baseline 0?)
    • onehalf (U+00BD): X=872,Y=693 (should be at cap-height 695?)
    • onehalf (U+00BD): X=816,Y=693 (should be at cap-height 695?)
    • onehalf (U+00BD): X=285,Y=1 (should be at baseline 0?)
    • onehalf (U+00BD): X=341,Y=1 (should be at baseline 0?)
    • onehalf (U+00BD): X=1214,Y=1 (should be at baseline 0?)
      ... and 9 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:
  • exclamdown (U+00A1) has a counter-clockwise outer contour
  • exclamdown (U+00A1) has a counter-clockwise outer contour [code: ccw-outer-contour]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • W (U+0057) contains a short segment Line(Line { p0: (1331.0, 45.0), p1: (1331.0, 0.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (32.0, 0.0), p1: (32.0, 45.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (32.0, 650.0), p1: (32.0, 695.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (398.0, 695.0), p1: (398.0, 650.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (560.0, 650.0), p1: (560.0, 695.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (803.0, 695.0), p1: (803.0, 650.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (966.0, 650.0), p1: (966.0, 695.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (1331.0, 695.0), p1: (1331.0, 650.0) }) (length: 45.00, total outline: 7778.00)
  • AE (U+00C6) contains a short segment Line(Line { p0: (1444.0, 469.0), p1: (1490.0, 469.0) }) (length: 46.00, total outline: 8670.33)
    ... and 10 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 Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Geostar-Regular.ttf
Dehinted Size 41264
Hinted Size 41288
Increase 24
Change 0.1 %
ℹ️ 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]
[1] ofl/geostar/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Geostar" does not match post_script_name="Geostar-Regular". [code: mismatch]

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

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

"copyright (c) 2011, joe prince, admix designs (http://www.admixdesigns.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 "Geostar" and "Geostar Fill".
[code: incorrect-ofl-body-text]

[2] ofl/geostar/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]

Summary

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

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[10] ofl/geostarfill
🔥 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 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 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 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 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 GeostarFill-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, admix designs (http://www.admixdesigns.com/) with reserved font name geostar." [code: bad-notice-format]

  • 🔥 FAIL GeostarFill-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, admix designs (http://www.admixdesigns.com/) with reserved font name geostar." [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, admix designs (http://www.admixdesigns.com joe@admixdesigns.com) with reserved font name geostar." [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
⚠️ 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/geostarfill/GeostarFill-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+0160 LATIN CAPITAL LETTER S WITH CARON: try adding latin-ext
  • U+0161 LATIN SMALL LETTER S WITH CARON: try adding latin-ext
  • U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS: try adding latin-ext
  • U+017D LATIN CAPITAL LETTER Z WITH CARON: try adding latin-ext
  • U+017E LATIN SMALL LETTER Z WITH CARON: try adding latin-ext
  • U+0192 LATIN SMALL LETTER F WITH HOOK: try adding latin-ext
  • U+02C7 CARON: try adding one of: yi, canadian-aboriginal, latin-ext, tifinagh
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DD DOUBLE ACUTE ACCENT: try adding latin-ext
    ... and 3 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) 2011, Admix Designs (http://www.admixdesigns.com joe@admixdesigns.com) with Reserved Font Name Geostar.") 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]
[27] ofl/geostarfill/GeostarFill-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 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 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) [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 Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Geostar."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Geostar."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Geostar."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Geostar."

This is bad except in a few specific rare cases. [code: rfn]

🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Geostar Fill Geostar Fill
Subfamily Name Regular Regular
Full Name Geostar Fill Geostar Fill Regular
Postscript Name GeostarFill-Regular GeostarFill-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 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 4, expected one of: [2, 6]
  • degree (U+00B0): found 1, expected one of: [2, 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 649 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=684: equal
    width=643: divide
    width=585: minus
    width=810: multiply
    width=581: plusminus
    width=567: plus
    width=596: 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
  • dollar.alt
  • glyph224 [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:
    • onehalf (U+00BD): X=1214,Y=1 (should be at baseline 0?)
    • onehalf (U+00BD): X=784,Y=1 (should be at baseline 0?) [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:
  • exclamdown (U+00A1) has a counter-clockwise outer contour
  • exclamdown (U+00A1) has a counter-clockwise outer contour [code: ccw-outer-contour]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • W (U+0057) contains a short segment Line(Line { p0: (1331.0, 45.0), p1: (1331.0, 0.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (32.0, 0.0), p1: (32.0, 45.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (32.0, 650.0), p1: (32.0, 695.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (398.0, 695.0), p1: (398.0, 650.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (560.0, 650.0), p1: (560.0, 695.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (803.0, 695.0), p1: (803.0, 650.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (966.0, 650.0), p1: (966.0, 695.0) }) (length: 45.00, total outline: 7778.00)
  • W (U+0057) contains a short segment Line(Line { p0: (1331.0, 695.0), p1: (1331.0, 650.0) }) (length: 45.00, total outline: 7778.00)
  • AE (U+00C6) contains a short segment Line(Line { p0: (1444.0, 469.0), p1: (1490.0, 469.0) }) (length: 46.00, total outline: 8670.33)
    ... and 10 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 Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Geostar Fill" 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:
GeostarFill-Regular.ttf
Dehinted Size 38800
Hinted Size 38824
Increase 24
Change 0.1 %
ℹ️ 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]
[2] ofl/geostarfill/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, joe prince, admix designs (http://www.admixdesigns.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 "Geostar" and "Geostar Fill".
[code: incorrect-ofl-body-text]

[2] ofl/geostarfill/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/geostarfill/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Geostar Fill" does not match post_script_name="GeostarFill-Regular". [code: mismatch]

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

Summary

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

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

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

  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-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 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 GermaniaOne-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 john vargas beltran (john.vargasbeltran@gmail.com), with reserved font name "germania one"" [code: bad-notice-format]

  • 🔥 FAIL GermaniaOne-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 john vargas beltran (john.vargasbeltran@gmail.com), with reserved font name "germania 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 john vargas beltran (john.vargasbeltran@gmail.com), with reserved font name "germania one"" [code: bad-notice-format]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/germaniaone/GermaniaOne-Regular.ttf missing required codepoints:
  • 0x2026: HORIZONTAL ELLIPSIS
  • 0x2122: TRADE MARK SIGN
  • 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/germaniaone/GermaniaOne-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: syriac, duployan, hebrew, todhri, canadian-aboriginal, coptic, old-permic, math, malayalam, tai-le, tifinagh
  • U+03BC GREEK SMALL LETTER MU: try adding one of: greek, 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) 2011 by John Vargas Beltran (john.vargasbeltran@gmail.com), with Reserved Font Name "Germania 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]
[29] ofl/germaniaone/GermaniaOne-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • .null (Some(57344))
  • Grave (Some(57353)) [code: zero-width-bases]
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+0171 [code: missing-case-counterparts]

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

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

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

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

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

  • 🔥 FAIL Missing case-swapping counterpart for U+014C [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 Germania One Germania One
Subfamily Name Regular Regular
Full Name Germania One Germania One Regular
Postscript Name GermaniaOne-Regular GermaniaOne-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.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+0307 (dotaccentcmb) [code: mark-chars]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 494 among a set of 8 math glyphs.
    The following math glyphs have a different width, though:
    width=583: logicalnot
    width=490: less, greater
    width=518: 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:
  • nonmarkingreturn
  • agrave.salt
  • aacute.salt
  • acircumflex.salt
  • adieresis.salt
  • atilde.salt
  • aring.salt
  • amacron.salt [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:
  • i̇ [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:
    • numbersign (U+0023): X=350,Y=2 (should be at baseline 0?)
    • numbersign (U+0023): X=149,Y=2 (should be at baseline 0?)
    • section (U+00A7): X=161.5,Y=701.5 (should be at cap-height 700?)
    • macron (U+00AF): X=65,Y=701 (should be at cap-height 700?)
    • macron (U+00AF): X=390,Y=701 (should be at cap-height 700?)
    • ccedilla (U+00E7): X=180,Y=-2 (should be at baseline 0?)
    • amacron (U+0101): X=59,Y=701 (should be at cap-height 700?)
    • amacron (U+0101): X=384,Y=701 (should be at cap-height 700?)
    • emacron (U+0113): X=65,Y=701 (should be at cap-height 700?)
      ... and 14 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • N (U+004E): from (207.0, 529.0) to (208.0, 486.0) is colinear with segment from (208.0, 486.0) to (208.0, 0.0)
  • Ntilde (U+00D1): from (207.0, 529.0) to (208.0, 486.0) is colinear with segment from (208.0, 486.0) to (208.0, 0.0)
  • Nacute (U+0143): from (207.0, 529.0) to (208.0, 486.0) is colinear with segment from (208.0, 486.0) to (208.0, 0.0)
  • Eng (U+014A): from (207.0, 529.0) to (208.0, 486.0) is colinear with segment from (208.0, 486.0) to (208.0, 0.0) [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • at (U+0040): Line(Line { p0: (365.0, 278.0), p1: (364.0, 404.0) }) (angle: 90.45 degrees, expected: 90.00 degrees)
  • ij (U+0133): Line(Line { p0: (479.0, 388.0), p1: (478.0, 33.0) }) (angle: -90.16 degrees, expected: -90.00 degrees)
  • eng (U+014B): Line(Line { p0: (438.0, 386.0), p1: (437.0, 33.0) }) (angle: -90.16 degrees, expected: -90.00 degrees) [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 Line(Line { p0: (300.0, 430.0), p1: (292.0, 441.0) }) (length: 13.60, total outline: 2603.16)
  • dollar (U+0024) contains a short segment Line(Line { p0: (164.0, 270.0), p1: (172.0, 259.0) }) (length: 13.60, total outline: 2603.16)
  • M (U+004D) contains a short segment Quad(QuadBez { p0: (282.0, 564.0), p1: (267.0, 579.0), p2: (258.0, 579.0) }) (length: 28.90, total outline: 4885.12)
  • M (U+004D) contains a short segment Quad(QuadBez { p0: (447.0, 546.0), p1: (448.0, 541.0), p2: (448.0, 529.0) }) (length: 17.05, total outline: 4885.12)
  • m (U+006D) contains a short segment Quad(QuadBez { p0: (416.0, 401.0), p1: (418.0, 391.0), p2: (418.0, 386.0) }) (length: 15.15, total outline: 3882.41)
  • y (U+0079) contains a short segment Line(Line { p0: (183.0, -65.0), p1: (194.0, -78.0) }) (length: 17.03, total outline: 3332.55)
  • cent (U+00A2) contains a short segment Line(Line { p0: (300.0, 400.0), p1: (292.0, 411.0) }) (length: 13.60, total outline: 2357.76)
  • currency (U+00A4) contains a short segment Quad(QuadBez { p0: (551.5, 151.5), p1: (557.0, 147.0), p2: (561.0, 143.5) }) (length: 12.42, total outline: 2134.37)
  • currency (U+00A4) contains a short segment Quad(QuadBez { p0: (561.0, 143.5), p1: (565.0, 140.0), p2: (568.0, 138.0) }) (length: 8.91, total outline: 2134.37)
    ... and 9 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 "Germania 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:
GermaniaOne-Regular.ttf
Dehinted Size 33216
Hinted Size 33240
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]
[1] ofl/germaniaone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Germania One" does not match post_script_name="GermaniaOne-Regular". [code: mismatch]

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

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

"copyright (c) 2011, john vargas beltr�n (www.johnvargasbeltran.com|john.vargasbeltran@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 "Germania".
[code: incorrect-ofl-body-text]

[2] ofl/germaniaone/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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
28 31 8 108 68
12% 13% 3% 44% 28%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

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

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

[9] ofl/giveyouglory
🔥 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 The following subsets are missing: latin-ext [code: missing-subsets]

  • 🔥 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 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 The font has the following codepoints needed to render the specimen 16 sample text for language Old English, 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+012B)
  • ċ (U+010B)
  • ē (U+0113)
  • ġ (U+0121)
  • ō (U+014D)
  • ā (U+0101) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Bashkir (Latin), 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+015F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Bashkir (Latin), 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+017A) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Belarusian (Latin), 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+016D)
  • ž (U+017E)
  • ś (U+015B)
  • ń (U+0144) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Bosnian, 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+0106) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Bosnian, 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)
  • ć (U+0107)
  • š (U+0161)
  • ž (U+017E) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 21 sample text for language Bosnian, 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+0111) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Bulu, 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+014D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Crimean Turkish, 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+011F)
  • ş (U+015F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 21 sample text for language Crimean Turkish, 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+0130) [code: missing-subsetted]
  • 🔥 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 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 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 latin:
  • ů (U+016F)
  • ě (U+011B)
  • ř (U+0159)
  • č (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 latin:
  • ď (U+010F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Kashubian, 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+0105) [code: missing-subsetted]
  • 🔥 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+011B)
  • ć (U+0107)
  • ś (U+015B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Esperanto, 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+0109)
  • Ĉ (U+0108) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Esperanto, 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+011C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Esperanto, 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+011D)
  • ŭ (U+016D)
  • ŝ (U+015D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Gagauz, 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+0130)
  • ş (U+015F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 32 sample text for language Gagauz, 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+0163) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Old High German, 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+012B)
  • ō (U+014D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Hawaiian, 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+0101)
  • Ā (U+0100) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Hawaiian, 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+014D)
  • ū (U+016B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 21 sample text for language Hawaiian, 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+012B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Croatian, 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 specimen 16 sample text for language Croatian, 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+010D)
  • ž (U+017E) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 21 sample text for language Croatian, 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+0111) [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+011B)
  • ł (U+0142)
  • č (U+010D)
  • ć (U+0107) [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 Kazakh (Latin), 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+011F) [code: missing-subsetted]
  • 🔥 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 Kurdish (Latin), 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+015F) [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 md sample text for language Lithuanian, 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+0117) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Lithuanian, 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 Lithuanian, 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+0119)
  • ū (U+016B)
  • į (U+012F)
  • č (U+010D)
  • š (U+0161)
  • ą (U+0105)
  • ų (U+0173) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Latvian, 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+0113) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Latvian, 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+013C)
  • ī (U+012B)
  • š (U+0161)
  • ņ (U+0146)
  • ū (U+016B)
  • ā (U+0101) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 21 sample text for language Latvian, 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+0137)
  • ģ (U+0123) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Niuean, 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+0101) [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 The font has the following codepoints needed to render the poster md sample text for language Polish, 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+017B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Polish, 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+017C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Polish, 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+0142)
  • ś (U+015B)
  • ą (U+0105)
  • ę (U+0119) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 21 sample text for language Polish, 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+0144) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Romani, Balkan, 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+015B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Romani, Balkan, 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+0105) [code: missing-subsetted]
  • 🔥 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 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 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 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 latin:
  • ň (U+0148)
  • ť (U+0165)
  • č (U+010D)
  • ľ (U+013E) [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 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 Inari Sami, 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+0111)
  • č (U+010D)
  • š (U+0161) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Serbian (Latin), 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 The font has the following codepoints needed to render the specimen 16 sample text for language Serbian (Latin), 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+0111)
  • ć (U+0107)
  • č (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+015B)
  • ů (U+016F)
  • ř (U+0159)
  • ń (U+0144)
  • ć (U+0107) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Turkmen (Latin), 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+0148) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Turkmen (Latin), 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+015F)
  • ž (U+017E) [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 The font has the following codepoints needed to render the poster md sample text for language Turkish, 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+015F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Turkish, 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+0130) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Turkish, 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+011F) [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 poster sm sample text for language Tatar (Latin), 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+015F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Tatar (Latin), 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+011F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Tuvalu, 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+0101)
  • Ā (U+0100) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Tuvalu, 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+016B)
  • ē (U+0113) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Tahitian, 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+0113)
  • ō (U+014D)
  • ā (U+0101)
  • ū (U+016B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 21 sample text for language Tahitian, 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+012B) [code: missing-subsetted]
  • 🔥 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 GiveYouGlory.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). this font software is licensed under the sil open font license, version 1.1. this license is available with a faq at: http://scripts.sil.org/ofl" [code: bad-notice-format]

  • 🔥 FAIL GiveYouGlory.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). this font software is licensed under the sil open font license, version 1.1. this license is 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, kimberly geswein (kimberlygeswein.com kimberlygeswein@gmail.com). this font software is licensed under the sil open font license, version 1.1. this license is available with a faq at: http://scripts.sil.org/ofl" [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). this font software is licensed under the sil open font license, version 1.1. this license is available with a faq at: http://scripts.sil.org/ofl: ["METADATA.pb"]
  • copyright (c) 2010, kimberly geswein (kimberlygeswein.com). this font software is licensed under the sil open font license, version 1.1. this license is available with a faq at: http://scripts.sil.org/ofl: ["GiveYouGlory.ttf: Name Table entry", "GiveYouGlory.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/giveyouglory/GiveYouGlory.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+0100 LATIN CAPITAL LETTER A WITH MACRON: try adding latin-ext
  • U+0101 LATIN SMALL LETTER A WITH MACRON: try adding latin-ext
  • 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+0104 LATIN CAPITAL LETTER A WITH OGONEK: try adding latin-ext
  • U+0105 LATIN SMALL LETTER A WITH OGONEK: try adding latin-ext
  • 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+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX: try adding latin-ext
    ... and 127 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]
[35] ofl/giveyouglory/GiveYouGlory.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL Missing case-swapping counterpart for U+012B [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+012C [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 (-627) and hhea descent (-625) must be equal. [code: descender]
🔥 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)
  • ordfeminine (component a)
  • degree (component o)
  • twosuperior (component two)
  • threesuperior (component three)
  • onesuperior (component one)
  • ordmasculine (component o)
  • onequarter (component one)
  • onequarter (component four)
    ... and 10 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 Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • 🔥 FAIL Failed language shaping:
Message Languages
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: * fr_Latn (French)
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: * ca_Latn (Catalan)
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: * sv_Latn (Swedish)
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: * tr_Latn (Turkish)
The following mark characters are missing from the font: ̂, ̧, ̦, ̆, ̈, ̇
Mandatory orthography codepoints: * mt_Latn (Maltese)
The following base characters are missing from the font: GĦ, Ħ
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: * hu_Latn (Hungarian)
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: * lv_Latn (Latvian)
The following base characters are missing from the font: Ī
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: * 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: * 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: * da_Latn (Danish)
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: * cs_Latn (Czech)
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: * pl_Latn (Polish)
The following mark characters are missing from the font: ̇, ́, ̨
Mandatory orthography codepoints: * hr_Latn (Croatian)
The following mark characters are missing from the font: ̌, ́
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * nl_Latn (Dutch)
The following auxiliary characters are missing from the font: IJ
The following auxiliary characters are missing from the font: ij
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: * sv_Latn (Swedish)
The following auxiliary characters are missing from the font: Ī
Auxiliary orthography codepoints: * de_Latn (German)
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: ſ
The following auxiliary characters are missing from the font: ǔ
Auxiliary orthography codepoints: * en_Latn (English)
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: Ŋ
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: ȟ
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: * tr_Latn (Turkish)
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)
Auxiliary orthography codepoints: * ca_Latn (Catalan)
The following auxiliary characters are missing from the font: Ī * cs_Latn (Czech)
The following auxiliary characters are missing from the font: ĭ * cy_Latn (Welsh)
* es_Latn (Spanish)
* hu_Latn (Hungarian)
* pt_Latn (Portuguese)
* sk_Latn (Slovak)
🔥 FAIL Checking file is named canonically. (googlefonts/canonical_filename)
  • 🔥 FAIL Expected "GiveYouGlory-Regular.ttf". Got "GiveYouGlory.ttf". [code: bad-filename]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Give You Glory Give You Glory
Subfamily Name Regular Regular
Full Name Give You Glory Give You Glory Regular
Postscript Name GiveYouGlory GiveYouGlory-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 exclam (x=28, bounds are 32<->119) [code: points-out-of-bounds]

  • ⚠️ WARN exclam (x=121, bounds are 32<->119) [code: points-out-of-bounds]

  • ⚠️ WARN exclam (y=6, bounds are 7<->820) [code: points-out-of-bounds]

  • ⚠️ WARN exclam (y=826, bounds are 7<->820) [code: points-out-of-bounds]

  • ⚠️ WARN quotedbl (x=31, bounds are 32<->238) [code: points-out-of-bounds]

  • ⚠️ WARN quotedbl (y=695, bounds are 469<->694) [code: points-out-of-bounds]

  • ⚠️ WARN quotedbl (y=468, bounds are 469<->694) [code: points-out-of-bounds]

  • ⚠️ WARN quotedbl (x=245, bounds are 32<->238) [code: points-out-of-bounds]

  • ⚠️ WARN numbersign (x=23, bounds are 24<->1008) [code: points-out-of-bounds]

  • ⚠️ WARN numbersign (y=716, bounds are 1<->709) [code: points-out-of-bounds]

  • ⚠️ WARN numbersign (x=1009, bounds are 24<->1008) [code: points-out-of-bounds]

  • ⚠️ WARN numbersign (y=-4, bounds are 1<->709) [code: points-out-of-bounds]

  • ⚠️ WARN dollar (x=20, bounds are 31<->473) [code: points-out-of-bounds]

  • ⚠️ WARN dollar (x=477, bounds are 31<->473) [code: points-out-of-bounds]

  • ⚠️ WARN dollar (y=-114, bounds are -110<->935) [code: points-out-of-bounds]

  • ⚠️ WARN percent (y=-4, bounds are 4<->641) [code: points-out-of-bounds]

  • ⚠️ WARN percent (x=723, bounds are 22<->717) [code: points-out-of-bounds]

  • ⚠️ WARN percent (x=15, bounds are 22<->717) [code: points-out-of-bounds]

  • ⚠️ WARN percent (y=645, bounds are 4<->641) [code: points-out-of-bounds]

  • ⚠️ WARN ampersand (x=12, bounds are 17<->559) [code: points-out-of-bounds]

  • ⚠️ WARN ampersand (y=526, bounds are 5<->525) [code: points-out-of-bounds]

  • ⚠️ WARN ampersand (x=562, bounds are 17<->559) [code: points-out-of-bounds]

  • ⚠️ WARN ampersand (y=3, bounds are 5<->525) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (x=43, bounds are 47<->142) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (y=722, bounds are 448<->715) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (x=145, bounds are 47<->142) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (y=442, bounds are 448<->715) [code: points-out-of-bounds]

  • ⚠️ WARN parenleft (y=783, bounds are -189<->780) [code: points-out-of-bounds]

  • ⚠️ WARN parenleft (x=298, bounds are 22<->296) [code: points-out-of-bounds]

  • ⚠️ WARN parenright (x=14, bounds are 17<->213) [code: points-out-of-bounds]

  • ⚠️ WARN parenright (y=744, bounds are -248<->741) [code: points-out-of-bounds]

  • ⚠️ WARN parenright (y=-259, bounds are -248<->741) [code: points-out-of-bounds]

  • ⚠️ WARN asterisk (x=10, bounds are 14<->500) [code: points-out-of-bounds]

  • ⚠️ WARN asterisk (y=393, bounds are 0<->389) [code: points-out-of-bounds]

  • ⚠️ WARN asterisk (x=502, bounds are 14<->500) [code: points-out-of-bounds]

  • ⚠️ WARN asterisk (y=-4, bounds are 0<->389) [code: points-out-of-bounds]

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

  • ⚠️ WARN plus (y=625, bounds are 0<->623) [code: points-out-of-bounds]

  • ⚠️ WARN plus (x=599, bounds are 8<->595) [code: points-out-of-bounds]

  • ⚠️ WARN comma (x=37, bounds are 41<->182) [code: points-out-of-bounds]

  • ⚠️ WARN comma (y=178, bounds are -275<->173) [code: points-out-of-bounds]

  • ⚠️ WARN comma (x=189, bounds are 41<->182) [code: points-out-of-bounds]

  • ⚠️ WARN comma (y=-280, bounds are -275<->173) [code: points-out-of-bounds]

  • ⚠️ WARN hyphen (x=543, bounds are 20<->539) [code: points-out-of-bounds]

  • ⚠️ WARN hyphen (y=247, bounds are 249<->332) [code: points-out-of-bounds]

  • ⚠️ WARN period (x=198, bounds are 98<->193) [code: points-out-of-bounds]

  • ⚠️ WARN period (y=5, bounds are 6<->150) [code: points-out-of-bounds]

  • ⚠️ WARN slash (y=662, bounds are 5<->659) [code: points-out-of-bounds]

  • ⚠️ WARN slash (x=418, bounds are 4<->416) [code: points-out-of-bounds]

  • ⚠️ WARN slash (y=-5, bounds are 5<->659) [code: points-out-of-bounds]

  • ⚠️ WARN zero (x=14, bounds are 15<->386) [code: points-out-of-bounds]

  • ⚠️ WARN zero (y=664, bounds are 8<->662) [code: points-out-of-bounds]

  • ⚠️ WARN zero (x=390, bounds are 15<->386) [code: points-out-of-bounds]

  • ⚠️ WARN zero (y=-7, bounds are 8<->662) [code: points-out-of-bounds]

  • ⚠️ WARN one (x=23, bounds are 24<->119) [code: points-out-of-bounds]

  • ⚠️ WARN one (y=575, bounds are 11<->573) [code: points-out-of-bounds]

  • ⚠️ WARN one (y=-4, bounds are 11<->573) [code: points-out-of-bounds]

  • ⚠️ WARN two (x=23, bounds are 26<->653) [code: points-out-of-bounds]

  • ⚠️ WARN two (y=618, bounds are 3<->617) [code: points-out-of-bounds]

  • ⚠️ WARN two (x=665, bounds are 26<->653) [code: points-out-of-bounds]

  • ⚠️ WARN two (y=1, bounds are 3<->617) [code: points-out-of-bounds]

  • ⚠️ WARN three (y=657, bounds are 7<->656) [code: points-out-of-bounds]

  • ⚠️ WARN three (x=433, bounds are 26<->432) [code: points-out-of-bounds]

  • ⚠️ WARN three (y=-2, bounds are 7<->656) [code: points-out-of-bounds]

  • ⚠️ WARN four (y=593, bounds are 0<->584) [code: points-out-of-bounds]

  • ⚠️ WARN four (x=602, bounds are 8<->600) [code: points-out-of-bounds]

  • ⚠️ WARN four (y=-6, bounds are 0<->584) [code: points-out-of-bounds]

  • ⚠️ WARN five (x=21, bounds are 24<->449) [code: points-out-of-bounds]

  • ⚠️ WARN five (y=653, bounds are -11<->652) [code: points-out-of-bounds]

  • ⚠️ WARN five (x=457, bounds are 24<->449) [code: points-out-of-bounds]

  • ⚠️ WARN five (x=450, bounds are 24<->449) [code: points-out-of-bounds]

  • ⚠️ WARN five (y=-12, bounds are -11<->652) [code: points-out-of-bounds]

  • ⚠️ WARN six (x=19, bounds are 20<->504) [code: points-out-of-bounds]

  • ⚠️ WARN six (y=547, bounds are -7<->544) [code: points-out-of-bounds]

  • ⚠️ WARN six (x=507, bounds are 20<->504) [code: points-out-of-bounds]

  • ⚠️ WARN six (y=-12, bounds are -7<->544) [code: points-out-of-bounds]

  • ⚠️ WARN seven (x=11, bounds are 12<->613) [code: points-out-of-bounds]

  • ⚠️ WARN seven (y=697, bounds are -2<->693) [code: points-out-of-bounds]

  • ⚠️ WARN seven (x=615, bounds are 12<->613) [code: points-out-of-bounds]

  • ⚠️ WARN seven (y=-3, bounds are -2<->693) [code: points-out-of-bounds]

  • ⚠️ WARN eight (y=773, bounds are -3<->768) [code: points-out-of-bounds]

  • ⚠️ WARN eight (x=457, bounds are 24<->455) [code: points-out-of-bounds]

  • ⚠️ WARN eight (y=-4, bounds are -3<->768) [code: points-out-of-bounds]

  • ⚠️ WARN nine (x=18, bounds are 23<->370) [code: points-out-of-bounds]

  • ⚠️ WARN nine (y=725, bounds are -6<->709) [code: points-out-of-bounds]

  • ⚠️ WARN nine (y=-7, bounds are -6<->709) [code: points-out-of-bounds]

  • ⚠️ WARN colon (y=547, bounds are 189<->545) [code: points-out-of-bounds]

  • ⚠️ WARN semicolon (x=215, bounds are 49<->210) [code: points-out-of-bounds]

  • ⚠️ WARN semicolon (x=45, bounds are 49<->210) [code: points-out-of-bounds]

  • ⚠️ WARN semicolon (y=428, bounds are -296<->424) [code: points-out-of-bounds]

  • ⚠️ WARN less (x=6, bounds are 7<->614) [code: points-out-of-bounds]

  • ⚠️ WARN less (y=468, bounds are 4<->465) [code: points-out-of-bounds]

  • ⚠️ WARN less (x=626, bounds are 7<->614) [code: points-out-of-bounds]

  • ⚠️ WARN less (y=2, bounds are 4<->465) [code: points-out-of-bounds]

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

  • ⚠️ WARN equal (x=394, bounds are 6<->388) [code: points-out-of-bounds]

  • ⚠️ WARN equal (y=375, bounds are 131<->373) [code: points-out-of-bounds]

  • ⚠️ WARN greater (x=11, bounds are 15<->426) [code: points-out-of-bounds]

  • ⚠️ WARN greater (y=458, bounds are 0<->457) [code: points-out-of-bounds]

  • ⚠️ WARN greater (x=427, bounds are 15<->426) [code: points-out-of-bounds]

  • ⚠️ WARN greater (y=-8, bounds are 0<->457) [code: points-out-of-bounds]

  • ⚠️ WARN question (y=-6, bounds are -5<->852) [code: points-out-of-bounds]

  • ⚠️ WARN question (x=31, bounds are 33<->546) [code: points-out-of-bounds]

  • ⚠️ WARN question (y=857, bounds are -5<->852) [code: points-out-of-bounds]

  • ⚠️ WARN question (x=554, bounds are 33<->546) [code: points-out-of-bounds]

  • ⚠️ WARN at (y=936, bounds are -165<->932) [code: points-out-of-bounds]

  • ⚠️ WARN at (x=1093, bounds are 40<->1088) [code: points-out-of-bounds]

  • ⚠️ WARN at (y=-168, bounds are -165<->932) [code: points-out-of-bounds]

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

  • ⚠️ WARN A (y=791, bounds are -19<->784) [code: points-out-of-bounds]

  • ⚠️ WARN A (x=836, bounds are 29<->829) [code: points-out-of-bounds]

  • ⚠️ WARN A (y=-21, bounds are -19<->784) [code: points-out-of-bounds]

  • ⚠️ WARN B (x=11, bounds are 12<->659) [code: points-out-of-bounds]

  • ⚠️ WARN B (y=795, bounds are 7<->790) [code: points-out-of-bounds]

  • ⚠️ WARN B (x=660, bounds are 12<->659) [code: points-out-of-bounds]

  • ⚠️ WARN B (y=-5, bounds are 7<->790) [code: points-out-of-bounds]

  • ⚠️ WARN C (x=17, bounds are 20<->586) [code: points-out-of-bounds]

  • ⚠️ WARN C (y=745, bounds are 6<->740) [code: points-out-of-bounds]

  • ⚠️ WARN C (x=590, bounds are 20<->586) [code: points-out-of-bounds]

  • ⚠️ WARN C (y=-2, bounds are 6<->740) [code: points-out-of-bounds]

  • ⚠️ WARN D (y=757, bounds are 0<->746) [code: points-out-of-bounds]

  • ⚠️ WARN D (x=626, bounds are 37<->622) [code: points-out-of-bounds]

  • ⚠️ WARN D (y=-7, bounds are 0<->746) [code: points-out-of-bounds]

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

  • ⚠️ WARN E (y=765, bounds are -4<->763) [code: points-out-of-bounds]

  • ⚠️ WARN E (x=793, bounds are 13<->790) [code: points-out-of-bounds]

  • ⚠️ WARN E (y=-7, bounds are -4<->763) [code: points-out-of-bounds]

  • ⚠️ WARN F (y=743, bounds are 0<->739) [code: points-out-of-bounds]

  • ⚠️ WARN F (y=-2, bounds are 0<->739) [code: points-out-of-bounds]

  • ⚠️ WARN F (x=693, bounds are 24<->685) [code: points-out-of-bounds]

  • ⚠️ WARN G (x=22, bounds are 30<->784) [code: points-out-of-bounds]

  • ⚠️ WARN G (y=763, bounds are -35<->761) [code: points-out-of-bounds]

  • ⚠️ WARN G (x=787, bounds are 30<->784) [code: points-out-of-bounds]

  • ⚠️ WARN G (y=-41, bounds are -35<->761) [code: points-out-of-bounds]

  • ⚠️ WARN H (x=18, bounds are 19<->704) [code: points-out-of-bounds]

  • ⚠️ WARN H (y=790, bounds are 6<->786) [code: points-out-of-bounds]

  • ⚠️ WARN H (y=0, bounds are 6<->786) [code: points-out-of-bounds]

  • ⚠️ WARN I (x=30, bounds are 31<->111) [code: points-out-of-bounds]

  • ⚠️ WARN I (y=656, bounds are 3<->654) [code: points-out-of-bounds]

  • ⚠️ WARN I (x=112, bounds are 31<->111) [code: points-out-of-bounds]

  • ⚠️ WARN I (y=-6, bounds are 3<->654) [code: points-out-of-bounds]

  • ⚠️ WARN J (x=25, bounds are 35<->965) [code: points-out-of-bounds]

  • ⚠️ WARN J (y=777, bounds are 8<->776) [code: points-out-of-bounds]

  • ⚠️ WARN J (x=968, bounds are 35<->965) [code: points-out-of-bounds]

  • ⚠️ WARN J (y=0, bounds are 8<->776) [code: points-out-of-bounds]

  • ⚠️ WARN K (y=5, bounds are 7<->775) [code: points-out-of-bounds]

  • ⚠️ WARN K (x=23, bounds are 25<->838) [code: points-out-of-bounds]

  • ⚠️ WARN K (x=842, bounds are 25<->838) [code: points-out-of-bounds]

  • ⚠️ WARN L (x=10, bounds are 15<->669) [code: points-out-of-bounds]

  • ⚠️ WARN L (y=640, bounds are 0<->635) [code: points-out-of-bounds]

  • ⚠️ WARN L (y=-1, bounds are 0<->635) [code: points-out-of-bounds]

  • ⚠️ WARN M (x=14, bounds are 16<->952) [code: points-out-of-bounds]

  • ⚠️ WARN M (y=785, bounds are 4<->782) [code: points-out-of-bounds]

  • ⚠️ WARN M (x=956, bounds are 16<->952) [code: points-out-of-bounds]

  • ⚠️ WARN M (y=-4, bounds are 4<->782) [code: points-out-of-bounds]

  • ⚠️ WARN N (y=820, bounds are -1<->815) [code: points-out-of-bounds]

  • ⚠️ WARN N (y=-2, bounds are -1<->815) [code: points-out-of-bounds]

  • ⚠️ WARN O (x=21, bounds are 24<->636) [code: points-out-of-bounds]

  • ⚠️ WARN O (y=776, bounds are 7<->774) [code: points-out-of-bounds]

  • ⚠️ WARN O (y=-8, bounds are 7<->774) [code: points-out-of-bounds]

  • ⚠️ WARN P (x=26, bounds are 34<->533) [code: points-out-of-bounds]

  • ⚠️ WARN P (y=806, bounds are -68<->805) [code: points-out-of-bounds]

  • ⚠️ WARN P (x=546, bounds are 34<->533) [code: points-out-of-bounds]

  • ⚠️ WARN P (y=-71, bounds are -68<->805) [code: points-out-of-bounds]

  • ⚠️ WARN Q (y=795, bounds are -130<->776) [code: points-out-of-bounds]

  • ⚠️ WARN Q (x=602, bounds are -10<->601) [code: points-out-of-bounds]

  • ⚠️ WARN Q (y=-134, bounds are -130<->776) [code: points-out-of-bounds]

  • ⚠️ WARN R (x=42, bounds are 45<->708) [code: points-out-of-bounds]

  • ⚠️ WARN R (y=797, bounds are -45<->792) [code: points-out-of-bounds]

  • ⚠️ WARN R (x=709, bounds are 45<->708) [code: points-out-of-bounds]

  • ⚠️ WARN R (y=-48, bounds are -45<->792) [code: points-out-of-bounds]

  • ⚠️ WARN S (x=59, bounds are 68<->474) [code: points-out-of-bounds]

  • ⚠️ WARN S (y=780, bounds are 0<->774) [code: points-out-of-bounds]

  • ⚠️ WARN S (x=480, bounds are 68<->474) [code: points-out-of-bounds]

  • ⚠️ WARN S (y=-8, bounds are 0<->774) [code: points-out-of-bounds]

  • ⚠️ WARN T (x=18, bounds are 21<->846) [code: points-out-of-bounds]

  • ⚠️ WARN T (y=765, bounds are -2<->762) [code: points-out-of-bounds]

  • ⚠️ WARN T (x=860, bounds are 21<->846) [code: points-out-of-bounds]

  • ⚠️ WARN T (y=-3, bounds are -2<->762) [code: points-out-of-bounds]

  • ⚠️ WARN U (y=637, bounds are 1<->632) [code: points-out-of-bounds]

  • ⚠️ WARN U (x=808, bounds are 23<->804) [code: points-out-of-bounds]

  • ⚠️ WARN U (y=-9, bounds are 1<->632) [code: points-out-of-bounds]

  • ⚠️ WARN V (x=6, bounds are 14<->552) [code: points-out-of-bounds]

  • ⚠️ WARN V (y=614, bounds are 10<->611) [code: points-out-of-bounds]

  • ⚠️ WARN V (y=612, bounds are 10<->611) [code: points-out-of-bounds]

  • ⚠️ WARN V (x=557, bounds are 14<->552) [code: points-out-of-bounds]

  • ⚠️ WARN V (y=8, bounds are 10<->611) [code: points-out-of-bounds]

  • ⚠️ WARN W (x=12, bounds are 15<->873) [code: points-out-of-bounds]

  • ⚠️ WARN W (y=657, bounds are -1<->646) [code: points-out-of-bounds]

  • ⚠️ WARN W (x=879, bounds are 15<->873) [code: points-out-of-bounds]

  • ⚠️ WARN W (y=-17, bounds are -1<->646) [code: points-out-of-bounds]

  • ⚠️ WARN X (y=716, bounds are 0<->713) [code: points-out-of-bounds]

  • ⚠️ WARN X (x=541, bounds are 11<->536) [code: points-out-of-bounds]

  • ⚠️ WARN X (y=-3, bounds are 0<->713) [code: points-out-of-bounds]

  • ⚠️ WARN Y (y=797, bounds are 4<->790) [code: points-out-of-bounds]

  • ⚠️ WARN Y (y=2, bounds are 4<->790) [code: points-out-of-bounds]

  • ⚠️ WARN Z (y=784, bounds are -7<->779) [code: points-out-of-bounds]

  • ⚠️ WARN Z (x=759, bounds are 10<->758) [code: points-out-of-bounds]

  • ⚠️ WARN Z (y=-14, bounds are -7<->779) [code: points-out-of-bounds]

  • ⚠️ WARN bracketleft (x=20, bounds are 30<->607) [code: points-out-of-bounds]

  • ⚠️ WARN bracketleft (y=825, bounds are -147<->823) [code: points-out-of-bounds]

  • ⚠️ WARN backslash (y=39, bounds are 50<->722) [code: points-out-of-bounds]

  • ⚠️ WARN backslash (x=31, bounds are 33<->495) [code: points-out-of-bounds]

  • ⚠️ WARN backslash (y=725, bounds are 50<->722) [code: points-out-of-bounds]

  • ⚠️ WARN bracketright (x=5, bounds are 7<->554) [code: points-out-of-bounds]

  • ⚠️ WARN bracketright (y=875, bounds are -141<->872) [code: points-out-of-bounds]

  • ⚠️ WARN bracketright (y=-142, bounds are -141<->872) [code: points-out-of-bounds]

  • ⚠️ WARN asciicircum (x=57, bounds are 58<->366) [code: points-out-of-bounds]

  • ⚠️ WARN asciicircum (y=579, bounds are 586<->817) [code: points-out-of-bounds]

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

  • ⚠️ WARN underscore (y=134, bounds are 20<->132) [code: points-out-of-bounds]

  • ⚠️ WARN underscore (x=625, bounds are 8<->617) [code: points-out-of-bounds]

  • ⚠️ WARN underscore (y=18, bounds are 20<->132) [code: points-out-of-bounds]

  • ⚠️ WARN grave (x=49, bounds are 51<->244) [code: points-out-of-bounds]

  • ⚠️ WARN grave (y=761, bounds are 570<->757) [code: points-out-of-bounds]

  • ⚠️ WARN grave (x=247, bounds are 51<->244) [code: points-out-of-bounds]

  • ⚠️ WARN grave (y=564, bounds are 570<->757) [code: points-out-of-bounds]

  • ⚠️ WARN a (x=6, bounds are 9<->560) [code: points-out-of-bounds]

  • ⚠️ WARN a (y=649, bounds are 3<->640) [code: points-out-of-bounds]

  • ⚠️ WARN a (x=566, bounds are 9<->560) [code: points-out-of-bounds]

  • ⚠️ WARN a (y=-6, bounds are 3<->640) [code: points-out-of-bounds]

  • ⚠️ WARN b (x=19, bounds are 21<->485) [code: points-out-of-bounds]

  • ⚠️ WARN b (y=718, bounds are 0<->717) [code: points-out-of-bounds]

  • ⚠️ WARN b (x=492, bounds are 21<->485) [code: points-out-of-bounds]

  • ⚠️ WARN c (x=21, bounds are 26<->405) [code: points-out-of-bounds]

  • ⚠️ WARN c (y=523, bounds are -8<->512) [code: points-out-of-bounds]

  • ⚠️ WARN c (x=409, bounds are 26<->405) [code: points-out-of-bounds]

  • ⚠️ WARN c (y=-12, bounds are -8<->512) [code: points-out-of-bounds]

  • ⚠️ WARN d (x=9, bounds are 12<->379) [code: points-out-of-bounds]

  • ⚠️ WARN d (y=751, bounds are 8<->744) [code: points-out-of-bounds]

  • ⚠️ WARN d (y=2, bounds are 8<->744) [code: points-out-of-bounds]

  • ⚠️ WARN e (x=4, bounds are 9<->433) [code: points-out-of-bounds]

  • ⚠️ WARN e (y=549, bounds are -3<->540) [code: points-out-of-bounds]

  • ⚠️ WARN e (x=441, bounds are 9<->433) [code: points-out-of-bounds]

  • ⚠️ WARN e (y=-10, bounds are -3<->540) [code: points-out-of-bounds]

  • ⚠️ WARN f (x=18, bounds are 21<->454) [code: points-out-of-bounds]

  • ⚠️ WARN f (y=771, bounds are -2<->764) [code: points-out-of-bounds]

  • ⚠️ WARN f (x=465, bounds are 21<->454) [code: points-out-of-bounds]

  • ⚠️ WARN f (y=-4, bounds are -2<->764) [code: points-out-of-bounds]

  • ⚠️ WARN g (y=544, bounds are -575<->536) [code: points-out-of-bounds]

  • ⚠️ WARN g (y=-588, bounds are -575<->536) [code: points-out-of-bounds]

  • ⚠️ WARN h (x=29, bounds are 32<->522) [code: points-out-of-bounds]

  • ⚠️ WARN h (y=721, bounds are 4<->716) [code: points-out-of-bounds]

  • ⚠️ WARN h (x=523, bounds are 32<->522) [code: points-out-of-bounds]

  • ⚠️ WARN i (y=703, bounds are 2<->701) [code: points-out-of-bounds]

  • ⚠️ WARN i (x=97, bounds are 19<->93) [code: points-out-of-bounds]

  • ⚠️ WARN j (x=-122, bounds are -118<->143) [code: points-out-of-bounds]

  • ⚠️ WARN j (y=-510, bounds are -507<->564) [code: points-out-of-bounds]

  • ⚠️ WARN j (y=565, bounds are -507<->564) [code: points-out-of-bounds]

  • ⚠️ WARN k (x=9, bounds are 14<->665) [code: points-out-of-bounds]

  • ⚠️ WARN k (y=678, bounds are 4<->677) [code: points-out-of-bounds]

  • ⚠️ WARN l (y=784, bounds are -15<->771) [code: points-out-of-bounds]

  • ⚠️ WARN l (y=-17, bounds are -15<->771) [code: points-out-of-bounds]

  • ⚠️ WARN m (x=33, bounds are 37<->874) [code: points-out-of-bounds]

  • ⚠️ WARN m (y=589, bounds are 1<->588) [code: points-out-of-bounds]

  • ⚠️ WARN n (y=604, bounds are 5<->600) [code: points-out-of-bounds]

  • ⚠️ WARN n (x=543, bounds are 15<->540) [code: points-out-of-bounds]

  • ⚠️ WARN n (y=-6, bounds are 5<->600) [code: points-out-of-bounds]

  • ⚠️ WARN o (x=13, bounds are 17<->323) [code: points-out-of-bounds]

  • ⚠️ WARN o (x=328, bounds are 17<->323) [code: points-out-of-bounds]

  • ⚠️ WARN o (y=-17, bounds are -12<->452) [code: points-out-of-bounds]

  • ⚠️ WARN p (x=-10, bounds are -8<->357) [code: points-out-of-bounds]

  • ⚠️ WARN p (y=458, bounds are -343<->446) [code: points-out-of-bounds]

  • ⚠️ WARN p (x=363, bounds are -8<->357) [code: points-out-of-bounds]

  • ⚠️ WARN p (y=-348, bounds are -343<->446) [code: points-out-of-bounds]

  • ⚠️ WARN q (x=22, bounds are 24<->551) [code: points-out-of-bounds]

  • ⚠️ WARN q (y=564, bounds are -509<->553) [code: points-out-of-bounds]

  • ⚠️ WARN q (y=-522, bounds are -509<->553) [code: points-out-of-bounds]

  • ⚠️ WARN r (y=-8, bounds are -6<->642) [code: points-out-of-bounds]

  • ⚠️ WARN r (y=643, bounds are -6<->642) [code: points-out-of-bounds]

  • ⚠️ WARN r (x=515, bounds are 25<->511) [code: points-out-of-bounds]

  • ⚠️ WARN s (x=49, bounds are 50<->341) [code: points-out-of-bounds]

  • ⚠️ WARN s (x=344, bounds are 50<->341) [code: points-out-of-bounds]

  • ⚠️ WARN t (x=471, bounds are 11<->461) [code: points-out-of-bounds]

  • ⚠️ WARN t (y=-6, bounds are 0<->761) [code: points-out-of-bounds]

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

  • ⚠️ WARN u (y=571, bounds are 1<->569) [code: points-out-of-bounds]

  • ⚠️ WARN u (x=720, bounds are 32<->719) [code: points-out-of-bounds]

  • ⚠️ WARN u (y=-8, bounds are 1<->569) [code: points-out-of-bounds]

  • ⚠️ WARN v (y=503, bounds are 3<->497) [code: points-out-of-bounds]

  • ⚠️ WARN v (x=522, bounds are 1<->519) [code: points-out-of-bounds]

  • ⚠️ WARN v (y=2, bounds are 3<->497) [code: points-out-of-bounds]

  • ⚠️ WARN w (x=25, bounds are 26<->746) [code: points-out-of-bounds]

  • ⚠️ WARN w (y=557, bounds are 0<->551) [code: points-out-of-bounds]

  • ⚠️ WARN w (y=557, bounds are 0<->551) [code: points-out-of-bounds]

  • ⚠️ WARN w (x=749, bounds are 26<->746) [code: points-out-of-bounds]

  • ⚠️ WARN w (y=-14, bounds are 0<->551) [code: points-out-of-bounds]

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

  • ⚠️ WARN x (y=560, bounds are -24<->558) [code: points-out-of-bounds]

  • ⚠️ WARN x (y=-25, bounds are -24<->558) [code: points-out-of-bounds]

  • ⚠️ WARN y (x=563, bounds are 12<->561) [code: points-out-of-bounds]

  • ⚠️ WARN y (y=-627, bounds are -619<->528) [code: points-out-of-bounds]

  • ⚠️ WARN z (x=43, bounds are 48<->662) [code: points-out-of-bounds]

  • ⚠️ WARN z (y=629, bounds are 21<->628) [code: points-out-of-bounds]

  • ⚠️ WARN z (x=664, bounds are 48<->662) [code: points-out-of-bounds]

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

  • ⚠️ WARN braceleft (x=19, bounds are 24<->533) [code: points-out-of-bounds]

  • ⚠️ WARN braceleft (x=538, bounds are 24<->533) [code: points-out-of-bounds]

  • ⚠️ WARN braceleft (y=-144, bounds are -143<->842) [code: points-out-of-bounds]

  • ⚠️ WARN bar (x=4, bounds are 8<->166) [code: points-out-of-bounds]

  • ⚠️ WARN bar (y=711, bounds are -6<->709) [code: points-out-of-bounds]

  • ⚠️ WARN bar (y=-8, bounds are -6<->709) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (x=7, bounds are 18<->543) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (y=903, bounds are -206<->898) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (x=550, bounds are 18<->543) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (y=-209, bounds are -206<->898) [code: points-out-of-bounds]

  • ⚠️ WARN asciitilde (x=18, bounds are 26<->680) [code: points-out-of-bounds]

  • ⚠️ WARN asciitilde (x=686, bounds are 26<->680) [code: points-out-of-bounds]

  • ⚠️ WARN asciitilde (y=537, bounds are 540<->815) [code: points-out-of-bounds]

  • ⚠️ WARN cent (x=70, bounds are 73<->407) [code: points-out-of-bounds]

  • ⚠️ WARN cent (y=585, bounds are -115<->583) [code: points-out-of-bounds]

  • ⚠️ WARN cent (x=408, bounds are 73<->407) [code: points-out-of-bounds]

  • ⚠️ WARN cent (y=-117, bounds are -115<->583) [code: points-out-of-bounds]

  • ⚠️ WARN sterling (y=7, bounds are 8<->642) [code: points-out-of-bounds]

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

  • ⚠️ WARN sterling (y=646, bounds are 8<->642) [code: points-out-of-bounds]

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

  • ⚠️ WARN currency (y=541, bounds are 31<->535) [code: points-out-of-bounds]

  • ⚠️ WARN yen (y=918, bounds are 0<->911) [code: points-out-of-bounds]

  • ⚠️ WARN brokenbar (y=656, bounds are 3<->654) [code: points-out-of-bounds]

  • ⚠️ WARN brokenbar (x=112, bounds are 31<->111) [code: points-out-of-bounds]

  • ⚠️ WARN brokenbar (y=-6, bounds are 3<->654) [code: points-out-of-bounds]

  • ⚠️ WARN section (x=15, bounds are 25<->362) [code: points-out-of-bounds]

  • ⚠️ WARN section (x=364, bounds are 25<->362) [code: points-out-of-bounds]

  • ⚠️ WARN dieresis (x=77, bounds are 79<->404) [code: points-out-of-bounds]

  • ⚠️ WARN dieresis (x=410, bounds are 79<->404) [code: points-out-of-bounds]

  • ⚠️ WARN dieresis (y=561, bounds are 562<->714) [code: points-out-of-bounds]

  • ⚠️ WARN copyright (x=77, bounds are 80<->773) [code: points-out-of-bounds]

  • ⚠️ WARN copyright (y=951, bounds are -70<->945) [code: points-out-of-bounds]

  • ⚠️ WARN copyright (x=784, bounds are 80<->773) [code: points-out-of-bounds]

  • ⚠️ WARN copyright (y=-90, bounds are -70<->945) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (x=6, bounds are 7<->885) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (y=2, bounds are 4<->540) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (y=543, bounds are 4<->540) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (x=889, bounds are 7<->885) [code: points-out-of-bounds]

  • ⚠️ WARN logicalnot (x=10, bounds are 12<->425) [code: points-out-of-bounds]

  • ⚠️ WARN logicalnot (y=463, bounds are 208<->462) [code: points-out-of-bounds]

  • ⚠️ WARN logicalnot (y=204, bounds are 208<->462) [code: points-out-of-bounds]

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

  • ⚠️ WARN registered (y=905, bounds are -103<->902) [code: points-out-of-bounds]

  • ⚠️ WARN registered (x=889, bounds are 62<->886) [code: points-out-of-bounds]

  • ⚠️ WARN registered (y=-119, bounds are -103<->902) [code: points-out-of-bounds]

  • ⚠️ WARN macron (x=12, bounds are 15<->435) [code: points-out-of-bounds]

  • ⚠️ WARN macron (x=439, bounds are 15<->435) [code: points-out-of-bounds]

  • ⚠️ WARN macron (y=498, bounds are 499<->562) [code: points-out-of-bounds]

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

  • ⚠️ WARN plusminus (y=625, bounds are 0<->623) [code: points-out-of-bounds]

  • ⚠️ WARN plusminus (x=599, bounds are 8<->595) [code: points-out-of-bounds]

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

  • ⚠️ WARN acute (y=738, bounds are 614<->730) [code: points-out-of-bounds]

  • ⚠️ WARN acute (x=295, bounds are 34<->294) [code: points-out-of-bounds]

  • ⚠️ WARN acute (y=609, bounds are 614<->730) [code: points-out-of-bounds]

  • ⚠️ WARN mu (y=504, bounds are -74<->503) [code: points-out-of-bounds]

  • ⚠️ WARN paragraph (x=30, bounds are 35<->455) [code: points-out-of-bounds]

  • ⚠️ WARN paragraph (y=632, bounds are -33<->631) [code: points-out-of-bounds]

  • ⚠️ WARN paragraph (x=456, bounds are 35<->455) [code: points-out-of-bounds]

  • ⚠️ WARN paragraph (x=456, bounds are 35<->455) [code: points-out-of-bounds]

  • ⚠️ WARN paragraph (y=-38, bounds are -33<->631) [code: points-out-of-bounds]

  • ⚠️ WARN periodcentered (x=61, bounds are 65<->170) [code: points-out-of-bounds]

  • ⚠️ WARN periodcentered (y=319, bounds are 195<->315) [code: points-out-of-bounds]

  • ⚠️ WARN periodcentered (x=171, bounds are 65<->170) [code: points-out-of-bounds]

  • ⚠️ WARN periodcentered (y=187, bounds are 195<->315) [code: points-out-of-bounds]

  • ⚠️ WARN cedilla (y=29, bounds are -354<->19) [code: points-out-of-bounds]

  • ⚠️ WARN cedilla (x=396, bounds are 214<->386) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (x=11, bounds are 15<->603) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (y=-8, bounds are 0<->590) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (y=591, bounds are 0<->590) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (x=604, bounds are 15<->603) [code: points-out-of-bounds]

  • ⚠️ WARN Atilde (y=895, bounds are -19<->893) [code: points-out-of-bounds]

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

  • ⚠️ WARN Atilde (x=836, bounds are 29<->829) [code: points-out-of-bounds]

  • ⚠️ WARN Atilde (y=-21, bounds are -19<->893) [code: points-out-of-bounds]

  • ⚠️ WARN Adieresis (x=21, bounds are 22<->822) [code: points-out-of-bounds]

  • ⚠️ WARN Adieresis (x=829, bounds are 22<->822) [code: points-out-of-bounds]

  • ⚠️ WARN Adieresis (y=-21, bounds are -19<->950) [code: points-out-of-bounds]

  • ⚠️ WARN Aring (y=938, bounds are -19<->937) [code: points-out-of-bounds]

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

  • ⚠️ WARN Aring (x=836, bounds are 29<->829) [code: points-out-of-bounds]

  • ⚠️ WARN Aring (y=-21, bounds are -19<->937) [code: points-out-of-bounds]

  • ⚠️ WARN AE (y=-9, bounds are 0<->849) [code: points-out-of-bounds]

  • ⚠️ WARN AE (x=41, bounds are 46<->1201) [code: points-out-of-bounds]

  • ⚠️ WARN AE (y=851, bounds are 0<->849) [code: points-out-of-bounds]

  • ⚠️ WARN AE (x=1204, bounds are 46<->1201) [code: points-out-of-bounds]

  • ⚠️ WARN Eth (x=-57, bounds are -53<->618) [code: points-out-of-bounds]

  • ⚠️ WARN Eth (y=857, bounds are 0<->852) [code: points-out-of-bounds]

  • ⚠️ WARN Eth (x=622, bounds are -53<->618) [code: points-out-of-bounds]

  • ⚠️ WARN Eth (y=-7, bounds are 0<->852) [code: points-out-of-bounds]

  • ⚠️ WARN multiply (y=538, bounds are 94<->534) [code: points-out-of-bounds]

  • ⚠️ WARN multiply (y=93, bounds are 94<->534) [code: points-out-of-bounds]

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

  • ⚠️ WARN Thorn (x=443, bounds are 32<->436) [code: points-out-of-bounds]

  • ⚠️ WARN Thorn (y=-15, bounds are -9<->863) [code: points-out-of-bounds]

  • ⚠️ WARN germandbls (x=19, bounds are 23<->653) [code: points-out-of-bounds]

  • ⚠️ WARN germandbls (y=950, bounds are -123<->943) [code: points-out-of-bounds]

  • ⚠️ WARN germandbls (x=656, bounds are 23<->653) [code: points-out-of-bounds]

  • ⚠️ WARN aring (y=885, bounds are 3<->884) [code: points-out-of-bounds]

  • ⚠️ WARN aring (x=6, bounds are 9<->560) [code: points-out-of-bounds]

  • ⚠️ WARN aring (x=566, bounds are 9<->560) [code: points-out-of-bounds]

  • ⚠️ WARN aring (y=-6, bounds are 3<->884) [code: points-out-of-bounds]

  • ⚠️ WARN ae (x=6, bounds are 9<->610) [code: points-out-of-bounds]

  • ⚠️ WARN ae (y=649, bounds are 9<->640) [code: points-out-of-bounds]

  • ⚠️ WARN ae (x=618, bounds are 9<->610) [code: points-out-of-bounds]

  • ⚠️ WARN ae (y=7, bounds are 9<->640) [code: points-out-of-bounds]

  • ⚠️ WARN iacute (x=-40, bounds are -34<->226) [code: points-out-of-bounds]

  • ⚠️ WARN iacute (y=746, bounds are 2<->738) [code: points-out-of-bounds]

  • ⚠️ WARN iacute (x=227, bounds are -34<->226) [code: points-out-of-bounds]

  • ⚠️ WARN icircumflex (x=-109, bounds are -108<->176) [code: points-out-of-bounds]

  • ⚠️ WARN icircumflex (x=179, bounds are -108<->176) [code: points-out-of-bounds]

  • ⚠️ WARN idieresis (x=-27, bounds are -26<->154) [code: points-out-of-bounds]

  • ⚠️ WARN idieresis (x=157, bounds are -26<->154) [code: points-out-of-bounds]

  • ⚠️ WARN eth (y=546, bounds are -11<->545) [code: points-out-of-bounds]

  • ⚠️ WARN eth (x=358, bounds are 25<->355) [code: points-out-of-bounds]

  • ⚠️ WARN eth (x=356, bounds are 25<->355) [code: points-out-of-bounds]

  • ⚠️ WARN eth (y=-15, bounds are -11<->545) [code: points-out-of-bounds]

  • ⚠️ WARN eth (x=22, bounds are 25<->355) [code: points-out-of-bounds]

  • ⚠️ WARN thorn (x=0, bounds are 2<->357) [code: points-out-of-bounds]

  • ⚠️ WARN thorn (y=622, bounds are -168<->611) [code: points-out-of-bounds]

  • ⚠️ WARN thorn (x=363, bounds are 2<->357) [code: points-out-of-bounds]

  • ⚠️ WARN thorn (y=-173, bounds are -168<->611) [code: points-out-of-bounds]

  • ⚠️ WARN itilde (y=727, bounds are 2<->725) [code: points-out-of-bounds]

  • ⚠️ WARN imacron (x=-142, bounds are -139<->281) [code: points-out-of-bounds]

  • ⚠️ WARN imacron (x=285, bounds are -139<->281) [code: points-out-of-bounds]

  • ⚠️ WARN dotlessi (y=500, bounds are 2<->497) [code: points-out-of-bounds]

  • ⚠️ WARN jcircumflex (x=-112, bounds are -108<->198) [code: points-out-of-bounds]

  • ⚠️ WARN jcircumflex (y=-504, bounds are -501<->721) [code: points-out-of-bounds]

  • ⚠️ WARN jcircumflex (x=201, bounds are -108<->198) [code: points-out-of-bounds]

  • ⚠️ WARN Lslash (y=640, bounds are 0<->635) [code: points-out-of-bounds]

  • ⚠️ WARN Lslash (y=-1, bounds are 0<->635) [code: points-out-of-bounds]

  • ⚠️ WARN lslash (y=784, bounds are -15<->771) [code: points-out-of-bounds]

  • ⚠️ WARN lslash (y=-17, bounds are -15<->771) [code: points-out-of-bounds]

  • ⚠️ WARN Scaron (y=924, bounds are 0<->922) [code: points-out-of-bounds]

  • ⚠️ WARN Scaron (y=925, bounds are 0<->922) [code: points-out-of-bounds]

  • ⚠️ WARN Scaron (y=-8, bounds are 0<->922) [code: points-out-of-bounds]

  • ⚠️ WARN Scaron (x=480, bounds are 68<->474) [code: points-out-of-bounds]

  • ⚠️ WARN Scaron (x=59, bounds are 68<->474) [code: points-out-of-bounds]

  • ⚠️ WARN florin (x=23, bounds are 26<->459) [code: points-out-of-bounds]

  • ⚠️ WARN florin (y=771, bounds are -233<->764) [code: points-out-of-bounds]

  • ⚠️ WARN florin (x=470, bounds are 26<->459) [code: points-out-of-bounds]

  • ⚠️ WARN florin (y=-240, bounds are -233<->764) [code: points-out-of-bounds]

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

  • ⚠️ WARN circumflex (x=349, bounds are 62<->346) [code: points-out-of-bounds]

  • ⚠️ WARN circumflex (y=578, bounds are 584<->813) [code: points-out-of-bounds]

  • ⚠️ WARN caron (y=721, bounds are 580<->713) [code: points-out-of-bounds]

  • ⚠️ WARN caron (x=411, bounds are 90<->402) [code: points-out-of-bounds]

  • ⚠️ WARN breve (x=232, bounds are 43<->231) [code: points-out-of-bounds]

  • ⚠️ WARN breve (y=551, bounds are 553<->652) [code: points-out-of-bounds]

  • ⚠️ WARN dotaccent (x=68, bounds are 72<->177) [code: points-out-of-bounds]

  • ⚠️ WARN dotaccent (y=700, bounds are 575<->696) [code: points-out-of-bounds]

  • ⚠️ WARN dotaccent (x=178, bounds are 72<->177) [code: points-out-of-bounds]

  • ⚠️ WARN dotaccent (y=568, bounds are 575<->696) [code: points-out-of-bounds]

  • ⚠️ WARN ring (x=6, bounds are 10<->219) [code: points-out-of-bounds]

  • ⚠️ WARN ring (y=750, bounds are 552<->741) [code: points-out-of-bounds]

  • ⚠️ WARN ring (x=226, bounds are 10<->219) [code: points-out-of-bounds]

  • ⚠️ WARN ring (y=546, bounds are 552<->741) [code: points-out-of-bounds]

  • ⚠️ WARN ogonek (x=294, bounds are 36<->286) [code: points-out-of-bounds]

  • ⚠️ WARN ogonek (y=-266, bounds are -263<->50) [code: points-out-of-bounds]

  • ⚠️ WARN ogonek (x=30, bounds are 36<->286) [code: points-out-of-bounds]

  • ⚠️ WARN ogonek (y=53, bounds are -263<->50) [code: points-out-of-bounds]

  • ⚠️ WARN tilde (y=727, bounds are 617<->725) [code: points-out-of-bounds]

  • ⚠️ WARN tilde (y=615, bounds are 617<->725) [code: points-out-of-bounds]

  • ⚠️ WARN hungarumlaut (x=180, bounds are 185<->616) [code: points-out-of-bounds]

  • ⚠️ WARN hungarumlaut (y=784, bounds are 611<->774) [code: points-out-of-bounds]

  • ⚠️ WARN hungarumlaut (y=775, bounds are 611<->774) [code: points-out-of-bounds]

  • ⚠️ WARN hungarumlaut (y=602, bounds are 611<->774) [code: points-out-of-bounds]

  • ⚠️ WARN endash (x=448, bounds are 20<->444) [code: points-out-of-bounds]

  • ⚠️ WARN endash (y=246, bounds are 247<->328) [code: points-out-of-bounds]

  • ⚠️ WARN emdash (x=673, bounds are 20<->669) [code: points-out-of-bounds]

  • ⚠️ WARN emdash (y=242, bounds are 246<->327) [code: points-out-of-bounds]

  • ⚠️ WARN quoteleft (x=43, bounds are 47<->142) [code: points-out-of-bounds]

  • ⚠️ WARN quoteleft (y=722, bounds are 448<->715) [code: points-out-of-bounds]

  • ⚠️ WARN quoteleft (x=145, bounds are 47<->142) [code: points-out-of-bounds]

  • ⚠️ WARN quoteleft (y=442, bounds are 448<->715) [code: points-out-of-bounds]

  • ⚠️ WARN quoteright (x=43, bounds are 47<->142) [code: points-out-of-bounds]

  • ⚠️ WARN quoteright (y=722, bounds are 448<->715) [code: points-out-of-bounds]

  • ⚠️ WARN quoteright (x=145, bounds are 47<->142) [code: points-out-of-bounds]

  • ⚠️ WARN quoteright (y=442, bounds are 448<->715) [code: points-out-of-bounds]

  • ⚠️ WARN quotesinglbase (y=285, bounds are 12<->268) [code: points-out-of-bounds]

  • ⚠️ WARN quotesinglbase (x=132, bounds are 34<->131) [code: points-out-of-bounds]

  • ⚠️ WARN quotesinglbase (y=-4, bounds are 12<->268) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblleft (x=31, bounds are 32<->238) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblleft (y=695, bounds are 469<->694) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblleft (y=468, bounds are 469<->694) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblleft (x=245, bounds are 32<->238) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblright (x=31, bounds are 32<->238) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblright (y=695, bounds are 469<->694) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblright (y=468, bounds are 469<->694) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblright (x=245, bounds are 32<->238) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblbase (x=31, bounds are 32<->238) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblbase (y=-17, bounds are -16<->210) [code: points-out-of-bounds]

  • ⚠️ WARN quotedblbase (x=245, bounds are 32<->238) [code: points-out-of-bounds]

  • ⚠️ WARN dagger (y=711, bounds are -6<->709) [code: points-out-of-bounds]

  • ⚠️ WARN dagger (x=415, bounds are 36<->411) [code: points-out-of-bounds]

  • ⚠️ WARN dagger (y=-8, bounds are -6<->709) [code: points-out-of-bounds]

  • ⚠️ WARN daggerdbl (x=439, bounds are 55<->433) [code: points-out-of-bounds]

  • ⚠️ WARN daggerdbl (y=-10, bounds are -8<->707) [code: points-out-of-bounds]

  • ⚠️ WARN daggerdbl (x=54, bounds are 55<->433) [code: points-out-of-bounds]

  • ⚠️ WARN daggerdbl (y=709, bounds are -8<->707) [code: points-out-of-bounds]

  • ⚠️ WARN bullet (x=51, bounds are 57<->212) [code: points-out-of-bounds]

  • ⚠️ WARN bullet (y=410, bounds are 255<->406) [code: points-out-of-bounds]

  • ⚠️ WARN bullet (x=214, bounds are 57<->212) [code: points-out-of-bounds]

  • ⚠️ WARN bullet (y=246, bounds are 255<->406) [code: points-out-of-bounds]

  • ⚠️ WARN ellipsis (y=5, bounds are 6<->150) [code: points-out-of-bounds]

  • ⚠️ WARN ellipsis (y=5, bounds are 6<->150) [code: points-out-of-bounds]

  • ⚠️ WARN ellipsis (x=632, bounds are 98<->627) [code: points-out-of-bounds]

  • ⚠️ WARN ellipsis (y=5, bounds are 6<->150) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (x=6, bounds are 7<->614) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (y=468, bounds are 4<->465) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (x=626, bounds are 7<->614) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (y=2, bounds are 4<->465) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (x=11, bounds are 15<->426) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (y=458, bounds are 0<->457) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (x=427, bounds are 15<->426) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (y=-8, bounds are 0<->457) [code: points-out-of-bounds]

  • ⚠️ WARN fraction (y=662, bounds are 5<->659) [code: points-out-of-bounds]

  • ⚠️ WARN fraction (x=418, bounds are 4<->416) [code: points-out-of-bounds]

  • ⚠️ WARN fraction (y=-5, bounds are 5<->659) [code: points-out-of-bounds]

  • ⚠️ WARN Euro (x=704, bounds are 16<->700) [code: points-out-of-bounds]

  • ⚠️ WARN Euro (y=-2, bounds are 6<->740) [code: points-out-of-bounds]

  • ⚠️ WARN Euro (x=13, bounds are 16<->700) [code: points-out-of-bounds]

  • ⚠️ WARN Euro (y=745, bounds are 6<->740) [code: points-out-of-bounds]

  • ⚠️ WARN trademark (y=-3, bounds are -2<->806) [code: points-out-of-bounds]

  • ⚠️ WARN trademark (x=8, bounds are 11<->1609) [code: points-out-of-bounds]

  • ⚠️ WARN trademark (y=809, bounds are -2<->806) [code: points-out-of-bounds]

  • ⚠️ WARN trademark (x=1613, bounds are 11<->1609) [code: points-out-of-bounds]

  • ⚠️ WARN trademark (y=-4, bounds are -2<->806) [code: points-out-of-bounds]

  • ⚠️ WARN minus (x=448, bounds are 20<->444) [code: points-out-of-bounds]

  • ⚠️ WARN minus (y=246, bounds are 247<->328) [code: points-out-of-bounds]

  • ⚠️ WARN commaaccent (x=133, bounds are 137<->275) [code: points-out-of-bounds]

  • ⚠️ WARN commaaccent (y=-51, bounds are -353<->-57) [code: points-out-of-bounds]

  • ⚠️ WARN commaaccent (x=281, bounds are 137<->275) [code: points-out-of-bounds]

  • ⚠️ WARN undercommaaccent (x=133, bounds are 137<->275) [code: points-out-of-bounds]

  • ⚠️ WARN undercommaaccent (y=-51, bounds are -353<->-57) [code: points-out-of-bounds]

  • ⚠️ WARN undercommaaccent (x=281, bounds are 137<->275) [code: points-out-of-bounds]

  • ⚠️ WARN ibreve (x=157, bounds are -32<->156) [code: points-out-of-bounds]

⚠️ WARN Check accent of Lcaron, dcaron, lcaron, tcaron (alt_caron)
  • ⚠️ WARN Lcaron uses component: quoteright [code: bad-mark]

  • ⚠️ WARN dcaron uses component: quoteright [code: bad-mark]

  • ⚠️ WARN lcaron uses component: quoteright [code: bad-mark]

  • ⚠️ WARN tcaron uses component: quoteright [code: bad-mark]

⚠️ 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] [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 606 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=638: less
    width=441: greater
    width=479: minus
    width=433: logicalnot
    width=457: equal
    width=451: multiply
    width=434: divide [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) 2010, Kimberly Geswein (kimberlygeswein.com). This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL [code: double-spaces]

  • ⚠️ WARN Name table record 1/0/0/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 available with a FAQ at: http://scripts.sil.org/OFL [code: double-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 available with a FAQ at: http://scripts.sil.org/OFL [code: double-spaces]

  • ⚠️ WARN Name table record 3/1/1033/COPYRIGHT_NOTICE 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 available with a FAQ at: http://scripts.sil.org/OFL [code: double-spaces]

  • ⚠️ WARN Name table record 3/1/1033/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 available with a FAQ at: http://scripts.sil.org/OFL [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 available with a FAQ at: http://scripts.sil.org/OFL [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
  • undercommaaccent
  • Imacron
  • T_h
  • ibreve [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 Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • J (U+004A): from (840.0, 697.0) to (478.0, 650.0) is colinear with segment from (478.0, 650.0) to (446.0, 643.0)
  • Jcircumflex (U+0134): from (840.0, 697.0) to (478.0, 650.0) is colinear with segment from (478.0, 650.0) to (446.0, 643.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:
  • exclamdown (U+00A1) has a counter-clockwise outer contour
  • exclamdown (U+00A1) has a counter-clockwise outer contour
  • Scaron (U+0160) 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:
  • b (U+0062): Quad(QuadBez { p0: (169.0, 320.0), p1: (152.0, 242.0), p2: (157.0, 118.0) })/Quad(QuadBez { p0: (157.0, 118.0), p1: (157.0, 121.0), p2: (159.0, 126.5) }) = 2.309062789025744 degrees
  • currency (U+00A4): Quad(QuadBez { p0: (348.5, 110.0), p1: (341.0, 118.0), p2: (332.0, 127.0) })/Line(Line { p0: (332.0, 127.0), p1: (376.0, 84.0) }) = 0.6585431775634711 degrees
  • Thorn (U+00DE): Quad(QuadBez { p0: (81.0, 562.0), p1: (77.0, 517.0), p2: (77.0, 493.0) })/Quad(QuadBez { p0: (77.0, 493.0), p1: (82.0, 515.0), p2: (92.0, 542.0) }) = 12.80426606528674 degrees [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • registered (U+00AE): Quad(QuadBez { p0: (572.0, 152.0), p1: (532.0, 175.0), p2: (509.5, 198.5) }) has the same coordinates as a previous segment.
  • registered (U+00AE): Quad(QuadBez { p0: (509.5, 198.5), p1: (487.0, 222.0), p2: (467.0, 244.5) }) has the same coordinates as a previous segment.
  • registered (U+00AE): Quad(QuadBez { p0: (467.0, 244.5), p1: (447.0, 267.0), p2: (421.0, 287.5) }) has the same coordinates as a previous segment.
  • registered (U+00AE): Quad(QuadBez { p0: (421.0, 287.5), p1: (395.0, 308.0), p2: (349.0, 324.0) }) has the same coordinates as a previous segment.
  • registered (U+00AE): Quad(QuadBez { p0: (349.0, 324.0), p1: (343.0, 304.0), p2: (339.0, 277.0) }) has the same coordinates as a previous segment.
  • registered (U+00AE): Quad(QuadBez { p0: (339.0, 277.0), p1: (335.0, 250.0), p2: (332.5, 222.5) }) has the same coordinates as a previous segment.
  • registered (U+00AE): Quad(QuadBez { p0: (332.5, 222.5), p1: (330.0, 195.0), p2: (328.5, 170.5) }) has the same coordinates as a previous segment.
  • registered (U+00AE): Quad(QuadBez { p0: (328.5, 170.5), p1: (327.0, 146.0), p2: (325.0, 133.0) }) has the same coordinates as a previous segment.
  • registered (U+00AE): Quad(QuadBez { p0: (325.0, 133.0), p1: (312.0, 117.0), p2: (300.0, 119.0) }) has the same coordinates as a previous segment.
    ... and 48 others [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 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]
⚠️ 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 "Give You Glory" 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:
GiveYouGlory.ttf
Dehinted Size 42564
Hinted Size 43012
Increase 448
Change 1.1 %
ℹ️ 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]
[1] ofl/giveyouglory/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]

[2] ofl/giveyouglory/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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
109 571 9 97 75
13% 66% 1% 11% 9%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

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

"copyright (c) 2012, denis masharov denis.masharov@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 "Glass Antiqua".
[code: incorrect-ofl-body-text]

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

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

[9] ofl/glassantiqua
🔥 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 GlassAntiqua-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, denis masharov denis.masharov@gmail.com." [code: bad-notice-format]

  • 🔥 FAIL GlassAntiqua-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, denis masharov denis.masharov@gmail.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) 2011, denis masharov denis.masharov@gmail.com." [code: bad-notice-format]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/glassantiqua/GlassAntiqua-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE
  • 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 for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/glassantiqua/GlassAntiqua-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+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+203C DOUBLE EXCLAMATION MARK: 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 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]
[28] ofl/glassantiqua/GlassAntiqua-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 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 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 Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • 🔥 FAIL Failed language shaping:
Message Languages
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: * ca_Latn (Catalan)
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: * nb_Latn (Norwegian Bokmål)
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: * 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: * 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: * tr_Latn (Turkish)
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: * en_Latn (English)
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: * es_Latn (Spanish)
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: * is_Latn (Icelandic)
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: * it_Latn (Italian)
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: * ro_Latn (Romanian)
The following base characters are missing from the font: Ț, ț
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: * 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: * mt_Latn (Maltese)
The following mark characters are missing from the font: ̀, ̇, ̂
Mandatory orthography codepoints: * cs_Latn (Czech)
The following mark characters are missing from the font: ̊, ̌, ́
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * ca_Latn (Catalan)
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: * 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: ǔ
Auxiliary orthography codepoints: * it_Latn (Italian)
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: * es_Latn (Spanish)
The following auxiliary characters are missing from the font: ª * pt_Latn (Portuguese)
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: * 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: * nl_Latn (Dutch)
The following auxiliary characters are missing from the font: IJ
The following auxiliary characters are missing from the font: ij
Auxiliary orthography codepoints: * pl_Latn (Polish)
The following auxiliary characters are missing from the font: ẞ * tr_Latn (Turkish)
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Glass Antiqua Glass Antiqua
Subfamily Name Regular Regular
Full Name Glass Antiqua Glass Antiqua Regular
Postscript Name GlassAntiqua-Regular GlassAntiqua-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 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.001" [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.001" [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.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 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 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 252 among a set of 12 math glyphs.
    The following math glyphs have a different width, though:
    width=397: approxequal
    width=254: multiply
    width=322: minus
    width=223: lessequal, greaterequal
    width=272: plusminus
    width=190: less, greater
    width=293: 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 [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=102,Y=640 (should be at cap-height 638?)
    • numbersign (U+0023): X=330,Y=639 (should be at cap-height 638?)
    • numbersign (U+0023): X=493,Y=639 (should be at cap-height 638?)
    • numbersign (U+0023): X=308,Y=1 (should be at baseline 0?)
    • numbersign (U+0023): X=144,Y=1 (should be at baseline 0?)
    • dollar (U+0024): X=229,Y=-2 (should be at baseline 0?)
    • percent (U+0025): X=117.5,Y=-2 (should be at baseline 0?)
    • slash (U+002F): X=13.5,Y=-2 (should be at baseline 0?)
    • one (U+0031): X=129,Y=637 (should be at cap-height 638?)
      ... and 77 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 (54.0, 151.0) to (30.0, 608.0) is colinear with segment from (30.0, 608.0) to (30.0, 613.0)
  • exclam (U+0021): from (114.0, 613.0) to (114.0, 608.0) is colinear with segment from (114.0, 608.0) to (91.0, 151.0)
  • exclamdown (U+00A1): from (116.0, 491.0) to (139.0, 34.0) is colinear with segment from (139.0, 34.0) to (139.0, 29.0)
  • exclamdown (U+00A1): from (55.0, 29.0) to (55.0, 34.0) is colinear with segment from (55.0, 34.0) to (79.0, 491.0) [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • seven (U+0037): Quad(QuadBez { p0: (161.0, 389.5), p1: (204.0, 486.0), p2: (263.0, 558.0) })/Quad(QuadBez { p0: (263.0, 558.0), p1: (248.0, 544.0), p2: (211.5, 544.0) }) = 7.642219689121119 degrees
  • at (U+0040): Quad(QuadBez { p0: (590.0, 181.5), p1: (601.0, 125.0), p2: (641.0, 99.0) })/Quad(QuadBez { p0: (641.0, 99.0), p1: (639.0, 101.0), p2: (641.0, 101.0) }) = 11.976132444203394 degrees [code: found-jaggy-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 "Glass Antiqua" 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:
GlassAntiqua-Regular.ttf
Dehinted Size 62988
Hinted Size 63012
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: 1.001, 1.001 [code: version-not-detected]
[2] ofl/glassantiqua/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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
27 30 9 109 69
11% 12% 4% 45% 28%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[2] ofl/goblinone/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]
[11] ofl/goblinone
🔥 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+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 GoblinOne.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 "goblin".

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

  • 🔥 FAIL GoblinOne.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 "goblin".

this font software is licensed under the sil open font license,
version 1.1. this license is 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) 2011, sorkin type co (www.sorkintype.com eben@eyebytes.com) with reserved font name "goblin". this font software is licensed under the sil open font license, version 1.1. this license is available with a faq at: http://scripts.sil.org/ofl" [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 "goblin".

this font software is licensed under the sil open font license,
version 1.1. this license is available with a faq at:
http://scripts.sil.org/ofl: ["GoblinOne.ttf: Name Table entry", "GoblinOne.ttf: Name Table entry"]

🔥 FAIL Check copyright namerecords match license file. (googlefonts/name/license)
  • 🔥 FAIL License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 is not specified for that.
    Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1."
    Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org" [code: wrong]

  • 🔥 FAIL License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 is not specified for that.
    Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1."
    Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org" [code: wrong]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/goblinone/GoblinOne.ttf missing required codepoints:
  • 0x2026: HORIZONTAL ELLIPSIS
  • 0x2122: TRADE MARK SIGN
  • 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/goblinone/GoblinOne.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 30 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) 2011, Sorkin Type Co (www.sorkintype.com eben@eyebytes.com) with Reserved Font Name "Goblin". This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
ℹ️ 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]
[28] ofl/goblinone/GoblinOne.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+0137 [code: missing-case-counterparts]

  • 🔥 FAIL Missing case-swapping counterpart for U+0154 [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+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 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 COPYRIGHT_NOTICE on platform 1 contains a line-break. [code: line-break]

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

🔥 FAIL Checking file is named canonically. (googlefonts/canonical_filename)
  • 🔥 FAIL Expected "GoblinOne-Regular.ttf". Got "GoblinOne.ttf". [code: bad-filename]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Goblin One Goblin One
Subfamily Name Regular Regular
Full Name Goblin One Goblin One Regular
Postscript Name GoblinOne GoblinOne-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.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 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 1294 among a set of 8 math glyphs.
    The following math glyphs have a different width, though:
    width=982: less, greater
    width=1247: multiply
    width=1404: 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
  • foundryicon
  • commaaccent
  • grave.case
  • acute.case
  • circumflex.case
  • dieresis.case
  • ring.case
    ... and 1 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 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 ("Goblin") that differs from the currently used family name (Goblin One), which is fine. [code: legacy-familyname]

  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Goblin") that differs from the currently used family name (Goblin One), 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:
    • two (U+0032): X=574,Y=1436.5 (should be at cap-height 1434?)
    • three (U+0033): X=566,Y=-2.5 (should be at baseline 0?)
    • eight (U+0038): X=582,Y=1432.5 (should be at cap-height 1434?)
    • at (U+0040): X=1556,Y=1435 (should be at cap-height 1434?)
    • B (U+0042): X=195,Y=1435.5 (should be at cap-height 1434?)
    • B (U+0042): X=209.5,Y=-1.5 (should be at baseline 0?)
    • D (U+0044): X=207,Y=1435.5 (should be at cap-height 1434?)
    • D (U+0044): X=224.5,Y=-2 (should be at baseline 0?)
    • P (U+0050): X=235,Y=1436 (should be at cap-height 1434?)
      ... and 30 others [code: found-misalignments]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • three (U+0033): Quad(QuadBez { p0: (1442.0, 744.0), p1: (1390.0, 734.0), p2: (1342.0, 730.0) })/Quad(QuadBez { p0: (1342.0, 730.0), p1: (1395.0, 730.0), p2: (1455.0, 725.0) }) = 4.763641690726143 degrees
  • B (U+0042): Quad(QuadBez { p0: (1698.5, 757.5), p1: (1625.0, 737.0), p2: (1531.0, 727.0) })/Quad(QuadBez { p0: (1531.0, 727.0), p1: (1641.0, 716.0), p2: (1731.0, 694.0) }) = 11.783049544707344 degrees
  • m (U+006D): Line(Line { p0: (2553.0, 584.0), p1: (2553.0, 240.0) })/Line(Line { p0: (2553.0, 240.0), p1: (2554.0, 244.0) }) = 14.036243467926457 degrees
  • threesuperior (U+00B3): Quad(QuadBez { p0: (966.0, 1473.0), p1: (932.0, 1467.0), p2: (903.0, 1464.0) })/Quad(QuadBez { p0: (903.0, 1464.0), p1: (935.0, 1464.0), p2: (974.0, 1461.0) }) = 5.906141113770497 degrees
  • threequarters (U+00BE): Quad(QuadBez { p0: (999.5, 1045.5), p1: (946.0, 1031.0), p2: (903.0, 1027.0) })/Quad(QuadBez { p0: (903.0, 1027.0), p1: (935.0, 1027.0), p2: (972.5, 1022.0) }) = 5.3145456699447315 degrees [code: found-jaggy-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 Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Goblin 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:
GoblinOne.ttf
Dehinted Size 36712
Hinted Size 36736
Increase 24
Change 0.1 %
ℹ️ 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.001, Version 1.001 [code: version-not-detected]
[1] ofl/goblinone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (GoblinOne). The name must end with Regular or Italic [code: mismatch]

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

[2] ofl/goblinone/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 "Goblin".
[code: incorrect-ofl-body-text]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
52 20 9 99 76
20% 8% 4% 39% 30%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[30] ofl/gochihand/GochiHand-Regular.ttf
🔥 FAIL Checking font version fields (head and name table). (opentype/font_version)
  • 🔥 FAIL Font version mismatch: head table: 1, name table: 1.001 [code: mismatch]
🔥 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 Missing case-swapping counterpart for U+0133 [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 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 Gochi Hand Gochi Hand
Subfamily Name Regular Regular
Full Name Gochi Hand Gochi Hand Regular
Postscript Name GochiHand-Regular GochiHand-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]
⚠️ 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+0326 (commaaccent) [code: mark-chars]
⚠️ 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 989 among a set of 8 math glyphs.
    The following math glyphs have a different width, though:
    width=995: plusminus, plus
    width=930: equal
    width=1186: logicalnot
    width=670: greater, less [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, Huerta Tipografica (www.huertatipografica.com.ar), with Reserved Font Names "Gochi" and "Gochi Hand" [code: double-spaces]

  • ⚠️ WARN Name table record 3/1/1033/COPYRIGHT_NOTICE has double spaces:
    Copyright (c) 2011, Huerta Tipografica (www.huertatipografica.com.ar), with Reserved Font Names "Gochi" and "Gochi Hand" [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
  • foundry [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:
    • quotedbl (U+0022): X=156.5,Y=973 (should be at cap-height 975?)
    • quotedbl (U+0022): X=485.5,Y=973 (should be at cap-height 975?)
    • ampersand (U+0026): X=540,Y=1 (should be at baseline 0?)
    • quotesingle (U+0027): X=156.5,Y=973 (should be at cap-height 975?)
    • eight (U+0038): X=271,Y=973 (should be at cap-height 975?)
    • C (U+0043): X=657,Y=2 (should be at baseline 0?)
    • E (U+0045): X=407,Y=2 (should be at baseline 0?)
    • F (U+0046): X=1103,Y=976 (should be at cap-height 975?)
    • I (U+0049): X=187.5,Y=-1.5 (should be at baseline 0?)
      ... and 75 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • yen (U+00A5): from (676.0, 92.0) to (846.0, 104.0) is colinear with segment from (846.0, 104.0) to (856.0, 104.0)
  • onequarter (U+00BC): from (1308.0, 693.0) to (1351.0, 570.0) is colinear with segment from (1351.0, 570.0) to (1423.0, 351.0)
  • threequarters (U+00BE): from (1431.0, 693.0) to (1474.0, 570.0) is colinear with segment from (1474.0, 570.0) to (1546.0, 351.0)
  • foursuperior (U+2074): from (477.0, 1124.0) to (520.0, 1001.0) is colinear with segment from (520.0, 1001.0) to (592.0, 782.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 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 "Gochi Hand" 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:
GochiHand-Regular.ttf
Dehinted Size 36932
Hinted Size 37352
Increase 420
Change 1.1 %
ℹ️ 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 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/gochihand/DESCRIPTION.en_us.html
⚠️ 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]
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)
[2] ofl/gochihand/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, juan pablo del peral (juandelperal@htfonts.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 "Gochi" and "Gochi Hand"
[code: incorrect-ofl-body-text]

[11] ofl/gochihand
🔥 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 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 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 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 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 GochiHand-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, huerta tipografica (www.huertatipografica.com.ar), with reserved font names "gochi" and "gochi hand"" [code: bad-notice-format]

  • 🔥 FAIL GochiHand-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, huerta tipografica (www.huertatipografica.com.ar), with reserved font names "gochi" and "gochi hand"" [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, ht fonts (www.htfonts.com info@htfonts.com), with reserved font names "gochi" and "gochi hand"" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2011, huerta tipografica (www.huertatipografica.com.ar), with reserved font names "gochi" and "gochi hand": ["GochiHand-Regular.ttf: Name Table entry", "GochiHand-Regular.ttf: Name Table entry"]
  • copyright (c) 2011, ht fonts (www.htfonts.com info@htfonts.com), with reserved font names "gochi" and "gochi hand": ["METADATA.pb"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/gochihand/GochiHand-Regular.ttf missing required codepoints:
  • 0x2122: TRADE MARK SIGN
  • 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/gochihand/GochiHand-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+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
  • 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
  • U+0137 LATIN SMALL LETTER K WITH CEDILLA: try adding latin-ext
  • U+0138 LATIN SMALL LETTER KRA: try adding latin-ext
  • U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT: try adding latin-ext
    ... and 19 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) 2011, HT Fonts (www.htfonts.com info@htfonts.com), with Reserved Font Names "Gochi" and "Gochi Hand"") 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/gochihand/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Gochi Hand" does not match post_script_name="GochiHand-Regular". [code: mismatch]

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

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
31 30 10 108 66
13% 12% 4% 44% 27%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[11] ofl/gravitasone
🔥 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 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 GravitasOne.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 "gravitas".

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

  • 🔥 FAIL GravitasOne.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 "gravitas".

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

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:

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

🔥 FAIL Check copyright namerecords match license file. (googlefonts/name/license)
  • 🔥 FAIL License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 1 is not specified for that.
    Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. "
    Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org" [code: wrong]

  • 🔥 FAIL License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 is not specified for that.
    Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. "
    Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org" [code: wrong]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/gravitasone/GravitasOne.ttf missing required codepoints:
  • 0x2026: HORIZONTAL ELLIPSIS
  • 0x2122: TRADE MARK SIGN
  • 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/gravitasone/GravitasOne.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+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+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
  • U+0137 LATIN SMALL LETTER K WITH CEDILLA: try adding latin-ext
  • U+0138 LATIN SMALL LETTER KRA: try adding latin-ext
  • U+0140 LATIN SMALL LETTER L WITH MIDDLE DOT: try adding latin-ext
    ... and 11 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) 2011, Sorkin Type Co (www.sorkintype.com eben@eyebytes.com) with Reserved Font Name "Gravitas". This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]
ℹ️ 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]
[27] ofl/gravitasone/GravitasOne.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 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 Name table records must not have trailing spaces. (name/trailing_spaces)
  • 🔥 FAIL Name table record 1/0/0/LICENSE_DESCRIPTION has trailing spaces that must be removed:
    This Font Software is licensed under the SIL Open Font License, Version 1.1. [code: trailing-space]

  • 🔥 FAIL Name table record 3/1/1033/LICENSE_DESCRIPTION has trailing spaces that must be removed:
    This Font Software is licensed under the SIL Open Font License, Version 1.1. [code: trailing-space]

🔥 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 COPYRIGHT_NOTICE on platform 1 contains a line-break. [code: line-break]

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

🔥 FAIL Checking file is named canonically. (googlefonts/canonical_filename)
  • 🔥 FAIL Expected "GravitasOne-Regular.ttf". Got "GravitasOne.ttf". [code: bad-filename]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Gravitas One Gravitas One
Subfamily Name Regular Regular
Full Name Gravitas One Gravitas One Regular
Postscript Name GravitasOne GravitasOne-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.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 1552 but it should be 1526 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 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 1073 among a set of 8 math glyphs.
    The following math glyphs have a different width, though:
    width=1070: plus
    width=1078: equal
    width=817: greater, less
    width=1264: 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
  • grave.case
  • acute.case
  • circumflex.case
  • dieresis.case
  • tilde.case
  • ring.case
  • caron.case
    ... and 1 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 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 ("Gravitas") that differs from the currently used family name (Gravitas One), which is fine. [code: legacy-familyname]

  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Gravitas") that differs from the currently used family name (Gravitas One), 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:
    • quotedbl (U+0022): X=542.5,Y=1419.5 (should be at cap-height 1417?)
    • quotedbl (U+0022): X=827,Y=1419 (should be at cap-height 1417?)
    • quotedbl (U+0022): X=132.5,Y=1419.5 (should be at cap-height 1417?)
    • quotedbl (U+0022): X=417,Y=1419 (should be at cap-height 1417?)
    • quotesingle (U+0027): X=132.5,Y=1419.5 (should be at cap-height 1417?)
    • quotesingle (U+0027): X=417,Y=1419 (should be at cap-height 1417?)
    • three (U+0033): X=1116,Y=1416.5 (should be at cap-height 1417?)
    • seven (U+0037): X=341.5,Y=1418.5 (should be at cap-height 1417?)
    • Q (U+0051): X=1306,Y=2 (should be at baseline 0?)
      ... and 25 others [code: found-misalignments]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • three (U+0033): Quad(QuadBez { p0: (1312.5, 825.0), p1: (1138.0, 741.0), p2: (774.0, 737.0) })/Quad(QuadBez { p0: (774.0, 737.0), p1: (945.0, 735.0), p2: (1084.5, 715.5) }) = 1.2996941306347574 degrees
  • B (U+0042): Quad(QuadBez { p0: (1403.5, 765.0), p1: (1291.0, 745.0), p2: (1134.0, 744.0) })/Quad(QuadBez { p0: (1134.0, 744.0), p1: (1219.0, 743.0), p2: (1303.0, 738.5) }) = 1.0389732337151958 degrees
  • R (U+0052): Quad(QuadBez { p0: (1455.5, 719.5), p1: (1321.0, 695.0), p2: (1120.0, 694.0) })/Quad(QuadBez { p0: (1120.0, 694.0), p1: (1300.0, 693.0), p2: (1427.0, 676.5) }) = 0.6033578890349798 degrees
  • sterling (U+00A3): Quad(QuadBez { p0: (1425.0, 1296.5), p1: (1447.0, 1294.0), p2: (1469.0, 1288.0) })/Quad(QuadBez { p0: (1469.0, 1288.0), p1: (1406.0, 1317.0), p2: (1313.0, 1337.0) }) = 9.462322208025613 degrees
  • registered (U+00AE): Quad(QuadBez { p0: (1162.5, 721.0), p1: (1093.0, 705.0), p2: (985.0, 703.0) })/Quad(QuadBez { p0: (985.0, 703.0), p1: (1086.0, 702.0), p2: (1154.0, 690.0) }) = 1.628178100122158 degrees
  • threesuperior (U+00B3): Quad(QuadBez { p0: (816.0, 1175.5), p1: (713.0, 1125.0), p2: (514.0, 1123.0) })/Quad(QuadBez { p0: (514.0, 1123.0), p1: (607.0, 1122.0), p2: (686.0, 1114.5) }) = 1.191877501644274 degrees
  • threequarters (U+00BE): Quad(QuadBez { p0: (816.0, 1075.5), p1: (713.0, 1025.0), p2: (514.0, 1023.0) })/Quad(QuadBez { p0: (514.0, 1023.0), p1: (607.0, 1022.0), p2: (686.0, 1014.5) }) = 1.191877501644274 degrees
  • Aring (U+00C5): Line(Line { p0: (680.0, 1417.0), p1: (816.0, 1417.0) })/Quad(QuadBez { p0: (816.0, 1417.0), p1: (800.0, 1421.0), p2: (785.0, 1428.0) }) = 14.036243467926457 degrees
  • Aring (U+00C5): Quad(QuadBez { p0: (974.0, 1428.0), p1: (958.0, 1421.0), p2: (942.0, 1417.0) })/Line(Line { p0: (942.0, 1417.0), p1: (1119.0, 1417.0) }) = 14.036243467926484 degrees
    ... and 3 others [code: found-jaggy-segments]
⚠️ 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 <= 65535 | - Use grid-fitting |

- Use grayscale rendering
[code: ranges]
  • ⚠️ WARN The gasp range 0xFFFF value 0x03 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 "Gravitas 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:
GravitasOne.ttf
Dehinted Size 41424
Hinted Size 41448
Increase 24
Change 0.1 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    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.001, Version 1.001 [code: version-not-detected]
[2] ofl/gravitasone/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/gravitasone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (GravitasOne). The name must end with Regular or Italic [code: mismatch]

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

[2] ofl/gravitasone/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 "Gravitas".
[code: incorrect-ofl-body-text]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
35 21 8 100 76
15% 9% 3% 42% 32%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[11] ofl/gudea
🔥 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.02% 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 Fonts have equal codepoint coverage? (googlefonts/family/equal_codepoint_coverage)
  • 🔥 FAIL Other fonts have codepoints not present in ofl/gudea/Gudea-Bold.ttf: U+E008, U+E00A, U+E001, U+E004, U+E006, U+E00D, U+E000, U+E013, U+E00F, U+E010, U+E00C, U+E00E, U+E003, U+E014, U+E00B, U+E009, U+E002, U+E012, U+E007, U+E005, U+E011 [code: glyphset-diverges]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL Gudea-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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [code: bad-notice-format]

  • 🔥 FAIL Gudea-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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [code: bad-notice-format]

  • 🔥 FAIL Gudea-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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [code: bad-notice-format]

  • 🔥 FAIL Gudea-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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [code: bad-notice-format]

  • 🔥 FAIL Gudea-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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [code: bad-notice-format]

  • 🔥 FAIL Gudea-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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [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, agustina mingote (agustinamingote@gmail.com), with reserved font names "gudea"" [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.003: ofl/gudea/Gudea-Bold.ttf
  • 1.002: ofl/gudea/Gudea-Italic.ttf
  • 1.002: ofl/gudea/Gudea-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/gudea/Gudea-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+000C : 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: yi, canadian-aboriginal
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: math, elbasan, greek
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: elbasan, math, greek
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: math, yi, greek
  • U+2021 DOUBLE DAGGER: try adding adlam
    ... and 17 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/gudea/Gudea-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+000C : 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: yi, canadian-aboriginal
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: math, elbasan, greek
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: elbasan, math, greek
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: math, yi, greek
  • U+2021 DOUBLE DAGGER: try adding adlam
    ... and 17 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/gudea/Gudea-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+000C : 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: yi, canadian-aboriginal
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: math, elbasan, greek
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: elbasan, math, greek
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: math, yi, greek
  • U+2021 DOUBLE DAGGER: try adding adlam
    ... and 17 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, Agustina Mingote (agustinamingote@gmail.com), with Reserved Font Names "Gudea"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2012, Agustina Mingote (agustinamingote@gmail.com), with Reserved Font Names "Gudea"") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2012, Agustina Mingote (agustinamingote@gmail.com), with Reserved Font Names "Gudea"") 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]

  • ⚠️ 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/gudea/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (Gudea). The name must end with Regular or Italic [code: mismatch]

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

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

[28] ofl/gudea/Gudea-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 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+0137 [code: missing-case-counterparts]

🔥 FAIL Does font file include unacceptable control character glyphs? (control_chars)
  • 🔥 FAIL Unacceptable control character U+000C 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 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 250 font units wide, non-breaking space named (uni00A0) is 400 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 Gudea Gudea
Subfamily Name Regular Regular
Full Name Gudea Gudea Regular
Postscript Name Gudea Gudea-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 490 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=528: less, greater
    width=524: divide
    width=569: approxequal
    width=608: multiply
    width=469: plus
    width=518: logicalnot
    width=401: notequal
    width=570: minus
    width=503: plusminus
    width=580: equal [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
  • _0000
  • CR
  • _0001
  • _0158
  • graveMAY
  • acuteMAY
  • flecha02
    ... and 1 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 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=96,Y=701 (should be at cap-height 700?)
    • exclam (U+0021): X=171,Y=701 (should be at cap-height 700?)
    • quotedbl (U+0022): X=247,Y=701 (should be at cap-height 700?)
    • quotedbl (U+0022): X=322,Y=701 (should be at cap-height 700?)
    • quotedbl (U+0022): X=55,Y=701 (should be at cap-height 700?)
    • quotedbl (U+0022): X=130,Y=701 (should be at cap-height 700?)
    • percent (U+0025): X=189,Y=1 (should be at baseline 0?)
    • percent (U+0025): X=111,Y=1 (should be at baseline 0?)
    • ampersand (U+0026): X=695,Y=1 (should be at baseline 0?)
      ... and 78 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:
  • onesuperior (U+00B9) 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:
  • five (U+0035): Line(Line { p0: (232.0, 360.0), p1: (100.0, 361.0) }) (angle: 179.57 degrees, expected: 180.00 degrees)
  • OE (U+0152): Line(Line { p0: (798.0, 0.0), p1: (322.0, 1.0) }) (angle: 179.88 degrees, expected: 180.00 degrees)
  • integral (U+222B): Line(Line { p0: (131.0, -73.0), p1: (132.0, 680.0) }) (angle: 89.92 degrees, expected: 90.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: (531.5, 504.5), p1: (551.0, 494.0), p2: (558.0, 489.0) }) (length: 30.72, total outline: 5990.42)
  • M (U+004D) contains a short segment Line(Line { p0: (381.0, 184.0), p1: (355.0, 185.0) }) (length: 26.02, total outline: 4679.84)
  • ae (U+00E6) contains a short segment Quad(QuadBez { p0: (653.5, 68.5), p1: (666.0, 72.0), p2: (671.0, 74.0) }) (length: 18.35, total outline: 3333.40)
  • trademark (U+2122) contains a short segment Line(Line { p0: (484.0, 495.0), p1: (474.0, 495.0) }) (length: 10.00, total outline: 1785.64) [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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Gudea-Regular.ttf
Dehinted Size 22908
Hinted Size 22932
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]
[2] ofl/gudea/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, agustina mingote (agustinamingote@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 Names "Gudea"
+
[code: incorrect-ofl-body-text]

[2] ofl/gudea/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/gudea/Gudea-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 base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • _0000 (Some(57344))
  • _0001 (Some(57346)) [code: zero-width-bases]
🔥 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 Missing case-swapping counterpart for U+0137 [code: missing-case-counterparts]

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

🔥 FAIL Does font file include unacceptable control character glyphs? (control_chars)
  • 🔥 FAIL Unacceptable control character U+000C 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 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 225 font units wide, non-breaking space named (uni00A0) is 360 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]
🔥 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 dollar (x=0, bounds are 41<->428) [code: points-out-of-bounds]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 441 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=548: multiply
    width=453: plusminus
    width=513: minus, approxequal
    width=466: logicalnot
    width=522: equal
    width=475: less, greater
    width=422: plus
    width=472: divide
    width=361: 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 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 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=160,Y=701 (should be at cap-height 700?)
    • exclam (U+0021): X=227,Y=701 (should be at cap-height 700?)
    • quotedbl (U+0022): X=280,Y=701 (should be at cap-height 700?)
    • quotedbl (U+0022): X=348,Y=701 (should be at cap-height 700?)
    • quotedbl (U+0022): X=107,Y=701 (should be at cap-height 700?)
    • quotedbl (U+0022): X=175,Y=701 (should be at cap-height 700?)
    • percent (U+0025): X=145,Y=1 (should be at baseline 0?)
    • percent (U+0025): X=75,Y=1 (should be at baseline 0?)
    • ampersand (U+0026): X=600,Y=1 (should be at baseline 0?)
      ... and 48 others [code: found-misalignments]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • B (U+0042): Quad(QuadBez { p0: (465.0, 437.5), p1: (425.0, 386.0), p2: (365.0, 379.0) })/Quad(QuadBez { p0: (365.0, 379.0), p1: (423.0, 372.0), p2: (454.5, 332.5) }) = 13.536148676643533 degrees [code: found-jaggy-segments]
⚠️ 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: (528.0, 504.5), p1: (544.0, 494.0), p2: (550.0, 489.0) }) (length: 26.92, total outline: 5758.74)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (550.0, 489.0), p1: (556.0, 484.0), p2: (563.5, 475.0) }) (length: 19.47, total outline: 5758.74)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (563.5, 475.0), p1: (571.0, 466.0), p2: (573.0, 464.0) }) (length: 14.54, total outline: 5758.74)
  • M (U+004D) contains a short segment Line(Line { p0: (344.0, 184.0), p1: (320.0, 185.0) }) (length: 24.02, total outline: 4639.69)
  • g (U+0067) contains a short segment Line(Line { p0: (334.0, 53.0), p1: (328.0, 48.0) }) (length: 7.81, total outline: 2613.87)
  • braceright (U+007D) contains a short segment Line(Line { p0: (-13.0, -137.0), p1: (1.0, -137.0) }) (length: 14.00, total outline: 2556.95)
  • trademark (U+2122) contains a short segment Line(Line { p0: (466.0, 495.0), p1: (457.0, 495.0) }) (length: 9.00, total outline: 1756.70) [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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Gudea-Italic.ttf
Dehinted Size 27004
Hinted Size 27028
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]
[28] ofl/gudea/Gudea-Bold.ttf
🔥 FAIL Checking font version fields (head and name table). (opentype/font_version)
  • 🔥 FAIL Font version mismatch: head table: 1.003006, 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+0154 [code: missing-case-counterparts]

  • 🔥 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 Does font file include unacceptable control character glyphs? (control_chars)
  • 🔥 FAIL Unacceptable control character U+000C 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 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 250 font units wide, non-breaking space named (uni00A0) is 400 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 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:

  • ellipsis (U+2026): found 4, expected one of: [3, 7] [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 522 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=469: plus
    width=524: divide
    width=569: approxequal
    width=580: equal, notequal
    width=503: plusminus
    width=528: less, greater
    width=608: multiply
    width=518: logicalnot
    width=570: 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
  • _0000
  • CR
  • _0001
  • _0158
  • graveMAY
  • acuteMAY
  • flecha02
    ... and 1 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 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=182,Y=701 (should be at cap-height 700?)
    • numbersign (U+0023): X=293,Y=701 (should be at cap-height 700?)
    • numbersign (U+0023): X=405,Y=701 (should be at cap-height 700?)
    • numbersign (U+0023): X=514,Y=701 (should be at cap-height 700?)
    • ampersand (U+0026): X=725,Y=1 (should be at baseline 0?)
    • ampersand (U+0026): X=555,Y=1 (should be at baseline 0?)
    • six (U+0036): X=420,Y=702 (should be at cap-height 700?)
    • nine (U+0039): X=155,Y=2 (should be at baseline 0?)
    • N (U+004E): X=608,Y=-1 (should be at baseline 0?)
      ... and 55 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:
  • Ograve (U+00D2) has a counter-clockwise outer contour
  • Oacute (U+00D3) has a counter-clockwise outer contour
  • Otilde (U+00D5) has a counter-clockwise outer contour
  • Odieresis (U+00D6) has a counter-clockwise outer contour
  • Ugrave (U+00D9) has a counter-clockwise outer contour
  • Uacute (U+00DA) has a counter-clockwise outer contour
  • ograve (U+00F2) has a counter-clockwise outer contour
  • otilde (U+00F5) has a counter-clockwise outer contour
  • ydieresis (U+00FF) has a counter-clockwise outer contour
    ... and 1 others [code: ccw-outer-contour]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • ellipsis (U+2026): Line(Line { p0: (149.0, 0.0), p1: (34.0, 0.0) }) has the same coordinates as a previous segment.
  • ellipsis (U+2026): Line(Line { p0: (34.0, 0.0), p1: (34.0, 136.0) }) has the same coordinates as a previous segment.
  • ellipsis (U+2026): Line(Line { p0: (34.0, 136.0), p1: (149.0, 136.0) }) has the same coordinates as a previous segment.
  • ellipsis (U+2026): Line(Line { p0: (149.0, 136.0), p1: (149.0, 0.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: (252.0, 340.0), p1: (90.0, 341.0) }) (angle: 179.65 degrees, expected: 180.00 degrees)
  • OE (U+0152): Line(Line { p0: (819.0, 0.0), p1: (323.0, 1.0) }) (angle: 179.88 degrees, expected: 180.00 degrees)
  • integral (U+222B): Line(Line { p0: (96.0, -43.0), p1: (97.0, 650.0) }) (angle: 89.92 degrees, expected: 90.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: (558.5, 488.0), p1: (571.0, 479.0), p2: (572.0, 479.0) }) (length: 16.25, total outline: 5753.72)
  • Racute (U+0154) contains a short segment Line(Line { p0: (216.0, 304.0), p1: (228.0, 304.0) }) (length: 12.00, total outline: 2911.49)
  • Euro (U+20AC) contains a short segment Quad(QuadBez { p0: (77.0, 362.0), p1: (77.0, 366.0), p2: (79.0, 376.0) }) (length: 14.16, total outline: 3833.19)
  • Euro (U+20AC) contains a short segment Quad(QuadBez { p0: (223.0, 349.5), p1: (223.0, 340.0), p2: (224.0, 330.0) }) (length: 19.53, total outline: 3833.19) [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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Gudea-Bold.ttf
Dehinted Size 22536
Hinted Size 22560
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
54 76 19 254 190
9% 13% 3% 43% 32%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[38] ofl/habibi/Habibi-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 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 small caps glyphs are available (missing_small_caps_glyphs)
  • 🔥 FAIL The following letters did not take part in smcp substitutions:
  • ff
  • utilde
  • abreve
  • acircumflex
  • eacute
  • ograve
  • ncaron
  • uni1E41
  • wcircumflex
    ... and 103 others [code: missing-smcp-lowercase]
  • 🔥 FAIL The following letters did not take part in c2sc substitutions:
  • Ibreve
  • R
  • Oslash
  • Rcaron
  • E
  • Adieresis
  • Hcircumflex
  • Scommaaccent
  • Emacron
    ... and 125 others [code: missing-c2sc-uppercase]
🔥 FAIL Ensure 'smcp' (small caps) lookups are defined before ligature lookups in the 'GSUB' table. (smallcaps_before_ligatures)
  • 🔥 FAIL 'smcp' lookups are not defined before 'liga' lookups. [code: feature-ordering]
🔥 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:
  • parenright (component parenleft)
  • braceright (component braceleft)
  • guillemotright (component guillemotleft)
  • greaterequal (component lessequal) [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 Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • 🔥 FAIL Failed language shaping:
Message Languages
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: * da_Latn (Danish)
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: * 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: * it_Latn (Italian)
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: * es_Latn (Spanish)
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: * lt_Latn (Lithuanian)
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: * sk_Latn (Slovak)
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: * de_Latn (German)
The following base characters are missing from the font: ẞ
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: * cy_Latn (Welsh)
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: * pt_Latn (Portuguese)
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: * 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: * 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: ̈, ́, ̋
  • ⚠️ 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: ū̃
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: * 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
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
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
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
Small caps for Latin letters: * da_Latn (Danish)
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
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
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
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
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
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
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
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
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
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
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
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
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: ǿ
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
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
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
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
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
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: * 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
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
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
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
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
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
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: * sq_Latn (Albanian)
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: * sk_Latn (Slovak)
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
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
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
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
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
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
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
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
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
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
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
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: * hr_Latn (Croatian)
When shaping the text 'č' and shaping the text 'č' with features: smcp, the output is expected to be different, but was the same * sr_Latn (Serbian (Latin))
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: * 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: ǯ
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
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
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
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
Small caps for Latin letters: * hu_Latn (Hungarian)
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
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
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
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
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: * 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
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
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
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: * es_Latn (Spanish)
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
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
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
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
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: * 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
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
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
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
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
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
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: * nb_Latn (Norwegian Bokmål)
The following auxiliary characters are missing from the font: Ǎ
The following auxiliary characters are missing from the font: ǎ
Small caps for Latin letters: * lt_Latn (Lithuanian)
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
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
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
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
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
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
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
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: * de_Latn (German)
The following auxiliary characters are missing from the font: ſ
Small caps for Latin letters: * en_Latn (English)
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
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
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
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
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: * 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
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
Small caps for Latin letters: * ro_Latn (Romanian)
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
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
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: * lv_Latn (Latvian)
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
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: * mt_Latn (Maltese)
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
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: * pt_Latn (Portuguese)
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
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
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
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
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: * 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
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
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
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: * 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 'ä' 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
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
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 '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
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: * 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: ǔ
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
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
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
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
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
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
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Habibi Habibi
Subfamily Name Regular Regular
Full Name Habibi Habibi Regular
Postscript Name Habibi-Regular Habibi-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.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 1202 but it should be 1177 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:

  • Omega (U+2126): found 5, expected one of: [1, 3] [code: contour-count]
⚠️ WARN Are there caret positions declared for every ligature? (ligature_carets)
  • ⚠️ WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 1362 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=1192: approxequal
    width=1198: greater, greaterequal, less, 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 Does the font contain a soft hyphen? (soft_hyphen)
  • ⚠️ WARN This font has a 'Soft Hyphen' character. [code: softhyphen]
⚠️ WARN Ensure Stylistic Sets have description. (stylisticset_description)
  • ⚠️ WARN The stylistic set ss01 lacks a description string in the name table [code: missing-description]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • caronvertical
  • cedilla.cap
  • commaaccent.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 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 ("Habibi") that differs from the currently used family name (Habibi), which is fine. [code: legacy-familyname]

  • ⚠️ WARN Name table entry contains "Reserved Font Name" for a family name ("Habibi") that differs from the currently used family name (Habibi), 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=1364,Y=-2 (should be at baseline 0?)
    • three (U+0033): X=223,Y=-559 (should be at descender -560?)
    • five (U+0035): X=210,Y=-559 (should be at descender -560?)
    • t (U+0074): X=325.5,Y=1 (should be at baseline 0?)
    • u (U+0075): X=862,Y=2 (should be at baseline 0?)
    • y (U+0079): X=438,Y=-2 (should be at baseline 0?)
    • bar (U+007C): X=315,Y=-559 (should be at descender -560?)
    • bar (U+007C): X=197,Y=-559 (should be at descender -560?)
    • brokenbar (U+00A6): X=315,Y=-559 (should be at descender -560?)
      ... and 61 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • two (U+0032): from (153.0, 85.0) to (494.0, 362.0) is colinear with segment from (494.0, 362.0) to (582.0, 431.0)
  • guillemotleft (U+00AB): from (598.0, 831.0) to (387.0, 596.0) is colinear with segment from (387.0, 596.0) to (265.0, 474.0)
  • guillemotleft (U+00AB): from (265.0, 474.0) to (384.0, 355.0) is colinear with segment from (384.0, 355.0) to (603.0, 117.0)
  • guillemotleft (U+00AB): from (1060.0, 831.0) to (848.0, 596.0) is colinear with segment from (848.0, 596.0) to (725.0, 474.0)
  • guillemotleft (U+00AB): from (725.0, 474.0) to (846.0, 355.0) is colinear with segment from (846.0, 355.0) to (1065.0, 117.0)
  • guillemotright (U+00BB): from (601.0, 831.0) to (812.0, 596.0) is colinear with segment from (812.0, 596.0) to (934.0, 474.0)
  • guillemotright (U+00BB): from (934.0, 474.0) to (815.0, 355.0) is colinear with segment from (815.0, 355.0) to (596.0, 117.0)
  • guillemotright (U+00BB): from (139.0, 831.0) to (351.0, 596.0) is colinear with segment from (351.0, 596.0) to (474.0, 474.0)
  • guillemotright (U+00BB): from (474.0, 474.0) to (353.0, 355.0) is colinear with segment from (353.0, 355.0) to (134.0, 117.0)
    ... and 4 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:
  • parenright (U+0029) 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
  • 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:
  • W (U+0057): Line(Line { p0: (757.0, 240.0), p1: (1014.0, 1076.0) })/Line(Line { p0: (1014.0, 1076.0), p1: (1004.0, 943.0) }) = 12.788416978139395 degrees
  • sterling (U+00A3): Quad(QuadBez { p0: (324.0, 215.0), p1: (285.0, 141.0), p2: (236.0, 99.0) })/Quad(QuadBez { p0: (236.0, 99.0), p1: (399.0, 193.0), p2: (551.0, 193.0) }) = 10.629799712931753 degrees
  • uogonek (U+0173): Line(Line { p0: (1053.0, 72.0), p1: (1102.0, 91.0) })/Quad(QuadBez { p0: (1102.0, 91.0), p1: (993.0, 21.0), p2: (952.0, -123.0) }) = 11.514594755591093 degrees
  • Wcircumflex (U+0174): Line(Line { p0: (757.0, 240.0), p1: (1014.0, 1076.0) })/Line(Line { p0: (1014.0, 1076.0), p1: (1004.0, 943.0) }) = 12.788416978139395 degrees
  • Wgrave (U+1E80): Line(Line { p0: (757.0, 240.0), p1: (1014.0, 1076.0) })/Line(Line { p0: (1014.0, 1076.0), p1: (1004.0, 943.0) }) = 12.788416978139395 degrees
  • Wacute (U+1E82): Line(Line { p0: (757.0, 240.0), p1: (1014.0, 1076.0) })/Line(Line { p0: (1014.0, 1076.0), p1: (1004.0, 943.0) }) = 12.788416978139395 degrees
  • Wdieresis (U+1E84): Line(Line { p0: (757.0, 240.0), p1: (1014.0, 1076.0) })/Line(Line { p0: (1014.0, 1076.0), p1: (1004.0, 943.0) }) = 12.788416978139395 degrees
  • summation (U+2211): Line(Line { p0: (1143.0, 1435.0), p1: (276.0, 1451.0) })/Line(Line { p0: (276.0, 1451.0), p1: (407.0, 1459.0) }) = 4.5518804774846044 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:
  • hyphen (U+002D): Line(Line { p0: (174.0, 530.0), p1: (175.0, 660.0) }) (angle: 89.56 degrees, expected: 90.00 degrees)
  • at (U+0040): Line(Line { p0: (1033.0, 930.0), p1: (1165.0, 931.0) }) (angle: 0.43 degrees, expected: 0.00 degrees)
  • macron (U+00AF): Line(Line { p0: (308.0, 1335.0), p1: (885.0, 1337.0) }) (angle: 0.20 degrees, expected: 0.00 degrees)
  • Amacron (U+0100): Line(Line { p0: (499.0, 1894.0), p1: (1076.0, 1896.0) }) (angle: 0.20 degrees, expected: 0.00 degrees)
  • amacron (U+0101): Line(Line { p0: (258.0, 1335.0), p1: (835.0, 1337.0) }) (angle: 0.20 degrees, expected: 0.00 degrees)
  • Emacron (U+0112): Line(Line { p0: (381.0, 1894.0), p1: (958.0, 1896.0) }) (angle: 0.20 degrees, expected: 0.00 degrees)
  • emacron (U+0113): Line(Line { p0: (271.0, 1335.0), p1: (848.0, 1337.0) }) (angle: 0.20 degrees, expected: 0.00 degrees)
  • Hbar (U+0126): Line(Line { p0: (85.0, 1013.0), p1: (1653.0, 1014.0) }) (angle: 0.04 degrees, expected: 0.00 degrees)
  • Imacron (U+012A): Line(Line { p0: (66.0, 1894.0), p1: (643.0, 1896.0) }) (angle: 0.20 degrees, expected: 0.00 degrees)
    ... and 15 others [code: found-semi-vertical]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • ampersand (U+0026) contains a short segment Line(Line { p0: (483.0, 678.0), p1: (483.0, 676.0) }) (length: 2.00, total outline: 1817.18)
  • three (U+0033) contains a short segment Line(Line { p0: (203.0, -451.0), p1: (237.0, -452.0) }) (length: 34.01, total outline: 6098.73)
  • three (U+0033) contains a short segment Quad(QuadBez { p0: (483.0, 264.0), p1: (469.0, 263.0), p2: (459.0, 260.0) }) (length: 24.38, total outline: 6098.73)
  • G (U+0047) contains a short segment Quad(QuadBez { p0: (1537.0, 571.0), p1: (1507.0, 571.0), p2: (1491.5, 561.5) }) (length: 47.04, total outline: 8877.74)
  • G (U+0047) contains a short segment Quad(QuadBez { p0: (1491.5, 561.5), p1: (1476.0, 552.0), p2: (1476.0, 526.0) }) (length: 40.57, total outline: 8877.74)
  • G (U+0047) contains a short segment Quad(QuadBez { p0: (1290.0, 526.0), p1: (1290.0, 553.0), p2: (1274.5, 562.0) }) (length: 41.12, total outline: 8877.74)
  • G (U+0047) contains a short segment Quad(QuadBez { p0: (1274.5, 562.0), p1: (1259.0, 571.0), p2: (1233.0, 571.0) }) (length: 42.95, total outline: 8877.74)
  • W (U+0057) contains a short segment Line(Line { p0: (1016.0, 908.0), p1: (1065.0, 897.0) }) (length: 50.22, total outline: 12910.71)
  • a (U+0061) contains a short segment Quad(QuadBez { p0: (852.0, 118.0), p1: (862.0, 115.0), p2: (878.0, 115.0) }) (length: 26.26, total outline: 4711.22)
    ... and 64 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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Habibi-Regular.ttf
Dehinted Size 36236
Hinted Size 36260
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]
[2] ofl/habibi/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 "Habibi".
[code: incorrect-ofl-body-text]

[2] ofl/habibi/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/habibi/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Habibi" does not match post_script_name="Habibi-Regular". [code: mismatch]

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

[10] ofl/habibi
🔥 FAIL Checking OS/2 usWinAscent & usWinDescent (family/win_ascent_and_descent)
  • 🔥 FAIL OS/2.usWinDescent value should be equal or greater than 562, but got 560 instead. [code: descent]
🔥 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 Habibi-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 "habibi"." [code: bad-notice-format]

  • 🔥 FAIL Habibi-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 "habibi"." [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 "habibi"." [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 eben@eyebytes.com) with reserved font name "habibi".: ["METADATA.pb"]
  • copyright (c) 2011, sorkin type co (www.sorkintype.com)
    with reserved font name "habibi".: ["Habibi-Regular.ttf: Name Table entry", "Habibi-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/habibi/Habibi-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 32 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 "Habibi".") 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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
48 39 9 101 66
18% 15% 3% 38% 25%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[2] ofl/hammersmithone/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 "Hammersmith".
[code: incorrect-ofl-body-text]

[11] ofl/hammersmithone
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. (googlefonts/metadata/consistent_repo_urls)
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • 🔥 FAIL METADATA.pb full_name field "Hammersmith One" does not match correct full name "Hammersmith One Regular". [code: fullname-mismatch]

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

  • 🔥 FAIL METADATA.pb post_script_name field "HammersmithOne" does not match correct post script name "HammersmithOne-Regular". [code: 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 HammersmithOne-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 "hammersmith".

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

  • 🔥 FAIL HammersmithOne-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 "hammersmith".

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

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:

this font software is licensed under the sil open font license,
version 1.1. this license is available with a faq at:
http://scripts.sil.org/ofl: ["HammersmithOne-Regular.ttf: Name Table entry", "HammersmithOne-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/hammersmithone/HammersmithOne-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 32 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 "Hammersmith One". This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL") 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/hammersmithone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (HammersmithOne). The name must end with Regular or Italic [code: mismatch]

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

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

[2] ofl/hammersmithone/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]
[31] ofl/hammersmithone/HammersmithOne-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 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 679 font units wide, non-breaking space named (nonbreakingspace) is 440 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: * es_Latn (Spanish)
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: * da_Latn (Danish)
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: * pt_Latn (Portuguese)
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: * 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: * 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: * cs_Latn (Czech)
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: * ro_Latn (Romanian)
The following base characters are missing from the font: Ț, ț
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: * 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: * en_Latn (English)
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: * nb_Latn (Norwegian Bokmål)
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: * de_Latn (German)
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: * 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: ̆, ̂, ̈, ̦, ̧, ̇
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * de_Latn (German)
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: * 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: * da_Latn (Danish)
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: * 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: ǯ
🔥 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.0029907 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 1158 but it should be 1142 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 1364 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=1535: logicalnot
    width=1016: minus
    width=860: greaterequal, lessequal
    width=1359: greater [code: width-outliers]
⚠️ WARN Name table records must not have trailing spaces. (name/trailing_spaces)
  • ⚠️ WARN Name table record 1/0/0/DESCRIPTION has double spaces:
    Hammersmith is a low contrast semi geometric typeface inspired by the UK lettering tradition and showing the quirks of handmade brush written letters. It has been adapted for use as a web type. [code: double-spaces]

  • ⚠️ WARN Name table record 3/1/1033/DESCRIPTION has double spaces:
    Hammersmith is a low contrast semi geometric typeface inspired by the UK lettering tradition and showing the quirks of handmade brush written letters. It has been adapted for use as a web type. [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
  • commaaccent
  • caron.cap
  • grave.cap
  • acute.cap
  • circumflex.cap
  • dieresis.cap
  • ring.cap
    ... and 6 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 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 ("Hammersmith") that differs from the currently used family name (Hammersmith One), which is fine. [code: legacy-familyname]

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

⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • exclam (U+0021): from (211.0, 1358.0) to (302.0, 1354.0) is colinear with segment from (302.0, 1354.0) to (324.0, 1354.0)
  • V (U+0056): from (448.0, 146.0) to (406.0, 280.0) is colinear with segment from (406.0, 280.0) to (34.0, 1334.0)
  • W (U+0057): from (1046.0, 144.0) to (1019.0, 280.0) is colinear with segment from (1019.0, 280.0) to (855.0, 903.0)
  • X (U+0058): from (757.0, 692.0) to (982.0, 269.0) is colinear with segment from (982.0, 269.0) to (1009.0, 214.0)
  • X (U+0058): from (112.0, 107.0) to (232.0, 320.0) is colinear with segment from (232.0, 320.0) to (445.0, 681.0)
  • f (U+0066): from (7.0, 813.0) to (9.0, 920.0) is colinear with segment from (9.0, 920.0) to (9.0, 930.0)
  • z (U+007A): from (145.0, 944.0) to (145.0, 998.0) is colinear with segment from (145.0, 998.0) to (143.0, 1045.0)
  • exclamdown (U+00A1): from (471.0, 4.0) to (380.0, 8.0) is colinear with segment from (380.0, 8.0) to (358.0, 8.0)
  • Acircumflex (U+00C2): from (539.0, 1801.0) to (590.0, 1801.0) is colinear with segment from (590.0, 1801.0) to (711.0, 1804.0)
    ... and 61 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:
  • 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
  • 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:
  • three (U+0033): Quad(QuadBez { p0: (556.0, 809.0), p1: (581.0, 809.0), p2: (598.0, 813.0) })/Line(Line { p0: (598.0, 813.0), p1: (556.0, 809.0) }) = 7.8001878841816605 degrees
  • three (U+0033): Line(Line { p0: (598.0, 813.0), p1: (556.0, 809.0) })/Quad(QuadBez { p0: (556.0, 809.0), p1: (581.0, 809.0), p2: (598.0, 813.0) }) = 5.4403320310054815 degrees [code: found-jaggy-segments]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • three (U+0033): Line(Line { p0: (598.0, 813.0), p1: (556.0, 809.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:
  • exclam (U+0021): Line(Line { p0: (213.0, 380.0), p1: (211.0, 1358.0) }) (angle: 90.12 degrees, expected: 90.00 degrees)
  • exclam (U+0021): Line(Line { p0: (472.0, 1362.0), p1: (468.0, 374.0) }) (angle: -90.23 degrees, expected: -90.00 degrees)
  • four (U+0034): Line(Line { p0: (600.0, 1328.0), p1: (922.0, 1330.0) }) (angle: 0.36 degrees, expected: 0.00 degrees)
  • seven (U+0037): Line(Line { p0: (27.0, 1337.0), p1: (547.0, 1334.0) }) (angle: -0.33 degrees, expected: 0.00 degrees)
  • I (U+0049): Line(Line { p0: (481.0, 1338.0), p1: (480.0, 0.0) }) (angle: -90.04 degrees, expected: -90.00 degrees)
  • bracketleft (U+005B): Line(Line { p0: (454.0, 1194.0), p1: (463.0, 126.0) }) (angle: -89.52 degrees, expected: -90.00 degrees)
  • bracketright (U+005D): Line(Line { p0: (447.0, 1194.0), p1: (438.0, 126.0) }) (angle: -90.48 degrees, expected: -90.00 degrees)
  • f (U+0066): Line(Line { p0: (701.0, 1517.0), p1: (702.0, 1266.0) }) (angle: -89.77 degrees, expected: -90.00 degrees)
  • exclamdown (U+00A1): Line(Line { p0: (469.0, 982.0), p1: (471.0, 4.0) }) (angle: -89.88 degrees, expected: -90.00 degrees)
    ... and 25 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]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Hammersmith 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:
HammersmithOne-Regular.ttf
Dehinted Size 56632
Hinted Size 102884
Increase 46252
Change 81.7 %
ℹ️ 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.003, Version 1.003 [code: version-not-detected]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
47 36 9 105 68
18% 14% 3% 40% 26%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[11] ofl/handlee
🔥 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]

  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-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 Handlee-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, admix designs (http://www.admixdesigns.com/) with reserved font name handlee." [code: bad-notice-format]

  • 🔥 FAIL Handlee-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, admix designs (http://www.admixdesigns.com/) with reserved font name handlee." [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, admix designs (http://www.admixdesigns.com joe@admixdesigns.com) with reserved font name handlee." [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/handlee/Handlee-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE
  • 0x00D7: MULTIPLICATION SIGN
  • 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/handlee/Handlee-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+221E INFINITY: try adding math
  • U+2260 NOT EQUAL TO: 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) 2011, Admix Designs (http://www.admixdesigns.com joe@admixdesigns.com) with Reserved Font Name Handlee.") 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/handlee/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, joe prince, vissol ltd. (http://www.vissol.co.uk/mavenpro/)"

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 "Handlee".
[code: incorrect-ofl-body-text]

[27] ofl/handlee/Handlee-Regular.ttf
🔥 FAIL Checking font version fields (head and name table). (opentype/font_version)
  • 🔥 FAIL Font version mismatch: head table: 1, name table: 1.001 [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 Checking OS/2 Metrics match hhea Metrics. (os2_metrics_match_hhea)
  • 🔥 FAIL OS/2 sTypoAscender (933) and hhea ascent (934) must be equal. [code: ascender]
🔥 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 Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Handlee."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011, Admix Designs (http://www.admixdesigns.com/) with Reserved Font Name Handlee."

This is bad except in a few specific rare cases. [code: rfn]

🔥 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 sTypoAscender is 933 when it should be 934 [code: bad-typo-ascender]
⚠️ 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 slash (x=468, bounds are 23<->466) [code: points-out-of-bounds]

  • ⚠️ WARN A (y=-19, bounds are -17<->717) [code: points-out-of-bounds]

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

  • ⚠️ WARN tilde (x=427, bounds are 59<->425) [code: points-out-of-bounds]

  • ⚠️ WARN lessequal (x=58, bounds are 59<->383) [code: points-out-of-bounds]

⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 473 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=435: plusminus
    width=538: notequal
    width=541: divide
    width=447: lessequal
    width=454: plus
    width=414: greaterequal
    width=602: equal [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 Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • F (U+0046): from (318.0, 720.0) to (443.0, 718.0) is colinear with segment from (443.0, 718.0) to (488.0, 717.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: (253.0, 533.0), p1: (251.0, 536.0), p2: (250.0, 539.0) })/Line(Line { p0: (250.0, 539.0), p1: (259.0, 446.0) }) = 12.90740867126582 degrees
  • h (U+0068): Quad(QuadBez { p0: (138.0, 467.0), p1: (138.0, 417.0), p2: (129.0, 235.0) })/Quad(QuadBez { p0: (129.0, 235.0), p1: (176.0, 488.0), p2: (297.0, 488.0) }) = 7.692909964182067 degrees
  • m (U+006D): Quad(QuadBez { p0: (116.5, 238.0), p1: (116.0, 192.0), p2: (116.0, 190.0) })/Quad(QuadBez { p0: (116.0, 190.0), p1: (126.0, 303.0), p2: (136.5, 344.0) }) = 5.0572485325591545 degrees
  • m (U+006D): Quad(QuadBez { p0: (335.5, 448.0), p1: (362.0, 395.0), p2: (363.0, 307.0) })/Quad(QuadBez { p0: (363.0, 307.0), p1: (388.0, 488.0), p2: (495.0, 488.0) }) = 8.5150851757291 degrees
  • mu (U+00B5): Quad(QuadBez { p0: (222.5, 84.0), p1: (180.0, 155.0), p2: (180.0, 253.0) })/Quad(QuadBez { p0: (180.0, 253.0), p1: (157.0, 154.0), p2: (145.5, -66.0) }) = 13.079123780066833 degrees
  • ae (U+00E6): Quad(QuadBez { p0: (371.0, 297.5), p1: (371.0, 259.0), p2: (369.0, 226.0) })/Quad(QuadBez { p0: (369.0, 226.0), p1: (384.0, 342.0), p2: (450.5, 418.0) }) = 3.8998218127051585 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: (102.0, 309.0), p1: (335.0, 307.0) }) (angle: -0.49 degrees, expected: 0.00 degrees)
  • E (U+0045): Line(Line { p0: (275.0, 373.0), p1: (394.0, 374.0) }) (angle: 0.48 degrees, expected: 0.00 degrees)
  • K (U+004B): Line(Line { p0: (86.0, 139.0), p1: (90.0, 686.0) }) (angle: 89.58 degrees, expected: 90.00 degrees)
  • Egrave (U+00C8): Line(Line { p0: (275.0, 373.0), p1: (410.0, 374.0) }) (angle: 0.42 degrees, expected: 0.00 degrees)
  • Eacute (U+00C9): Line(Line { p0: (275.0, 373.0), p1: (410.0, 374.0) }) (angle: 0.42 degrees, expected: 0.00 degrees)
  • Ecircumflex (U+00CA): Line(Line { p0: (275.0, 373.0), p1: (410.0, 374.0) }) (angle: 0.42 degrees, expected: 0.00 degrees)
  • Edieresis (U+00CB): Line(Line { p0: (275.0, 373.0), p1: (410.0, 374.0) }) (angle: 0.42 degrees, expected: 0.00 degrees)
  • OE (U+0152): Line(Line { p0: (848.0, 373.0), p1: (967.0, 374.0) }) (angle: 0.48 degrees, expected: 0.00 degrees)
  • fi (U+FB01): Line(Line { p0: (441.0, 305.0), p1: (443.0, 57.0) }) (angle: -89.54 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Handlee-Regular.ttf
Dehinted Size 39108
Hinted Size 39132
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]
[2] ofl/handlee/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/handlee/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
27 30 8 107 70
11% 12% 3% 44% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[35] ofl/inder/Inder-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 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 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:
  • parenright (component parenleft)
  • nine (component six)
  • greater (component less)
  • bracketleft (component bracketright)
  • backslash (component slash)
  • braceright (component braceleft)
  • guillemotright (component guillemotleft)
  • questiondown (component question)
  • gcommaaccent (component commaaccent)
    ... and 8 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 Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • 🔥 FAIL Failed language shaping:
Message Languages
Mandatory orthography codepoints: * ca_Latn (Catalan)
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: * ro_Latn (Romanian)
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: * pl_Latn (Polish)
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: * cs_Latn (Czech)
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: * tr_Latn (Turkish)
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: * lv_Latn (Latvian)
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: * 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: * it_Latn (Italian)
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: * 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: * cy_Latn (Welsh)
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: * fr_Latn (French)
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: * en_Latn (English)
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: * 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: * 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: * 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: * 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: * it_Latn (Italian)
The following auxiliary characters are missing from the font: ẞ * pl_Latn (Polish)
* tr_Latn (Turkish)
🔥 FAIL Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2010 by Sorkin Type Co with Reserved Font Name Inder."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2010 by Sorkin Type Co with Reserved Font Name Inder."

This is bad except in a few specific rare cases. [code: rfn]

🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Inder Inder
Subfamily Name Regular Regular
Full Name Inder Inder Regular
Postscript Name Inder-Regular Inder-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.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 1142 but it should be 1123 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:

  • onehalf (U+00BD): found 2, expected one of: [3, 4, 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 1194 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=1190: less, greater, greaterequal, lessequal
    width=1195: 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
  • caronvertical
  • cedilla.cap
  • commaaccent.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:
    • percent (U+0025): X=1278,Y=1 (should be at baseline 0?)
    • D (U+0044): X=154,Y=1391 (should be at cap-height 1392?)
    • D (U+0044): X=492,Y=1391 (should be at cap-height 1392?)
    • d (U+0064): X=648,Y=-1 (should be at baseline 0?)
    • s (U+0073): X=155,Y=2 (should be at baseline 0?)
    • t (U+0074): X=738,Y=2 (should be at baseline 0?)
    • currency (U+00A4): X=1038,Y=1 (should be at baseline 0?)
    • Eth (U+00D0): X=154,Y=1391 (should be at cap-height 1392?)
    • Eth (U+00D0): X=492,Y=1391 (should be at cap-height 1392?)
      ... and 28 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • two (U+0032): from (862.0, 592.0) to (726.0, 442.0) is colinear with segment from (726.0, 442.0) to (466.0, 176.0)
  • two (U+0032): from (136.0, 92.0) to (559.0, 521.0) is colinear with segment from (559.0, 521.0) to (694.0, 664.0)
  • M (U+004D): from (1191.0, 1060.0) to (1132.0, 980.0) is colinear with segment from (1132.0, 980.0) to (769.0, 557.0)
  • M (U+004D): from (769.0, 557.0) to (406.0, 979.0) is colinear with segment from (406.0, 979.0) to (345.0, 1059.0)
  • N (U+004E): from (1024.0, 365.0) to (1013.0, 509.0) is colinear with segment from (1013.0, 509.0) to (1013.0, 1392.0)
  • N (U+004E): from (1068.0, 0.0) to (461.0, 853.0) is colinear with segment from (461.0, 853.0) to (340.0, 1027.0)
  • N (U+004E): from (340.0, 1027.0) to (351.0, 853.0) is colinear with segment from (351.0, 853.0) to (351.0, 0.0)
  • W (U+0057): from (210.0, 1392.0) to (479.0, 410.0) is colinear with segment from (479.0, 410.0) to (518.0, 237.0)
  • W (U+0057): from (518.0, 237.0) to (562.0, 410.0) is colinear with segment from (562.0, 410.0) to (844.0, 1392.0)
    ... and 54 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:
  • parenright (U+0029) has a counter-clockwise outer contour
  • greater (U+003E) has a counter-clockwise outer contour
  • bracketleft (U+005B) has a counter-clockwise outer contour
  • backslash (U+005C) 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
    ... and 1 others [code: ccw-outer-contour]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • ae (U+00E6): Quad(QuadBez { p0: (862.0, 873.0), p1: (861.0, 873.0), p2: (861.0, 871.0) }) has the same coordinates as a previous segment.
  • aeacute (U+01FD): Quad(QuadBez { p0: (862.0, 873.0), p1: (861.0, 873.0), p2: (861.0, 871.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:
  • ampersand (U+0026): Line(Line { p0: (976.0, 658.0), p1: (679.0, 657.0) }) (angle: -179.81 degrees, expected: -180.00 degrees)
  • m (U+006D): Line(Line { p0: (359.0, 775.0), p1: (360.0, 0.0) }) (angle: -89.93 degrees, expected: -90.00 degrees)
  • sterling (U+00A3): Line(Line { p0: (1028.0, 1220.0), p1: (1029.0, 1041.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • Thorn (U+00DE): Line(Line { p0: (368.0, 280.0), p1: (370.0, 0.0) }) (angle: -89.59 degrees, expected: -90.00 degrees)
  • uni1E41 (U+1E41): Line(Line { p0: (359.0, 775.0), p1: (360.0, 0.0) }) (angle: -89.93 degrees, expected: -90.00 degrees)
  • ff (U+FB00): Line(Line { p0: (380.0, 1032.0), p1: (820.0, 1033.0) }) (angle: 0.13 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:
  • three (U+0033) contains a short segment Line(Line { p0: (620.0, 798.0), p1: (620.0, 795.0) }) (length: 3.00, total outline: 6594.47)
  • at (U+0040) contains a short segment Quad(QuadBez { p0: (1353.0, -305.0), p1: (1389.0, -295.0), p2: (1407.0, -286.0) }) (length: 57.32, total outline: 13202.67)
  • Q (U+0051) contains a short segment Quad(QuadBez { p0: (1284.0, -192.0), p1: (1284.0, -192.0), p2: (1308.0, -192.0) }) (length: 24.00, total outline: 5644.10)
  • Q (U+0051) contains a short segment Quad(QuadBez { p0: (1308.0, -192.0), p1: (1318.0, -192.0), p2: (1328.0, -190.0) }) (length: 20.13, total outline: 5644.10)
  • cent (U+00A2) contains a short segment Line(Line { p0: (679.0, 1030.0), p1: (700.0, 1031.0) }) (length: 21.02, total outline: 5650.28)
  • twosuperior (U+00B2) contains a short segment Line(Line { p0: (395.0, 672.0), p1: (395.0, 664.0) }) (length: 8.00, total outline: 3867.95)
  • threesuperior (U+00B3) contains a short segment Line(Line { p0: (467.0, 1018.0), p1: (467.0, 1015.0) }) (length: 3.00, total outline: 4440.74)
  • mu (U+03BC) contains a short segment Line(Line { p0: (880.0, 170.0), p1: (876.0, 170.0) }) (length: 4.00, total outline: 6411.97)
  • paragraph (U+00B6) contains a short segment Line(Line { p0: (656.0, 1360.0), p1: (656.0, 1359.0) }) (length: 1.00, total outline: 8055.38)
    ... and 24 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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Inder-Regular.ttf
Dehinted Size 30680
Hinted Size 34132
Increase 3452
Change 11.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.001, Version 1.001 [code: version-not-detected]
[1] ofl/inder/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Inder" does not match post_script_name="Inder-Regular". [code: mismatch]

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

[2] ofl/inder/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 "Inder".
[code: incorrect-ofl-body-text]

[2] ofl/inder/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]
[9] ofl/inder
🔥 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 Inder-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 inder." [code: bad-notice-format]

  • 🔥 FAIL Inder-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 inder." [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 inder." [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 inder.: ["METADATA.pb"]
  • copyright (c) 2010 by sorkin type co with reserved font name inder.: ["Inder-Regular.ttf: Name Table entry", "Inder-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/inder/Inder-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 32 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 Inder.") 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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
46 36 9 103 68
18% 14% 3% 39% 26%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[29] ofl/inika/Inika-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • .null (Some(57344)) [code: zero-width-bases]
🔥 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 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 Inika Inika
Subfamily Name Regular Regular
Full Name Inika Inika Regular
Postscript Name Inika Inika-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.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 math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 526 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=441: less
    width=639: notequal
    width=529: lessequal
    width=337: minus
    width=566: plusminus, divide
    width=466: greater
    width=596: equal
    width=518: logicalnot
    width=595: approxequal [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:
  • 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:
    • exclam (U+0021): X=93,Y=2 (should be at baseline 0?)
    • exclam (U+0021): X=93,Y=2 (should be at baseline 0?)
    • numbersign (U+0023): X=410,Y=-2 (should be at baseline 0?)
    • numbersign (U+0023): X=180,Y=-2 (should be at baseline 0?)
    • numbersign (U+0023): X=210,Y=699 (should be at cap-height 700?)
    • numbersign (U+0023): X=258,Y=702 (should be at cap-height 700?)
    • numbersign (U+0023): X=290,Y=701 (should be at cap-height 700?)
    • numbersign (U+0023): X=440,Y=699 (should be at cap-height 700?)
    • numbersign (U+0023): X=482,Y=702 (should be at cap-height 700?)
      ... and 91 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • f (U+0066): from (370.0, 587.0) to (354.0, 588.0) is colinear with segment from (354.0, 588.0) to (350.0, 588.0)
  • v (U+0076): from (181.0, 451.0) to (271.0, 178.0) is colinear with segment from (271.0, 178.0) to (294.0, 90.0)
  • v (U+0076): from (306.0, 90.0) to (331.0, 179.0) is colinear with segment from (331.0, 179.0) to (424.0, 451.0)
  • w (U+0077): from (169.0, 451.0) to (240.0, 178.0) is colinear with segment from (240.0, 178.0) to (258.0, 90.0)
  • w (U+0077): from (268.0, 90.0) to (288.0, 179.0) is colinear with segment from (288.0, 179.0) to (389.0, 508.0)
  • w (U+0077): from (475.0, 507.0) to (582.0, 178.0) is colinear with segment from (582.0, 178.0) to (604.0, 90.0)
  • y (U+0079): from (169.0, 451.0) to (256.0, 178.0) is colinear with segment from (256.0, 178.0) to (279.0, 90.0)
  • logicalnot (U+00AC): from (393.0, 232.0) to (335.0, 232.0) is colinear with segment from (335.0, 232.0) to (38.0, 238.0)
  • ae (U+00E6): from (158.0, 347.0) to (141.0, 347.0) is colinear with segment from (141.0, 347.0) to (100.0, 350.0)
    ... and 4 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:
  • ccedilla (U+00E7) 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:
  • B (U+0042): Quad(QuadBez { p0: (508.0, 402.0), p1: (466.0, 369.0), p2: (433.0, 365.0) })/Quad(QuadBez { p0: (433.0, 365.0), p1: (491.0, 358.0), p2: (535.5, 311.0) }) = 13.792950749661625 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:
  • numbersign (U+0023): Line(Line { p0: (465.0, 261.0), p1: (601.0, 260.0) }) (angle: -0.42 degrees, expected: 0.00 degrees)
  • numbersign (U+0023): Line(Line { p0: (497.0, 521.0), p1: (629.0, 520.0) }) (angle: -0.43 degrees, expected: 0.00 degrees)
  • numbersign (U+0023): Line(Line { p0: (419.0, 457.0), p1: (260.0, 458.0) }) (angle: 179.64 degrees, expected: 180.00 degrees)
  • two (U+0032): Line(Line { p0: (156.0, 59.0), p1: (331.0, 60.0) }) (angle: 0.33 degrees, expected: 0.00 degrees)
  • seven (U+0037): Line(Line { p0: (25.0, 541.0), p1: (399.0, 540.0) }) (angle: -0.15 degrees, expected: 0.00 degrees)
  • H (U+0048): Line(Line { p0: (213.0, 401.0), p1: (539.0, 400.0) }) (angle: -0.18 degrees, expected: 0.00 degrees)
  • u (U+0075): Line(Line { p0: (193.0, 428.0), p1: (194.0, 212.0) }) (angle: -89.73 degrees, expected: -90.00 degrees)
  • cent (U+00A2): Line(Line { p0: (316.0, -11.0), p1: (315.0, -127.0) }) (angle: -90.49 degrees, expected: -90.00 degrees)
  • twosuperior (U+00B2): Line(Line { p0: (125.0, 327.0), p1: (267.0, 328.0) }) (angle: 0.40 degrees, expected: 0.00 degrees)
    ... and 13 others [code: found-semi-vertical]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • asterisk (U+002A) contains a short segment Quad(QuadBez { p0: (313.0, 429.0), p1: (311.0, 428.0), p2: (309.0, 428.0) }) (length: 4.16, total outline: 2139.75)
  • asterisk (U+002A) contains a short segment Quad(QuadBez { p0: (107.0, 715.0), p1: (109.0, 716.0), p2: (111.0, 716.0) }) (length: 4.16, total outline: 2139.75)
  • two (U+0032) contains a short segment Line(Line { p0: (153.0, 71.0), p1: (156.0, 59.0) }) (length: 12.37, total outline: 2747.07)
  • A (U+0041) contains a short segment Quad(QuadBez { p0: (506.0, 694.0), p1: (507.0, 690.0), p2: (507.0, 684.5) }) (length: 9.58, total outline: 3359.28)
  • M (U+004D) contains a short segment Line(Line { p0: (710.0, 0.0), p1: (707.0, 35.0) }) (length: 35.13, total outline: 6464.52)
  • M (U+004D) contains a short segment Line(Line { p0: (18.0, 0.0), p1: (15.0, 35.0) }) (length: 35.13, total outline: 6464.52)
  • M (U+004D) contains a short segment Line(Line { p0: (490.0, 152.0), p1: (494.0, 152.0) }) (length: 4.00, total outline: 6464.52)
  • V (U+0056) contains a short segment Line(Line { p0: (372.0, 105.0), p1: (377.0, 105.0) }) (length: 5.00, total outline: 3650.51)
  • W (U+0057) contains a short segment Line(Line { p0: (322.0, 105.0), p1: (326.0, 105.0) }) (length: 4.00, total outline: 6261.47)
    ... and 75 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 Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Inika-Regular.ttf
Dehinted Size 39676
Hinted Size 39700
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]
[1] ofl/inika/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (Inika). The name must end with Regular or Italic [code: mismatch]

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

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

[9] ofl/inika
🔥 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.05% 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 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 Inika-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 constanza artigas preller. all rights reserved." [code: bad-notice-format]

  • 🔥 FAIL Inika-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 constanza artigas preller. 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) 2011 by constanza artigas preller (artigasconstanza@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) 2011 by constanza artigas preller (artigasconstanza@gmail.com). all rights reserved.: ["METADATA.pb"]
  • copyright (c) 2011 by constanza artigas preller. all rights reserved.: ["Inika-Regular.ttf: Name Table entry", "Inika-Regular.ttf: Name Table entry"] [code: mismatch]
  • 🔥 FAIL Inika-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) 2011 by constanza artigas preller. all rights reserved." [code: bad-notice-format]

  • 🔥 FAIL Inika-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) 2011 by constanza artigas preller. 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) 2011 by constanza artigas preller (artigasconstanza@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) 2011 by constanza artigas preller (artigasconstanza@gmail.com). all rights reserved.: ["METADATA.pb"]
  • copyright (c) 2011 by constanza artigas preller. all rights reserved.: ["Inika-Bold.ttf: Name Table entry", "Inika-Bold.ttf: Name Table entry"] [code: mismatch]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/inika/Inika-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE [code: missing-codepoints]
  • 🔥 FAIL ofl/inika/Inika-Bold.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/inika/Inika-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: elbasan, math, greek
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: greek, math, elbasan
  • U+03BC GREEK SMALL LETTER MU: try adding one of: greek, math
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: yi, math, greek
  • 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 ofl/inika/Inika-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: elbasan, math, greek
  • U+03A9 GREEK CAPITAL LETTER OMEGA: try adding one of: greek, math, elbasan
  • U+03BC GREEK SMALL LETTER MU: try adding one of: greek, math
  • U+03C0 GREEK SMALL LETTER PI: try adding one of: yi, math, greek
  • 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 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]
[2] ofl/inika/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, constanza artigas preller (artigasconstanza@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 "Inika"
    [code: incorrect-ofl-body-text]
[26] ofl/inika/Inika-Bold.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • .null (Some(57344)) [code: zero-width-bases]
🔥 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 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 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.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:

  • ibreve (U+012D): found 1, expected one of: [2, 3, 6]
  • obreve (U+014F): found 2, expected one of: [3, 4, 7]
  • ubreve (U+016D): found 1, expected one of: [2, 3, 6]
  • uring (U+016F): found 1, expected one of: [3, 4, 7] [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 526 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=441: less
    width=566: divide, plusminus
    width=639: notequal
    width=596: equal, minus
    width=595: approxequal
    width=518: logicalnot
    width=466: greater
    width=529: 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 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:
  • 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 Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • six (U+0036): from (187.0, 296.0) to (190.0, 238.0) is colinear with segment from (190.0, 238.0) to (190.0, 236.0)
  • six (U+0036): from (187.0, 313.0) to (187.0, 296.0) is colinear with segment from (187.0, 296.0) to (190.0, 238.0)
  • less (U+003C): from (177.0, 262.0) to (194.0, 247.0) is colinear with segment from (194.0, 247.0) to (414.0, 32.0)
  • greater (U+003E): from (307.0, 262.0) to (290.0, 277.0) is colinear with segment from (290.0, 277.0) to (81.0, 493.0)
  • F (U+0046): from (450.0, 511.0) to (428.0, 512.0) is colinear with segment from (428.0, 512.0) to (423.0, 512.0)
  • w (U+0077): from (485.0, 507.0) to (549.0, 301.0) is colinear with segment from (549.0, 301.0) to (580.0, 160.0)
  • w (U+0077): from (597.0, 160.0) to (626.0, 299.0) is colinear with segment from (626.0, 299.0) to (664.0, 427.0)
  • w (U+0077): from (202.0, 427.0) to (235.0, 300.0) is colinear with segment from (235.0, 300.0) to (260.0, 160.0)
  • w (U+0077): from (276.0, 160.0) to (305.0, 301.0) is colinear with segment from (305.0, 301.0) to (367.0, 508.0)
    ... and 8 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • numbersign (U+0023): Line(Line { p0: (484.0, 281.0), p1: (607.0, 280.0) }) (angle: -0.47 degrees, expected: 0.00 degrees)
  • dollar (U+0024): Line(Line { p0: (214.0, 554.0), p1: (213.0, 671.0) }) (angle: 90.49 degrees, expected: 90.00 degrees)
  • K (U+004B): Line(Line { p0: (245.0, 216.0), p1: (244.0, 96.0) }) (angle: -90.48 degrees, expected: -90.00 degrees)
  • N (U+004E): Line(Line { p0: (710.0, 611.0), p1: (707.0, 0.0) }) (angle: -90.28 degrees, expected: -90.00 degrees)
  • U (U+0055): Line(Line { p0: (706.0, 611.0), p1: (704.0, 357.0) }) (angle: -90.45 degrees, expected: -90.00 degrees)
  • Y (U+0059): Line(Line { p0: (408.0, 262.0), p1: (407.0, 96.0) }) (angle: -90.35 degrees, expected: -90.00 degrees)
  • bracketleft (U+005B): Line(Line { p0: (218.0, 667.0), p1: (214.0, -108.0) }) (angle: -90.30 degrees, expected: -90.00 degrees)
  • bracketright (U+005D): Line(Line { p0: (159.0, -108.0), p1: (155.0, 667.0) }) (angle: 90.30 degrees, expected: 90.00 degrees)
  • cent (U+00A2): Line(Line { p0: (246.0, 554.0), p1: (245.0, 671.0) }) (angle: 90.49 degrees, expected: 90.00 degrees)
    ... and 20 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:
Inika-Bold.ttf
Dehinted Size 38712
Hinted Size 38736
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]
[2] ofl/inika/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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
39 49 14 183 130
9% 12% 3% 44% 31%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[9] ofl/jockeyone
🔥 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.13% 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 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 Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL JockeyOne-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, copyright (c) 2011, typetogether (www.type-together.com), with reserved font names "jockey" and "jockey one"" [code: bad-notice-format]

  • 🔥 FAIL JockeyOne-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, copyright (c) 2011, typetogether (www.type-together.com), with reserved font names "jockey" and "jockey 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, copyright (c) 2011, typetogether (www.type-together.com info@type-together.com), with reserved font names "jockey" and "jockey one"" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2011, copyright (c) 2011, typetogether (www.type-together.com info@type-together.com), with reserved font names "jockey" and "jockey one": ["METADATA.pb"]
  • copyright (c) 2011, copyright (c) 2011, typetogether (www.type-together.com), with reserved font names "jockey" and "jockey one": ["JockeyOne-Regular.ttf: Name Table entry", "JockeyOne-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/jockeyone/JockeyOne-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+0002 : try adding symbols
  • 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: canadian-aboriginal, yi
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam
  • U+2219 BULLET OPERATOR: try adding one of: tai-tham, math, yi, symbols
  • U+2248 ALMOST EQUAL TO: try adding math
  • U+2260 NOT EQUAL TO: try adding math
    ... and 2 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, Copyright (c) 2011, TypeTogether (www.type-together.com info@type-together.com), with Reserved Font Names "Jockey" and "Jockey 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]
[1] ofl/jockeyone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Jockey One" does not match post_script_name="JockeyOne-Regular". [code: mismatch]

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

[29] ofl/jockeyone/JockeyOne-Regular.ttf
🔥 FAIL Does font file include unacceptable control character glyphs? (control_chars)
  • 🔥 FAIL Unacceptable control character U+0002 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 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: * 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: * da_Latn (Danish)
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: * es_Latn (Spanish)
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: * is_Latn (Icelandic)
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: * lv_Latn (Latvian)
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: * en_Latn (English)
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: * sq_Latn (Albanian)
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: * ro_Latn (Romanian)
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: * 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: * de_Latn (German)
The following base characters are missing from the font: ẞ
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: * mt_Latn (Maltese)
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: * 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: * hr_Latn (Croatian)
The following mark characters are missing from the font: ̌, ́
  • ⚠️ WARN Warning language shaping:
Message Languages
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: ǯ
Auxiliary orthography codepoints: * it_Latn (Italian)
The following auxiliary characters are missing from the font: ẞ * pl_Latn (Polish)
* tr_Latn (Turkish)
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: * 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: * 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: ǔ
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Jockey One Jockey One
Subfamily Name Regular Regular
Full Name Jockey One Jockey One Regular
Postscript Name JockeyOne-Regular JockeyOne-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 braceleft (x=20, bounds are 25<->238) [code: points-out-of-bounds]

  • ⚠️ WARN braceleft (x=20, bounds are 25<->238) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (x=228, bounds are 10<->223) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (x=228, bounds are 10<->223) [code: points-out-of-bounds]

  • ⚠️ WARN tilde (y=556, bounds are 557<->686) [code: points-out-of-bounds]

  • ⚠️ WARN tilde.cap (y=733, bounds are 734<->868) [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 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 344 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=414: notequal
    width=321: multiply
    width=379: greaterequal, less, lessequal, greater
    width=472: approxequal [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
  • hyphen.case
  • commaaccent
  • revcommaaccent
  • tilde.cap
  • ring.cap
  • circumflex.cap
  • acute.cap
    ... and 12 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 Are there any misaligned on-curve points? (outline_alignment_miss)
  • ⚠️ WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • g (U+0067): X=301,Y=2 (should be at baseline 0?)
    • Aring (U+00C5): X=352,Y=698 (should be at cap-height 700?)
    • gcircumflex (U+011D): X=301,Y=2 (should be at baseline 0?)
    • gbreve (U+011F): X=301,Y=2 (should be at baseline 0?)
    • gdotaccent (U+0121): X=301,Y=2 (should be at baseline 0?)
    • gcommaaccent (U+0123): X=301,Y=2 (should be at baseline 0?)
    • gcommaaccent (U+0123): X=201,Y=702.5 (should be at cap-height 700?)
    • ohungarumlaut (U+0151): X=443,Y=702 (should be at cap-height 700?)
    • uhungarumlaut (U+0171): X=423,Y=702 (should be at cap-height 700?)
      ... and 3 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 (182.0, 700.0) to (167.0, 380.0) is colinear with segment from (167.0, 380.0) to (167.0, 241.0)
  • exclam (U+0021): from (55.0, 241.0) to (55.0, 380.0) is colinear with segment from (55.0, 380.0) to (40.0, 700.0)
  • A (U+0041): from (244.0, 570.0) to (205.0, 337.0) is colinear with segment from (205.0, 337.0) to (183.0, 218.0)
  • A (U+0041): from (308.0, 218.0) to (285.0, 337.0) is colinear with segment from (285.0, 337.0) to (246.0, 570.0)
  • M (U+004D): from (303.0, 320.0) to (356.0, 539.0) is colinear with segment from (356.0, 539.0) to (399.0, 700.0)
  • M (U+004D): from (203.0, 700.0) to (246.0, 539.0) is colinear with segment from (246.0, 539.0) to (299.0, 320.0)
  • N (U+004E): from (168.0, 385.0) to (174.0, 267.0) is colinear with segment from (174.0, 267.0) to (174.0, 0.0)
  • N (U+004E): from (338.0, 300.0) to (327.0, 423.0) is colinear with segment from (327.0, 423.0) to (327.0, 700.0)
  • V (U+0056): from (149.0, 700.0) to (204.0, 376.0) is colinear with segment from (204.0, 376.0) to (238.0, 166.0)
    ... and 53 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:
  • exclamdown (U+00A1) has a counter-clockwise outer contour
  • plusminus (U+00B1) has a counter-clockwise outer contour
  • Egrave (U+00C8) has a counter-clockwise outer contour
  • Eacute (U+00C9) has a counter-clockwise outer contour
  • Ecircumflex (U+00CA) has a counter-clockwise outer contour
  • Edieresis (U+00CB) has a counter-clockwise outer contour
  • Igrave (U+00CC) has a counter-clockwise outer contour
  • Iacute (U+00CD) has a counter-clockwise outer contour
  • Icircumflex (U+00CE) has a counter-clockwise outer contour
    ... and 34 others [code: ccw-outer-contour]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • M (U+004D): Line(Line { p0: (299.0, 320.0), p1: (303.0, 320.0) }) has the same coordinates as a previous segment.
  • M (U+004D): Line(Line { p0: (299.0, 320.0), p1: (303.0, 320.0) }) has the same coordinates as a previous segment. [code: overlapping-path-segments]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • dollar (U+0024) contains a short segment Line(Line { p0: (166.0, 564.0), p1: (163.0, 558.0) }) (length: 6.71, total outline: 2761.70)
  • dollar (U+0024) contains a short segment Line(Line { p0: (254.0, 136.0), p1: (257.0, 142.0) }) (length: 6.71, total outline: 2761.70)
  • ampersand (U+0026) contains a short segment Line(Line { p0: (256.0, 535.0), p1: (254.0, 529.0) }) (length: 6.32, total outline: 2020.26)
  • two (U+0032) contains a short segment Line(Line { p0: (219.0, 573.0), p1: (216.0, 580.0) }) (length: 7.62, total outline: 2400.06)
  • three (U+0033) contains a short segment Line(Line { p0: (230.0, 411.0), p1: (230.0, 406.0) }) (length: 5.00, total outline: 2579.29)
  • three (U+0033) contains a short segment Line(Line { p0: (224.0, 569.0), p1: (219.0, 580.0) }) (length: 12.08, total outline: 2579.29)
  • five (U+0035) contains a short segment Line(Line { p0: (279.0, 321.0), p1: (276.0, 330.0) }) (length: 9.49, total outline: 2606.91)
  • at (U+0040) contains a short segment Line(Line { p0: (509.0, 116.0), p1: (530.0, 116.0) }) (length: 21.00, total outline: 4624.23)
  • A (U+0041) contains a short segment Line(Line { p0: (246.0, 570.0), p1: (244.0, 570.0) }) (length: 2.00, total outline: 841.70)
    ... and 89 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]
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Jockey 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:
JockeyOne-Regular.ttf
Dehinted Size 48584
Hinted Size 48608
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]
[2] ofl/jockeyone/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, typetogether (www.type-together.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 "Jockey"
[code: incorrect-ofl-body-text]

[3] ofl/jockeyone/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
21 39 9 108 68
9% 16% 4% 44% 28%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[2] ofl/juliussansone/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]
[9] ofl/juliussansone
🔥 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 JuliusSansOne-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, latinotype (www.latinotype.com), with reserved font name 'julius'" [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, latinotype (luciano@latinotype.com), with reserved font names 'julius'" [code: bad-notice-format]

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2012, latinotype (luciano@latinotype.com), with reserved font names 'julius': ["METADATA.pb"]
  • copyright (c) 2012, latinotype (www.latinotype.com), with reserved font name 'julius': ["JuliusSansOne-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/juliussansone/JuliusSansOne-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+2021 DOUBLE DAGGER: try adding adlam
  • U+2030 PER MILLE SIGN: try adding adlam

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, LatinoType (luciano@latinotype.com), with Reserved Font Names 'Julius'") 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=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]
[23] ofl/juliussansone/JuliusSansOne-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 Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Julius Sans One Julius Sans One
Subfamily Name Regular Regular
Full Name Julius Sans One Julius Sans One Regular
Postscript Name JuliusSansOne-Regular JuliusSansOne-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 494 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=514: minus
    width=635: logicalnot
    width=410: greater, less
    width=523: multiply
    width=543: equal [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 [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 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=130,Y=-1 (should be at baseline 0?)
    • parenleft (U+0028): X=275,Y=713 (should be at cap-height 715?)
    • parenright (U+0029): X=46,Y=713 (should be at cap-height 715?)
    • slash (U+002F): X=10,Y=2 (should be at baseline 0?)
    • B (U+0042): X=132,Y=713 (should be at cap-height 715?)
    • B (U+0042): X=132,Y=2 (should be at baseline 0?)
    • D (U+0044): X=132,Y=2 (should be at baseline 0?)
    • backslash (U+005C): X=360,Y=2 (should be at baseline 0?)
    • b (U+0062): X=119,Y=2 (should be at baseline 0?)
      ... and 17 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 (205.0, 617.0) to (195.0, 541.0) is colinear with segment from (195.0, 541.0) to (113.0, 0.0)
  • N (U+004E): from (178.0, 601.0) to (180.0, 516.0) is colinear with segment from (180.0, 516.0) to (180.0, 0.0)
  • N (U+004E): from (177.0, 623.0) to (178.0, 601.0) is colinear with segment from (178.0, 601.0) to (180.0, 516.0)
  • m (U+006D): from (663.0, 558.0) to (634.0, 492.0) is colinear with segment from (634.0, 492.0) to (421.0, 34.0)
  • n (U+006E): from (653.0, -4.0) to (219.0, 494.0) is colinear with segment from (219.0, 494.0) to (164.0, 561.0)
  • w (U+0077): from (501.0, 636.0) to (664.0, 155.0) is colinear with segment from (664.0, 155.0) to (688.0, 74.0)
  • Ntilde (U+00D1): from (174.0, 608.0) to (176.0, 526.0) is colinear with segment from (176.0, 526.0) to (176.0, 0.0)
  • Ntilde (U+00D1): from (173.0, 630.0) to (174.0, 608.0) is colinear with segment from (174.0, 608.0) to (176.0, 526.0)
  • ntilde (U+00F1): from (653.0, -4.0) to (215.0, 504.0) is colinear with segment from (215.0, 504.0) to (160.0, 571.0)
    ... and 3 others [code: found-colinear-vectors]
⚠️ WARN Are any segments inordinately short? (outline_short_segments)
  • ⚠️ WARN The following glyphs have short segments:
  • three (U+0033) contains a short segment Quad(QuadBez { p0: (215.0, 381.0), p1: (212.0, 381.0), p2: (209.0, 381.0) }) (length: 6.00, total outline: 3097.21)
  • at (U+0040) contains a short segment Line(Line { p0: (467.0, 623.0), p1: (493.0, 623.0) }) (length: 26.00, total outline: 5958.26)
  • M (U+004D) contains a short segment Line(Line { p0: (470.0, 37.0), p1: (443.0, 37.0) }) (length: 27.00, total outline: 5472.43)
  • M (U+004D) contains a short segment Line(Line { p0: (182.0, 721.0), p1: (210.0, 721.0) }) (length: 28.00, total outline: 5472.43)
  • M (U+004D) contains a short segment Line(Line { p0: (740.0, 721.0), p1: (767.0, 721.0) }) (length: 27.00, total outline: 5472.43)
  • M (U+004D) contains a short segment Quad(QuadBez { p0: (740.0, 620.0), p1: (739.0, 619.0), p2: (735.5, 610.5) }) (length: 10.53, total outline: 5472.43)
  • M (U+004D) contains a short segment Quad(QuadBez { p0: (735.5, 610.5), p1: (732.0, 602.0), p2: (723.5, 582.5) }) (length: 30.46, total outline: 5472.43)
  • N (U+004E) contains a short segment Line(Line { p0: (132.0, 721.0), p1: (154.0, 721.0) }) (length: 22.00, total outline: 4500.90)
  • N (U+004E) contains a short segment Line(Line { p0: (743.0, -6.0), p1: (721.0, -6.0) }) (length: 22.00, total outline: 4500.90)
    ... and 35 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 'T26{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 Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Julius Sans 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:
JuliusSansOne-Regular.ttf
Dehinted Size 27756
Hinted Size 42288
Increase 14532
Change 52.4 %
ℹ️ 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 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; ttfautohint (v1.3) [code: version-not-detected]
[1] ofl/juliussansone/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2012, latinotype (luciano@latinotype.com), with reserved font names 'julius'"

which does not match the expected format, similar to:

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

[2] ofl/juliussansone/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Julius Sans One" does not match post_script_name="JuliusSansOne-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 lucianovergara 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
19 23 10 115 67
8% 10% 4% 49% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

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

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

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

  • 🔥 FAIL Missing case-swapping counterpart for U+012C [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 Name table records must not have trailing spaces. (name/trailing_spaces)
  • 🔥 FAIL Name table record 1/0/0/LICENSE_URL has leading spaces that must be removed:
    http://scripts.sil.org/OFL [code: leading-space]

  • 🔥 FAIL Name table record 3/1/1033/LICENSE_URL has leading spaces that must be removed:
    http://scripts.sil.org/OFL [code: leading-space]

  • ⚠️ 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 available with a FAQ at: http://scripts.sil.org/OFL` [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 available with a FAQ at: http://scripts.sil.org/OFL` [code: double-spaces]

🔥 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: * cy_Latn (Welsh)
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: * is_Latn (Icelandic)
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: * hu_Latn (Hungarian)
The following mark characters are missing from the font: ́, ̈, ̋
Mandatory orthography codepoints: * hr_Latn (Croatian)
The following base characters are missing from the font: Đ, đ
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: * da_Latn (Danish)
The following mark characters are missing from the font: ́, ̊
Mandatory orthography codepoints: * sr_Latn (Serbian (Latin))
The following base characters are missing from the font: đ, Đ
Mandatory orthography codepoints: * es_Latn (Spanish)
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: * ro_Latn (Romanian)
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 base characters are missing from the font: ľ, Ľ, ť, ď
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: * 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: * tr_Latn (Turkish)
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: * ca_Latn (Catalan)
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: * 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: * pt_Latn (Portuguese)
The following mark characters are missing from the font: ̧, ̂, ̀, ́, ̃, ̈
Mandatory orthography codepoints: * cs_Latn (Czech)
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 base characters are missing from the font: Ī
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: ́, ̈, ̂, ̀, ̊
  • ⚠️ WARN Warning language shaping:
Message Languages
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: ȟ
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: * de_Latn (German)
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)
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: Đ
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: ſ
The following auxiliary characters are missing from the font: ǔ
Auxiliary orthography codepoints: * nl_Latn (Dutch)
The following auxiliary characters are missing from the font: IJ
The following auxiliary characters are missing from the font: ij
Auxiliary orthography codepoints: * en_Latn (English)
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: * sv_Latn (Swedish)
The following auxiliary characters are missing from the font: Ī
Auxiliary orthography codepoints: * tr_Latn (Turkish)
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: * cs_Latn (Czech)
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: * ca_Latn (Catalan)
The following auxiliary characters are missing from the font: Ī * cy_Latn (Welsh)
The following auxiliary characters are missing from the font: ĭ * es_Latn (Spanish)
* hu_Latn (Hungarian)
* pt_Latn (Portuguese)
* sk_Latn (Slovak)
🔥 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 "JustMeAgainDownHere-Regular.ttf". Got "JustMeAgainDownHere.ttf". [code: bad-filename]
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Just Me Again Down Here Just Me Again Down Here
Subfamily Name Regular Regular
Full Name Just Me Again Down Here Just Me Again Down Here Regular
Postscript Name JustMeAgainDownHere JustMeAgainDownHere-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 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 326 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=304: divide
    width=419: minus
    width=317: less
    width=590: logicalnot
    width=260: multiply
    width=467: plusminus
    width=521: plus
    width=377: equal [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 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:
    • dollar (U+0024): X=249,Y=599 (should be at cap-height 600?)
    • ampersand (U+0026): X=86,Y=2 (should be at baseline 0?)
    • slash (U+002F): X=105,Y=1 (should be at baseline 0?)
    • question (U+003F): X=246,Y=-1 (should be at baseline 0?)
    • question (U+003F): X=246,Y=-1 (should be at baseline 0?)
    • A (U+0041): X=252,Y=602 (should be at cap-height 600?)
    • H (U+0048): X=65,Y=1 (should be at baseline 0?)
    • W (U+0057): X=389,Y=1 (should be at baseline 0?)
    • Y (U+0059): X=7,Y=2 (should be at baseline 0?)
      ... and 57 others [code: found-misalignments]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • ae (U+00E6): Quad(QuadBez { p0: (334.0, -13.0), p1: (275.0, -13.0), p2: (242.0, 65.0) })/Quad(QuadBez { p0: (242.0, 65.0), p1: (256.0, 11.0), p2: (285.0, -5.0) }) = 8.397645357049633 degrees
  • aeacute (U+01FD): Quad(QuadBez { p0: (334.0, -13.0), p1: (275.0, -13.0), p2: (242.0, 65.0) })/Quad(QuadBez { p0: (242.0, 65.0), p1: (256.0, 11.0), p2: (285.0, -5.0) }) = 8.397645357049633 degrees [code: found-jaggy-segments]
⚠️ 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
PPM <= 16 - Use grid-fitting
PPM <= 65535 - Use grid-fitting
- Use grayscale rendering
[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 16 that may be unnecessary [code: non-ffff-range]

  • ⚠️ WARN The gasp range 0xFFFF value 0x03 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 Checking OS/2 achVendID. (googlefonts/vendor_id)
  • ⚠️ WARN OS/2 VendorID value 'SIL{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 "Just Me Again Down Here" 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:
JustMeAgainDownHere.ttf
Dehinted Size 52688
Hinted Size 72060
Increase 19372
Change 36.8 %
ℹ️ INFO Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    prep
    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 2007, Version 1.002 2007 [code: version-not-detected]
[8] ofl/justmeagaindownhere
🔥 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.11% 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 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 JustMeAgainDownHere.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 kimberly geswein. all rights reserved." [code: bad-notice-format]

  • 🔥 FAIL JustMeAgainDownHere.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 kimberly geswein. 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) 2011 by kimberly geswein (kimberlygeswein@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) 2011 by kimberly geswein (kimberlygeswein@gmail.com). all rights reserved.: ["METADATA.pb"]
  • copyright (c) 2011 by kimberly geswein. all rights reserved.: ["JustMeAgainDownHere.ttf: Name Table entry", "JustMeAgainDownHere.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/justmeagaindownhere/JustMeAgainDownHere.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+2021 DOUBLE DAGGER: try adding adlam

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]

ℹ️ 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/justmeagaindownhere/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]

[2] ofl/justmeagaindownhere/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/justmeagaindownhere/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (JustMeAgainDownHere). The name must end with Regular or Italic [code: mismatch]

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

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
34 30 9 103 76
13% 12% 4% 41% 30%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[2] ofl/lusitana/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 ana paula megda (www.anamegda.com|anapbm@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 Lusitana.
[code: incorrect-ofl-body-text]

[3] ofl/lusitana/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]
[12] ofl/lusitana
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-subset]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Afrikaans 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+2019) [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 Breton language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the poster md sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Catalan language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the poster md sample text (This suggests there's something wrong with the sample text):
  • ’ (U+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Corsican language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the poster md sample text (This suggests there's something wrong with the sample text):
  • ’ (U+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Welsh language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Gallo language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the French language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the poster md sample text (This suggests there's something wrong with the sample text):
  • ’ (U+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Friulian 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+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Swiss German language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the poster md sample text (This suggests there's something wrong with the sample text):
  • ’ (U+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Manx 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+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Guarayu language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Hausa language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the poster md sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Chin, Matu language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Ijo, Southeast language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the poster lg sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Makonde 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+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Ganda language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Ligurian 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+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Malagasy language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Mi'kmaq language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the poster md sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Mixe, Totontepec 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+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Mazatec, Ixcatlán 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+2019) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Low German language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 21 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Nyamwezi language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 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 Piedmontese 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+2019)
  • ‘ (U+2018) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Rarotongan language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ‘ (U+2018)
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Rapa (Latin) language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ‘ (U+2018)
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 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 Sukuma language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Sukuma language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 32 sample text:
  • ‘ (U+2018) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Tongan language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the poster md sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Tongan language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ‘ (U+2018) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Tojolabal language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Tsonga 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+2019) [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 Tzotzil, Chamula language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Umbundu language because the font contained all the codepoints for the sample text, but the font is missing the following codepoints needed to render the specimen 16 sample text:
  • ’ (U+2019) [code: missing-codepoints]
  • 🔥 FAIL We detected support for the Makhuwa 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+2019) [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/lusitana/Lusitana-Regular.ttf has codepoints not present in sibling fonts: U+0178, U+0192, U+2021, U+2020 [code: glyphset-diverges]
🔥 FAIL Copyright notices match canonical pattern in fonts (googlefonts/font_copyright)
  • 🔥 FAIL Lusitana-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 ana paula megda (www.anamegda.com|anapbm@gmail.com), with reserved font name lusitana." [code: bad-notice-format]

  • 🔥 FAIL Lusitana-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 ana paula megda (www.anamegda.com|anapbm@gmail.com), with reserved font name lusitana." [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 ana paula megda (www.anamegda.com|anapbm@gmail.com), with reserved font name lusitana." [code: bad-notice-format]

  • 🔥 FAIL Lusitana-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) 2011 by ana paula megda (www.anamegda.com|anapbm@gmail.com), with reserved font name lusitana." [code: bad-notice-format]

  • 🔥 FAIL Lusitana-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) 2011 by ana paula megda (www.anamegda.com|anapbm@gmail.com), with reserved font name lusitana." [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 ana paula megda (www.anamegda.com|anapbm@gmail.com), with reserved font name lusitana." [code: bad-notice-format]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/lusitana/Lusitana-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE
  • 0x2014: EM DASH
  • 0x2018: LEFT SINGLE QUOTATION MARK
  • 0x2019: RIGHT SINGLE QUOTATION MARK
  • 0x201C: LEFT DOUBLE QUOTATION MARK
  • 0x201D: RIGHT DOUBLE QUOTATION MARK
  • 0x2122: TRADE MARK SIGN [code: missing-codepoints]
  • 🔥 FAIL ofl/lusitana/Lusitana-Bold.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE
  • 0x2014: EM DASH
  • 0x2018: LEFT SINGLE QUOTATION MARK
  • 0x2019: RIGHT SINGLE QUOTATION MARK
  • 0x201C: LEFT DOUBLE QUOTATION MARK
  • 0x201D: RIGHT DOUBLE QUOTATION MARK
  • 0x2122: TRADE MARK SIGN [code: missing-codepoints]
⚠️ WARN Fonts have consistent PANOSE family type? (opentype/family/panose_familytype)
  • ⚠️ WARN PANOSE family type is not the same across this family. In order to fix this, please make sure that the panose.bFamilyType value is the same in the OS/2 table of all of this family's font files.

The following values were found:

  • Unknown (0): Lusitana-Regular.ttf
  • Latin Text: Lusitana-Bold.ttf [code: inconsistency]
⚠️ 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/lusitana/Lusitana-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+03BC GREEK SMALL LETTER MU: try adding one of: greek, math
  • U+2021 DOUBLE DAGGER: try adding adlam
  • U+2260 NOT 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 ofl/lusitana/Lusitana-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+03BC GREEK SMALL LETTER MU: try adding one of: greek, math
  • U+2260 NOT 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) 2011 by Ana Paula Megda (www.anamegda.com|anapbm@gmail.com), with Reserved Font Name Lusitana.") contains "Reserved Font Name". This is an error except in a few specific rare cases. [code: rfn]

  • ⚠️ WARN METADATA.pb: copyright field ("Copyright (c) 2011 by Ana Paula Megda (www.anamegda.com|anapbm@gmail.com), with Reserved Font Name Lusitana.") 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]
[1] ofl/lusitana/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb: Mismatch between postScriptName 400 and and weight value (Lusitana). The name must end with Regular or Italic [code: mismatch]

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

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

[25] ofl/lusitana/Lusitana-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 Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011 by Ana Paula Megda (www.anamegda.com|anapbm@gmail.com), with Reserved Font Name Lusitana."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011 by Ana Paula Megda (www.anamegda.com|anapbm@gmail.com), with Reserved Font Name Lusitana."

This is bad except in a few specific rare cases. [code: rfn]

🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Lusitana Lusitana
Subfamily Name Regular Regular
Full Name Lusitana Lusitana Regular
Postscript Name Lusitana Lusitana-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.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 for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN braceleft (x=376, bounds are 55<->375) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (x=55, bounds are 56<->376) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotleft (x=459, bounds are 20<->458) [code: points-out-of-bounds]

  • ⚠️ WARN guillemotright (x=50, bounds are 51<->489) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglleft (x=323, bounds are 58<->322) [code: points-out-of-bounds]

  • ⚠️ WARN guilsinglright (x=77, bounds are 78<->342) [code: points-out-of-bounds]

⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 568 among a set of 10 math glyphs.
    The following math glyphs have a different width, though:
    width=523: minus
    width=527: notequal, equal
    width=500: less
    width=656: logicalnot
    width=548: multiply
    width=547: greater
    width=576: 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:
  • .null
  • nonmarkingreturn
  • circumflex.cap
  • grave.cap
  • acute.cap [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:
  • ampersand (U+0026): from (485.0, 451.0) to (602.0, 448.0) is colinear with segment from (602.0, 448.0) to (722.0, 451.0)
  • equal (U+003D): from (47.0, 351.0) to (262.0, 349.0) is colinear with segment from (262.0, 349.0) to (459.0, 351.0)
  • B (U+0042): from (30.0, 713.0) to (153.0, 710.0) is colinear with segment from (153.0, 710.0) to (318.0, 714.0)
  • D (U+0044): from (28.0, 712.0) to (151.0, 709.0) is colinear with segment from (151.0, 709.0) to (358.0, 711.0)
  • E (U+0045): from (452.0, 500.0) to (450.0, 367.0) is colinear with segment from (450.0, 367.0) to (452.0, 244.0)
  • E (U+0045): from (30.0, 713.0) to (155.0, 710.0) is colinear with segment from (155.0, 710.0) to (316.0, 710.0)
  • E (U+0045): from (155.0, 710.0) to (316.0, 710.0) is colinear with segment from (316.0, 710.0) to (563.0, 709.0)
  • F (U+0046): from (442.0, 500.0) to (440.0, 367.0) is colinear with segment from (440.0, 367.0) to (442.0, 244.0)
  • F (U+0046): from (30.0, 713.0) to (155.0, 710.0) is colinear with segment from (155.0, 710.0) to (306.0, 710.0)
    ... and 53 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • hyphen (U+002D): Line(Line { p0: (316.0, 183.0), p1: (199.0, 184.0) }) (angle: 179.51 degrees, expected: 180.00 degrees)
  • hyphen (U+002D): Line(Line { p0: (199.0, 184.0), p1: (78.0, 183.0) }) (angle: -179.53 degrees, expected: -180.00 degrees)
  • one (U+0031): Line(Line { p0: (224.0, 677.0), p1: (225.0, 80.0) }) (angle: -89.90 degrees, expected: -90.00 degrees)
  • E (U+0045): Line(Line { p0: (561.0, 0.0), p1: (306.0, -2.0) }) (angle: -179.55 degrees, expected: -180.00 degrees)
  • E (U+0045): Line(Line { p0: (316.0, 710.0), p1: (563.0, 709.0) }) (angle: -0.23 degrees, expected: 0.00 degrees)
  • F (U+0046): Line(Line { p0: (306.0, 710.0), p1: (553.0, 709.0) }) (angle: -0.23 degrees, expected: 0.00 degrees)
  • L (U+004C): Line(Line { p0: (531.0, 0.0), p1: (276.0, -2.0) }) (angle: -179.55 degrees, expected: -180.00 degrees)
  • N (U+004E): Line(Line { p0: (682.0, 631.0), p1: (683.0, -3.0) }) (angle: -89.91 degrees, expected: -90.00 degrees)
  • underscore (U+005F): Line(Line { p0: (287.0, -13.0), p1: (545.0, -11.0) }) (angle: 0.44 degrees, expected: 0.00 degrees)
    ... and 37 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 "Lusitana" 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:
Lusitana-Regular.ttf
Dehinted Size 30164
Hinted Size 30188
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]
[26] ofl/lusitana/Lusitana-Bold.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 Name table strings must not contain the string 'Reserved Font Name'. (googlefonts/name/rfn)
  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011 by Ana Paula Megda (www.anamegda.com|anapbm@gmail.com), with Reserved Font Name Lusitana."

This is bad except in a few specific rare cases. [code: rfn]

  • 🔥 FAIL Name table entry contains "Reserved Font Name":
    "Copyright (c) 2011 by Ana Paula Megda (www.anamegda.com|anapbm@gmail.com), with Reserved Font Name Lusitana."

This is bad except in a few specific rare cases. [code: rfn]

🔥 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 for points out of bounds (opentype/points_out_of_bounds)
  • ⚠️ WARN quotedbl (x=274, bounds are 46<->272) [code: points-out-of-bounds]

  • ⚠️ WARN quotesingle (x=144, bounds are 45<->142) [code: points-out-of-bounds]

  • ⚠️ WARN b (y=-13, bounds are -12<->766) [code: points-out-of-bounds]

  • ⚠️ WARN braceleft (x=386, bounds are 45<->385) [code: points-out-of-bounds]

  • ⚠️ WARN braceright (x=42, bounds are 47<->385) [code: points-out-of-bounds]

⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 527 among a set of 10 math glyphs.
    The following math glyphs have a different width, though:
    width=547: greater
    width=568: divide, plus
    width=576: plusminus
    width=500: less
    width=548: multiply
    width=523: minus
    width=656: 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
  • circumflex.cap
  • grave.cap
  • acute.cap [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:
    • percent (U+0025): X=509,Y=-2 (should be at baseline 0?)
    • percent (U+0025): X=509,Y=-2 (should be at baseline 0?)
    • percent (U+0025): X=518,Y=714 (should be at cap-height 713?)
    • percent (U+0025): X=157,Y=-1 (should be at baseline 0?)
    • percent (U+0025): X=64,Y=-2 (should be at baseline 0?)
    • percent (U+0025): X=518,Y=714 (should be at cap-height 713?)
    • ampersand (U+0026): X=814,Y=-2 (should be at baseline 0?)
    • ampersand (U+0026): X=705,Y=1 (should be at baseline 0?)
    • ampersand (U+0026): X=615,Y=-1 (should be at baseline 0?)
      ... and 67 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 (229.0, 662.0) to (227.0, 626.0) is colinear with segment from (227.0, 626.0) to (186.0, 208.0)
  • numbersign (U+0023): from (37.0, 473.0) to (73.0, 472.0) is colinear with segment from (73.0, 472.0) to (124.0, 472.0)
  • numbersign (U+0023): from (-9.0, 292.0) to (1.0, 292.0) is colinear with segment from (1.0, 292.0) to (86.0, 291.0)
  • ampersand (U+0026): from (462.0, 451.0) to (612.0, 448.0) is colinear with segment from (612.0, 448.0) to (748.0, 451.0)
  • equal (U+003D): from (37.0, 363.0) to (262.0, 361.0) is colinear with segment from (262.0, 361.0) to (469.0, 363.0)
  • E (U+0045): from (170.0, 710.0) to (429.0, 710.0) is colinear with segment from (429.0, 710.0) to (585.0, 709.0)
  • V (U+0056): from (432.0, 713.0) to (593.0, 710.0) is colinear with segment from (593.0, 710.0) to (715.0, 713.0)
  • W (U+0057): from (788.0, 713.0) to (949.0, 710.0) is colinear with segment from (949.0, 710.0) to (1071.0, 713.0)
  • X (U+0058): from (446.0, 713.0) to (599.0, 710.0) is colinear with segment from (599.0, 710.0) to (729.0, 714.0)
    ... and 39 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any jaggy segments? (outline_jaggy_segments)
  • ⚠️ WARN The following glyphs have jaggy segments:
  • G (U+0047): Quad(QuadBez { p0: (721.0, 137.0), p1: (721.0, 61.0), p2: (695.0, 52.0) })/Line(Line { p0: (695.0, 52.0), p1: (702.0, 53.0) }) = 10.963389646329636 degrees
  • sterling (U+00A3): Quad(QuadBez { p0: (224.5, 184.0), p1: (200.0, 130.0), p2: (170.0, 107.0) })/Quad(QuadBez { p0: (170.0, 107.0), p1: (193.0, 119.0), p2: (222.0, 119.0) }) = 9.923367984643582 degrees
  • Ccedilla (U+00C7): Quad(QuadBez { p0: (710.0, 115.0), p1: (682.0, 44.0), p2: (668.0, 44.0) })/Line(Line { p0: (668.0, 44.0), p1: (680.0, 45.0) }) = 4.763641690726143 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:
  • hyphen (U+002D): Line(Line { p0: (331.0, 173.0), p1: (204.0, 174.0) }) (angle: 179.55 degrees, expected: 180.00 degrees)
  • hyphen (U+002D): Line(Line { p0: (204.0, 174.0), p1: (63.0, 173.0) }) (angle: -179.59 degrees, expected: -180.00 degrees)
  • one (U+0031): Line(Line { p0: (183.0, 0.0), p1: (38.0, -1.0) }) (angle: -179.60 degrees, expected: -180.00 degrees)
  • one (U+0031): Line(Line { p0: (240.0, 677.0), p1: (241.0, 85.0) }) (angle: -89.90 degrees, expected: -90.00 degrees)
  • E (U+0045): Line(Line { p0: (438.0, 651.0), p1: (313.0, 650.0) }) (angle: -179.54 degrees, expected: -180.00 degrees)
  • E (U+0045): Line(Line { p0: (587.0, 0.0), p1: (356.0, -1.0) }) (angle: -179.75 degrees, expected: -180.00 degrees)
  • E (U+0045): Line(Line { p0: (429.0, 710.0), p1: (585.0, 709.0) }) (angle: -0.37 degrees, expected: 0.00 degrees)
  • J (U+004A): Line(Line { p0: (121.0, 80.0), p1: (125.0, 623.0) }) (angle: 89.58 degrees, expected: 90.00 degrees)
  • L (U+004C): Line(Line { p0: (109.0, 87.0), p1: (113.0, 623.0) }) (angle: 89.57 degrees, expected: 90.00 degrees)
    ... and 48 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 "Lusitana" 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:
Lusitana-Bold.ttf
Dehinted Size 29260
Hinted Size 29284
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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
72 61 13 183 130
16% 13% 3% 40% 28%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

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

"copyright � 1997 - 2011, john vargas beltr�n (www.johnvargasbeltran.com|john.vargasbeltran@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 Macondo.
[code: incorrect-ofl-body-text]

[28] ofl/macondoswashcaps/MacondoSwashCaps-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • .null (Some(57344)) [code: zero-width-bases]
🔥 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 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 Macondo Swash Caps Macondo Swash Caps
Subfamily Name Regular Regular
Full Name Macondo Swash Caps Macondo Swash Caps Regular
Postscript Name MacondoSwashCaps-Regular MacondoSwashCaps-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 2.001007 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 math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 470 among a set of 9 math glyphs.
    The following math glyphs have a different width, though:
    width=410: equal, minus
    width=429: greater, less
    width=533: logicalnot
    width=193: 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:
  • 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 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:
    • parenleft (U+0028): X=232,Y=-290 (should be at descender -292?)
    • parenright (U+0029): X=52,Y=-291 (should be at descender -292?)
    • parenright (U+0029): X=52,Y=-291 (should be at descender -292?)
    • A (U+0041): X=-182,Y=-290 (should be at descender -292?)
    • H (U+0048): X=152,Y=695 (should be at cap-height 696?)
    • H (U+0048): X=522,Y=695 (should be at cap-height 696?)
    • I (U+0049): X=305,Y=1 (should be at baseline 0?)
    • J (U+004A): X=-8.5,Y=-290 (should be at descender -292?)
    • K (U+004B): X=921,Y=-290 (should be at descender -292?)
      ... and 74 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • four (U+0034): from (106.0, 286.0) to (308.0, 281.0) is colinear with segment from (308.0, 281.0) to (345.0, 281.0)
  • A (U+0041): from (134.0, 696.0) to (352.0, 690.0) is colinear with segment from (352.0, 690.0) to (589.0, 696.0)
  • D (U+0044): from (101.0, 696.0) to (204.0, 690.0) is colinear with segment from (204.0, 690.0) to (360.0, 696.0)
  • E (U+0045): from (101.0, 696.0) to (303.0, 690.0) is colinear with segment from (303.0, 690.0) to (505.0, 696.0)
  • E (U+0045): from (454.0, 334.0) to (315.0, 339.0) is colinear with segment from (315.0, 339.0) to (305.0, 339.0)
  • F (U+0046): from (101.0, 696.0) to (303.0, 690.0) is colinear with segment from (303.0, 690.0) to (505.0, 696.0)
  • K (U+004B): from (60.0, 46.0) to (65.0, 348.0) is colinear with segment from (65.0, 348.0) to (60.0, 643.0)
  • Z (U+005A): from (114.0, 696.0) to (316.0, 690.0) is colinear with segment from (316.0, 690.0) to (518.0, 696.0)
  • bracketleft (U+005B): from (137.0, 687.0) to (138.0, 233.0) is colinear with segment from (138.0, 233.0) to (137.0, -227.0)
    ... and 42 others [code: found-colinear-vectors]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines? (outline_semi_vertical)
  • ⚠️ WARN The following glyphs have semi-vertical/semi-horizontal lines:
  • bracketleft (U+005B): Line(Line { p0: (137.0, 687.0), p1: (138.0, 233.0) }) (angle: -89.87 degrees, expected: -90.00 degrees)
  • bracketleft (U+005B): Line(Line { p0: (138.0, 233.0), p1: (137.0, -227.0) }) (angle: -90.12 degrees, expected: -90.00 degrees)
  • bracketright (U+005D): Line(Line { p0: (189.0, -227.0), p1: (188.0, 227.0) }) (angle: 90.13 degrees, expected: 90.00 degrees)
  • bracketright (U+005D): Line(Line { p0: (188.0, 227.0), p1: (189.0, 687.0) }) (angle: 89.88 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 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
  • ℹ️ INFO The family name "Macondo 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:
MacondoSwashCaps-Regular.ttf
Dehinted Size 32992
Hinted Size 33016
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 2.001, Version 2.001 [code: version-not-detected]
[3] ofl/macondoswashcaps/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain broken links? (googlefonts/description/broken_links)
  • 🔥 FAIL The following links are broken:
🔥 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/macondoswashcaps
🔥 FAIL METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • 🔥 FAIL Subsets are not in order [code: not-sorted]

  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-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 MacondoSwashCaps-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) 1997 - 2011, john vargas beltran. (www.johnvargasbeltran.com|john.vargasbeltran@gmail.com), with reserved font name "macondo"" [code: bad-notice-format]

  • 🔥 FAIL MacondoSwashCaps-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) 1997 - 2011, john vargas beltran. (www.johnvargasbeltran.com|john.vargasbeltran@gmail.com), with reserved font name "macondo"" [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) 1997 - 2011, john vargas beltran. (www.johnvargasbeltran.com|john.vargasbeltran@gmail.com), with reserved font name "macondo"" [code: bad-notice-format]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/macondoswashcaps/MacondoSwashCaps-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE
  • 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 for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/macondoswashcaps/MacondoSwashCaps-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: yi, canadian-aboriginal
  • U+0307 COMBINING DOT ABOVE: try adding one of: malayalam, tifinagh, tai-le, duployan, todhri, old-permic, hebrew, math, coptic, syriac, canadian-aboriginal
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek
  • U+222B INTEGRAL: 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) 1997 - 2011, John Vargas Beltran. (www.johnvargasbeltran.com|john.vargasbeltran@gmail.com), with Reserved Font Name "Macondo"") 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/macondoswashcaps/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Macondo Swash Caps" does not match post_script_name="MacondoSwashCaps-Regular". [code: mismatch]

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

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
26 29 8 107 69
11% 12% 3% 45% 29%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[2] ofl/marckscript/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/marckscript
🔥 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+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 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 MarckScript-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, denis masharov denis.masharov@gmail.com, marck fogel, with reserved font names "marck script"." [code: bad-notice-format]

  • 🔥 FAIL MarckScript-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, denis masharov denis.masharov@gmail.com, marck fogel, with reserved font names "marck script"." [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, denis masharov denis.masharov@gmail.com, marck fogel, with reserved font names "marck script"." [code: bad-notice-format]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/marckscript/MarckScript-Regular.ttf missing required codepoints:
  • 0x00A0: NO-BREAK SPACE
  • 0x2122: TRADE MARK SIGN
  • 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/marckscript/MarckScript-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: 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+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, cyrillic, 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, Denis Masharov denis.masharov@gmail.com, Marck Fogel, with Reserved Font Names "Marck Script".") 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/marckscript/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Marck Script" does not match post_script_name="MarckScript-Regular". [code: mismatch]

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

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

"copyright (c) 2011, denis masharov denis.masharov@gmail.com & marck fogel,"

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 "Marck Script".
[code: incorrect-ofl-body-text]

[28] ofl/marckscript/MarckScript-Regular.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 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 Shapes languages in all GF glyphsets. (googlefonts/glyphsets/shape_languages)
  • 🔥 FAIL Failed language shaping:
Message Languages
Mandatory orthography codepoints: * sv_Latn (Swedish)
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: * lt_Latn (Lithuanian)
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: * pl_Latn (Polish)
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: * de_Latn (German)
The following base characters are missing from the font: ẞ
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: * tr_Latn (Turkish)
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: * nb_Latn (Norwegian Bokmål)
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: * mt_Latn (Maltese)
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: * es_Latn (Spanish)
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: * 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: * en_Latn (English)
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: * lv_Latn (Latvian)
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: * sq_Latn (Albanian)
The following mark characters are missing from the font: ̧, ̈
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * ca_Latn (Catalan)
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: * es_Latn (Spanish)
The following auxiliary characters are missing from the font: ª * pt_Latn (Portuguese)
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: * en_Latn (English)
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: * nl_Latn (Dutch)
The following auxiliary characters are missing from the font: IJ
Auxiliary orthography codepoints: * pl_Latn (Polish)
The following auxiliary characters are missing from the font: ẞ * tr_Latn (Turkish)
Auxiliary orthography codepoints: * it_Latn (Italian)
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: * nb_Latn (Norwegian Bokmål)
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 Marck Script Marck Script
Subfamily Name Regular Regular
Full Name Marck Script Marck Script Regular
Postscript Name MarckScript-Regular MarckScript-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 D (y=-4, bounds are -2<->638) [code: points-out-of-bounds]

  • ⚠️ WARN f (x=497, bounds are 6<->495) [code: points-out-of-bounds]

  • ⚠️ WARN Eth (y=-4, bounds are -2<->638) [code: points-out-of-bounds]

  • ⚠️ WARN Dcaron (y=-4, bounds are -2<->795) [code: points-out-of-bounds]

  • ⚠️ WARN Dcroat (y=-4, bounds are -2<->638) [code: points-out-of-bounds]

  • ⚠️ WARN uni0414 (y=-4, bounds are -2<->638) [code: points-out-of-bounds]

  • ⚠️ WARN uni0427 (x=-13, bounds are -11<->499) [code: points-out-of-bounds]

  • ⚠️ WARN uni0427 (x=500, bounds are -11<->499) [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:

  • ocircumflex (U+00F4): found 2, expected one of: [3, 4, 7]
  • otilde (U+00F5): found 2, expected one of: [3, 4, 7]
  • odieresis (U+00F6): found 3, expected one of: [4, 5, 8]
  • obreve (U+014F): found 2, expected one of: [3, 4, 7]
  • ohungarumlaut (U+0151): found 3, expected one of: [4, 5, 8] [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 261 among a set of 10 math glyphs.
    The following math glyphs have a different width, though:
    width=335: equal
    width=223: greater, greaterequal
    width=227: lessequal
    width=248: less
    width=450: approxequal
    width=252: 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 [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 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
  • equal (U+003D) 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:
  • q (U+0071): Quad(QuadBez { p0: (110.0, -326.0), p1: (110.0, -258.0), p2: (309.0, 181.0) })/Quad(QuadBez { p0: (309.0, 181.0), p1: (233.0, 79.0), p2: (181.5, 41.5) }) = 12.304795276553858 degrees
  • r (U+0072): Quad(QuadBez { p0: (149.0, 286.5), p1: (143.0, 251.0), p2: (120.0, 171.0) })/Quad(QuadBez { p0: (120.0, 171.0), p1: (221.0, 354.0), p2: (290.0, 354.0) }) = 12.854914609801485 degrees
  • kgreenlandic (U+0138): Quad(QuadBez { p0: (176.0, 393.0), p1: (158.0, 347.0), p2: (116.0, 148.0) })/Quad(QuadBez { p0: (116.0, 148.0), p1: (171.0, 261.0), p2: (227.0, 313.5) }) = 14.03569979764919 degrees
  • racute (U+0155): Quad(QuadBez { p0: (159.0, 286.5), p1: (153.0, 251.0), p2: (130.0, 171.0) })/Quad(QuadBez { p0: (130.0, 171.0), p1: (231.0, 354.0), p2: (300.0, 354.0) }) = 12.854914609801485 degrees
  • uni0157 (U+0157): Quad(QuadBez { p0: (144.0, 286.5), p1: (138.0, 251.0), p2: (115.0, 171.0) })/Quad(QuadBez { p0: (115.0, 171.0), p1: (216.0, 354.0), p2: (285.0, 354.0) }) = 12.854914609801485 degrees
  • rcaron (U+0159): Quad(QuadBez { p0: (159.0, 286.5), p1: (153.0, 251.0), p2: (130.0, 171.0) })/Quad(QuadBez { p0: (130.0, 171.0), p1: (231.0, 354.0), p2: (300.0, 354.0) }) = 12.854914609801485 degrees
  • uni0416 (U+0416): Quad(QuadBez { p0: (399.0, 109.0), p1: (426.0, 266.0), p2: (456.0, 388.0) })/Quad(QuadBez { p0: (456.0, 388.0), p1: (383.0, 214.0), p2: (334.0, 148.0) }) = 8.944983916398877 degrees
  • uni0416 (U+0416): Quad(QuadBez { p0: (519.5, 404.5), p1: (495.0, 325.0), p2: (474.0, 206.0) })/Quad(QuadBez { p0: (474.0, 206.0), p1: (626.0, 612.0), p2: (878.0, 612.0) }) = 10.517128175191367 degrees
  • uni043A (U+043A): Quad(QuadBez { p0: (176.0, 393.0), p1: (158.0, 347.0), p2: (116.0, 148.0) })/Quad(QuadBez { p0: (116.0, 148.0), p1: (171.0, 261.0), p2: (227.0, 313.5) }) = 14.03569979764919 degrees
    ... and 2 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:
  • numbersign (U+0023): Line(Line { p0: (42.0, 241.0), p1: (176.0, 240.0) }) (angle: -0.43 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 '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 "Marck Script" 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:
MarckScript-Regular.ttf
Dehinted Size 83640
Hinted Size 83664
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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
26 39 9 107 70
10% 16% 4% 43% 28%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[11] ofl/montaga
🔥 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]

  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-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 Montaga-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, alejandra rodriguez (ale_guez@yahoo.com.ar http://twitter.com/ale_guez), with reserved font name "montaga"" [code: bad-notice-format]

  • 🔥 FAIL Montaga-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, alejandra rodriguez (ale_guez@yahoo.com.ar http://twitter.com/ale_guez), with reserved font name "montaga"" [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, alejandra rodriguez (ale_guez@yahoo.com.ar http://twitter.com/ale_guez), with reserved font name "montaga"" [code: bad-notice-format]

🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/montaga/Montaga-Regular.ttf missing required codepoints:
  • 0x2026: HORIZONTAL ELLIPSIS
  • 0x2122: TRADE MARK SIGN
  • 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/montaga/Montaga-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: yi, canadian-aboriginal
  • U+0307 COMBINING DOT ABOVE: try adding one of: canadian-aboriginal, tifinagh, malayalam, syriac, math, old-permic, tai-le, todhri, coptic, duployan, hebrew
  • U+037E GREEK QUESTION MARK: try adding greek
  • U+03BC GREEK SMALL LETTER MU: try adding one of: math, greek

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, Alejandra Rodriguez (ale_guez@yahoo.com.ar http://twitter.com/ale_guez), with Reserved Font Name "Montaga"") 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]
[3] ofl/montaga/DESCRIPTION.en_us.html
🔥 FAIL Does DESCRIPTION file contain broken links? (googlefonts/description/broken_links)
  • 🔥 FAIL The following links are broken:
🔥 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/montaga/OFL.txt
🔥 FAIL Check license file has good copyright string. (googlefonts/license/OFL_copyright)
  • 🔥 FAIL First line in license file is:

"copyright (c) 2011, alejandra rodriguez (ale_guez@yahoo.com.ar http://twitter.com/ale_guez),"

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 Montaga.
[code: incorrect-ofl-body-text]

[27] ofl/montaga/Montaga-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 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 Montaga Montaga
Subfamily Name Regular Regular
Full Name Montaga Montaga Regular
Postscript Name Montaga-Regular Montaga-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.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+0307 (dotaccentcmb) [code: mark-chars]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 832 among a set of 8 math glyphs.
    The following math glyphs have a different width, though:
    width=540: plus
    width=574: multiply
    width=785: equal
    width=558: logicalnot
    width=476: divide
    width=514: 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:
  • .null
  • nonmarkingreturn
  • acute.cap
  • dieresis.cap
  • grave.cap
  • commaaccent
  • caron.cap
  • ring.cap
  • tilde.cap
    ... and 3 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:
    • five (U+0035): X=134,Y=2 (should be at baseline 0?)
    • eight (U+0038): X=278,Y=702 (should be at cap-height 700?)
    • colon (U+003A): X=181,Y=1.5 (should be at baseline 0?)
    • colon (U+003A): X=104,Y=1.5 (should be at baseline 0?)
    • at (U+0040): X=612,Y=2 (should be at baseline 0?)
    • at (U+0040): X=333,Y=2 (should be at baseline 0?)
    • grave (U+0060): X=130,Y=702 (should be at cap-height 700?)
    • g (U+0067): X=234,Y=2 (should be at baseline 0?)
    • g (U+0067): X=164,Y=2 (should be at baseline 0?)
      ... and 29 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • B (U+0042): from (40.0, 700.0) to (174.0, 700.0) is colinear with segment from (174.0, 700.0) to (346.0, 710.0)
  • D (U+0044): from (40.0, 700.0) to (194.0, 700.0) is colinear with segment from (194.0, 700.0) to (442.0, 710.0)
  • P (U+0050): from (40.0, 700.0) to (194.0, 700.0) is colinear with segment from (194.0, 700.0) to (384.0, 710.0)
  • R (U+0052): from (40.0, 700.0) to (194.0, 700.0) is colinear with segment from (194.0, 700.0) to (384.0, 710.0)
  • V (U+0056): from (394.0, 104.0) to (594.0, 624.0) is colinear with segment from (594.0, 624.0) to (604.0, 654.0)
  • registered (U+00AE): from (236.0, 564.0) to (328.0, 564.0) is colinear with segment from (328.0, 564.0) to (434.0, 570.0)
  • paragraph (U+00B6): from (310.0, 720.0) to (498.0, 714.0) is colinear with segment from (498.0, 714.0) to (632.0, 714.0)
  • Racute (U+0154): from (40.0, 700.0) to (194.0, 700.0) is colinear with segment from (194.0, 700.0) to (384.0, 710.0)
  • Rcommaaccent (U+0156): from (40.0, 700.0) to (194.0, 700.0) is colinear with segment from (194.0, 700.0) to (384.0, 710.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:
  • ampersand (U+0026): Quad(QuadBez { p0: (95.0, 310.5), p1: (154.0, 366.0), p2: (228.0, 378.0) })/Quad(QuadBez { p0: (228.0, 378.0), p1: (159.0, 381.0), p2: (120.5, 419.5) }) = 11.70057946281585 degrees
  • Ntilde (U+00D1): Quad(QuadBez { p0: (632.5, -5.0), p1: (621.0, -14.0), p2: (622.0, -16.0) })/Line(Line { p0: (622.0, -16.0), p1: (180.0, 576.0) }) = 10.1807626789703 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:
  • plus (U+002B): Line(Line { p0: (294.0, 470.0), p1: (295.0, 263.0) }) (angle: -89.72 degrees, expected: -90.00 degrees)
  • four (U+0034): Line(Line { p0: (114.0, 275.0), p1: (334.0, 276.0) }) (angle: 0.26 degrees, expected: 0.00 degrees)
  • plusminus (U+00B1): Line(Line { p0: (278.0, 491.0), p1: (279.0, 311.0) }) (angle: -89.68 degrees, expected: -90.00 degrees)
  • OE (U+0152): Line(Line { p0: (976.0, 0.0), p1: (514.0, -2.0) }) (angle: -179.75 degrees, expected: -180.00 degrees)
  • OE (U+0152): Line(Line { p0: (524.0, 70.0), p1: (522.0, 632.0) }) (angle: 90.20 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 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 Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Montaga-Regular.ttf
Dehinted Size 33932
Hinted Size 33956
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]
[3] ofl/montaga/METADATA.pb
🔥 FAIL Does METADATA.pb copyright field contain broken links? (googlefonts/metadata/broken_links)
  • 🔥 FAIL The following links are broken:
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb font fullname = "Montaga" does not match post_script_name="Montaga-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 alejandrarodriguez 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
26 31 8 106 68
11% 13% 3% 44% 28%

@github-actions

Copy link
Copy Markdown
Contributor

FontSpector report

fontspector version: 1.7.3

Check results

[1] ofl/quando/METADATA.pb
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[9] ofl/quando
🔥 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 Quando-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-2012, sorkin type co (www.sorkintype.com) with reserved font name "quando"" [code: bad-notice-format]

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

  • 🔥 FAIL Copyright notices differ between name table entries and METADATA.pb. The following entries were found:
  • copyright (c) 2011-2012, sorkin type co (www.sorkintype.com eben@eyebytes.com) with reserved font name "quando": ["METADATA.pb"]
  • copyright (c) 2011-2012, sorkin type co (www.sorkintype.com) with reserved font name "quando": ["Quando-Regular.ttf: Name Table entry", "Quando-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/quando/Quando-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 29 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-2012, Sorkin Type Co (www.sorkintype.com eben@eyebytes.com) with Reserved Font Name "Quando"") 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/quando/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), with reserved font name "quando"."

which does not match the expected format, similar to:

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

[2] ofl/quando/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]
[29] ofl/quando/Quando-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 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)
  • questiondown (component question)
    ... and 9 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 720 font units wide, non-breaking space named (nonbreakingspace) is 680 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: * es_Latn (Spanish)
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: * sv_Latn (Swedish)
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: * cs_Latn (Czech)
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: * fr_Latn (French)
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: * lv_Latn (Latvian)
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: * fi_Latn (Finnish)
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: * mt_Latn (Maltese)
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: * tr_Latn (Turkish)
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: * is_Latn (Icelandic)
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: * 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: * ro_Latn (Romanian)
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: * hr_Latn (Croatian)
The following mark characters are missing from the font: ́, ̌
  • ⚠️ WARN Warning language shaping:
Message Languages
Auxiliary orthography codepoints: * it_Latn (Italian)
The following auxiliary characters are missing from the font: ẞ * pl_Latn (Polish)
* tr_Latn (Turkish)
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: * 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: * 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: * 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: * 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 Quando Quando
Subfamily Name Regular Regular
Full Name Quando-Regular Quando Regular
Postscript Name Quando-Regular Quando-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.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 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:

  • quotedbl (U+0022): found 3, expected one of: [2, 6]
  • parenright (U+0029): found 2, expected one of: [1, 5]
  • colon (U+003A): found 3, expected one of: [2, 6]
  • semicolon (U+003B): found 3, expected one of: [2, 6]
  • backslash (U+005C): found 2, expected one of: [1, 5]
  • bracketright (U+005D): found 2, expected one of: [1, 3, 5]
  • exclamdown (U+00A1): found 3, expected one of: [2, 6]
  • guillemotleft (U+00AB): found 3, expected one of: [2, 6]
  • guillemotright (U+00BB): found 3, expected one of: [2, 6]
    ... and 20 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 Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 1398 among a set of 13 math glyphs.
    The following math glyphs have a different width, though:
    width=1256: notequal
    width=1101: multiply
    width=1228: lessequal
    width=1157: plusminus, plus
    width=1118: equal, minus
    width=1192: approxequal
    width=1226: greaterequal
    width=1393: logicalnot
    width=1177: 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 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:
    • one (U+0031): X=622.5,Y=1534 (should be at cap-height 1533?)
    • five (U+0035): X=459,Y=1535 (should be at cap-height 1533?)
    • five (U+0035): X=933,Y=1532 (should be at cap-height 1533?)
    • A (U+0041): X=1626,Y=1 (should be at baseline 0?)
    • A (U+0041): X=1149,Y=1 (should be at baseline 0?)
    • B (U+0042): X=454,Y=1 (should be at baseline 0?)
    • B (U+0042): X=201,Y=1 (should be at baseline 0?)
    • D (U+0044): X=454,Y=1 (should be at baseline 0?)
    • D (U+0044): X=196,Y=1 (should be at baseline 0?)
      ... and 67 others [code: found-misalignments]
⚠️ WARN Do any segments have colinear vectors? (outline_colinear_vectors)
  • ⚠️ WARN The following glyphs have colinear vectors:
  • .notdef: from (919.0, 461.0) to (918.0, 477.0) is colinear with segment from (918.0, 477.0) to (918.0, 491.0)
  • asterisk (U+002A): from (307.0, 1710.0) to (339.0, 1692.0) is colinear with segment from (339.0, 1692.0) to (467.0, 1603.0)
  • eight (U+0038): from (876.0, 589.0) to (709.0, 680.0) is colinear with segment from (709.0, 680.0) to (590.0, 741.0)
  • B (U+0042): from (786.0, -10.0) to (454.0, 1.0) is colinear with segment from (454.0, 1.0) to (201.0, 1.0)
  • D (U+0044): from (739.0, -10.0) to (454.0, 1.0) is colinear with segment from (454.0, 1.0) to (196.0, 1.0)
  • L (U+004C): from (714.0, 131.0) to (789.0, 132.0) is colinear with segment from (789.0, 132.0) to (875.0, 133.0)
  • M (U+004D): from (1668.0, 271.0) to (1603.0, 1129.0) is colinear with segment from (1603.0, 1129.0) to (1594.0, 1296.0)
  • P (U+0050): from (144.0, 1533.0) to (392.0, 1533.0) is colinear with segment from (392.0, 1533.0) to (748.0, 1543.0)
  • R (U+0052): from (239.0, 1533.0) to (369.0, 1533.0) is colinear with segment from (369.0, 1533.0) to (720.0, 1543.0)
    ... and 60 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:
  • quotedbl (U+0022) has a path with no bounds (probably a single point)
  • parenright (U+0029) has a path with no bounds (probably a single point)
  • parenright (U+0029) has a counter-clockwise outer contour
  • colon (U+003A) has a path with no bounds (probably a single point)
  • semicolon (U+003B) has a path with no bounds (probably a single point)
  • greater (U+003E) has a path with no bounds (probably a single point)
  • greater (U+003E) has a counter-clockwise outer contour
  • backslash (U+005C) has a path with no bounds (probably a single point)
  • backslash (U+005C) has a counter-clockwise outer contour
    ... and 202 others [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:
  • one (U+0031): Line(Line { p0: (444.0, 305.0), p1: (445.0, 1161.0) }) (angle: 89.93 degrees, expected: 90.00 degrees)
  • B (U+0042): Line(Line { p0: (549.0, 850.0), p1: (700.0, 849.0) }) (angle: -0.38 degrees, expected: 0.00 degrees)
  • G (U+0047): Line(Line { p0: (1212.0, 207.0), p1: (1211.0, 493.0) }) (angle: 90.20 degrees, expected: 90.00 degrees)
  • t (U+0074): Line(Line { p0: (452.0, 682.0), p1: (451.0, 419.0) }) (angle: -90.22 degrees, expected: -90.00 degrees)
  • t (U+0074): Line(Line { p0: (453.0, 1003.0), p1: (452.0, 682.0) }) (angle: -90.18 degrees, expected: -90.00 degrees)
  • yen (U+00A5): Line(Line { p0: (753.0, 356.0), p1: (378.0, 353.0) }) (angle: -179.54 degrees, expected: -180.00 degrees)
  • yen (U+00A5): Line(Line { p0: (753.0, 674.0), p1: (386.0, 671.0) }) (angle: -179.53 degrees, expected: -180.00 degrees)
  • yen (U+00A5): Line(Line { p0: (986.0, 499.0), p1: (1350.0, 502.0) }) (angle: 0.47 degrees, expected: 0.00 degrees)
  • mu (U+00B5): Line(Line { p0: (951.0, 308.0), p1: (952.0, 890.0) }) (angle: 89.90 degrees, expected: 90.00 degrees)
    ... and 16 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 Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
Quando-Regular.ttf
Dehinted Size 90080
Hinted Size 119688
Increase 29608
Change 32.9 %
ℹ️ 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]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
42 26 10 110 68
16% 10% 4% 43% 27%

@felipesanches
felipesanches merged commit 00e726a into main Jul 22, 2026
12 checks passed
@felipesanches
felipesanches deleted the sfd-modernized-sources-round4-2026-07 branch July 22, 2026 18:14
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