Skip to content

Conversation

@emmamarichal
Copy link
Collaborator

@emmamarichal emmamarichal commented Jan 15, 2026

Taken from the upstream repo https://github.com/huertatipografica/betania-patmos at commit huertatipografica/betania-patmos@08c83ac.

PR Checklist:

PR

  • The PR is in the Traffic Jam Board (Project > Traffic Jam Board)
  • It has the correct labels (upgrade, new font, specific language)
  • The PR is linked to the corresponding issue

QA

  • Fontspector checks are reviewed and failing checks are resolved in collaboration with the upstream font development team
  • Diffenator2 and 3 regression checks for revisions on all projects that are currently in production
  • The article has no typos, images are properly linked and correctly sized
  • OFL.txt contains the correct license URL (https://openfontlicense.org)

Specifics

  • primary_script definition in the METADATA.pb file for all projects that have a primary non-Latin based language support target
  • subsets definitions in the METADATA.pb reflect the actual subsets and languages present in the font files (in alphabetic order). For CJK fonts, only include one of the following subsets chinese-hongkong, chinese-simplified, chinese-traditional, korean, japanese.

Release

  • Designers bio info have to be present in the designer catalog (at least an issue should be opened for tracking this, if they are not)
  • Check designers order in metadata.pb, since the first one of the list appears as “principal designer”
  • Social media content draft for all new commissioned projects in the Drive directory and Social Media tracker spreadsheet, communicate with the repository Maintainer so that they can push this content to the Social Media tracker spreadsheet
  • minisite_url definition in the METADATA.pb file for commissioned projects
  • tags are added for NEW FONTS
@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.2

Check results

[6] ofl/betaniapatmos
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. (googlefonts/metadata/consistent_repo_urls)
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Gheg Albanian language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA)
  • â (U+00E2)
  • ô (U+00F4) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Yanomamö, 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-ext, latin:
  • ẽ (U+1EBD) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Kabuverdianu 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 sm sample text (This suggests there's something wrong with the sample text):
  • â (U+00E2) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Kabuverdianu language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA)
  • ô (U+00F4) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Luxembourgish language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Umbundu language 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+00EA) [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]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets. (googlefonts/article/images)
  • ⚠️ WARN Article page lacks visual assets. [code: missing-visual-asset]
⚠️ WARN METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-subset]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/betaniapatmos/BetaniaPatmos-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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: cherokee, tifinagh, coptic, math
  • U+0306 COMBINING BREVE: try adding one of: tifinagh, old-permic
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, coptic, canadian-aboriginal, malayalam, duployan, tai-le, old-permic, syriac, hebrew, todhri, tifinagh
  • U+030A COMBINING RING ABOVE: try adding one of: duployan, syriac
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
    ... and 76 others

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

ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[12] ofl/betaniapatmos/BetaniaPatmos-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL The following glyphs are missing case-swapping counterparts:
Glyph present in the font Missing case-swapping counterpart
U+00C5: LATIN CAPITAL LETTER A WITH RING ABOVE U+00E5: LATIN SMALL LETTER A WITH RING ABOVE
U+1E80: LATIN CAPITAL LETTER W WITH GRAVE U+1E81: LATIN SMALL LETTER W WITH GRAVE
U+0102: LATIN CAPITAL LETTER A WITH BREVE U+0103: LATIN SMALL LETTER A WITH BREVE
U+00CA: LATIN CAPITAL LETTER E WITH CIRCUMFLEX U+00EA: LATIN SMALL LETTER E WITH CIRCUMFLEX
U+0132: LATIN CAPITAL LIGATURE IJ U+0133: LATIN SMALL LIGATURE IJ
U+00CE: LATIN CAPITAL LETTER I WITH CIRCUMFLEX U+00EE: LATIN SMALL LETTER I WITH CIRCUMFLEX
U+00DD: LATIN CAPITAL LETTER Y WITH ACUTE U+00FD: LATIN SMALL LETTER Y WITH ACUTE
U+1EF2: LATIN CAPITAL LETTER Y WITH GRAVE U+1EF3: LATIN SMALL LETTER Y WITH GRAVE
U+00C2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX U+00E2: LATIN SMALL LETTER A WITH CIRCUMFLEX
U+00D4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX U+00F4: LATIN SMALL LETTER O WITH CIRCUMFLEX
U+0100: LATIN CAPITAL LETTER A WITH MACRON U+0101: LATIN SMALL LETTER A WITH MACRON
U+0176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX U+0177: LATIN SMALL LETTER Y WITH CIRCUMFLEX
U+0174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX U+0175: LATIN SMALL LETTER W WITH CIRCUMFLEX
U+00DB: LATIN CAPITAL LETTER U WITH CIRCUMFLEX U+00FB: LATIN SMALL LETTER U WITH CIRCUMFLEX
U+1E84: LATIN CAPITAL LETTER W WITH DIAERESIS U+1E85: LATIN SMALL LETTER W WITH DIAERESIS
U+0178: LATIN CAPITAL LETTER Y WITH DIAERESIS U+00FF: LATIN SMALL LETTER Y WITH DIAERESIS
U+1E82: LATIN CAPITAL LETTER W WITH ACUTE U+1E83: LATIN SMALL LETTER W WITH ACUTE
⚠️ 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:

  • uni24EA (U+24EA): found 3, expected one of: {4, 5}
  • uni2460 (U+2460): found 2, expected one of: {3}
  • uni2461 (U+2461): found 2, expected one of: {3}
  • uni2464 (U+2464): found 2, expected one of: {4, 3}
  • uni2465 (U+2465): found 3, expected one of: {4}
  • uni2466 (U+2466): found 2, expected one of: {3}
  • uni2467 (U+2467): found 4, expected one of: {5, 6}
  • uni2468 (U+2468): found 3, expected one of: {4, 5} [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 710 among a set of 16 math glyphs.
    The following math glyphs have a different width, though:
    width=687: logicalnot
    width=501: multiply
    width=688: plus
    width=646: approxequal
    width=653: lessequal
    width=638: uni2238
    width=737: uni2239
    width=621: less, greater
    width=636: uni2237
    width=618: notequal [code: width-outliers]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. (typoascender_exceeds_Agrave)
  • ⚠️ WARN OS/2.sTypoAscender value should be greater than 1043, but got 1038 instead [code: typoAscender]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • b.init
  • eth.init
  • e.init
  • eacute.init
  • edieresis.init
  • egrave.init
  • uni1EBD.init
  • f.init
  • h.init
    ... and 33 others [code: unreachable-glyphs]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • v (U+0076): Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.fina: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.init: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.isol: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.bottom: Line(Line { p0: (539.0, 332.0), p1: (539.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.middle: Line(Line { p0: (507.0, 332.0), p1: (507.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.top: Line(Line { p0: (410.0, 332.0), p1: (410.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.bottom.fina: Line(Line { p0: (539.0, 332.0), p1: (539.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.middle.fina: Line(Line { p0: (507.0, 332.0), p1: (507.0, 332.0) }) has the same coordinates as a previous segment.
    ... and 3 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]
ℹ️ INFO Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
BetaniaPatmos-Regular.ttf
Dehinted Size 145448
Hinted Size 195312
Increase 49864
Change 34.3 %
ℹ️ 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 11.002; ttfautohint (v1.8.4.16-eb64) [code: version-not-detected]
[4] ofl/betaniapatmos/article/ARTICLE.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]
🔥 FAIL Is this a proper HTML snippet? (googlefonts/description/valid_html)
  • 🔥 FAIL ofl/betaniapatmos/article/ARTICLE.en_us.html does not include an HTML

    tag. [code: lacks-paragraph]

⚠️ 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/betaniapatmos/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb classifications field contains invalid value 'HANDWRITING'. Valid values are: Display, Handwriting, Monospace, Symbols [code: invalid-classification]

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

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
14 10 7 124 57
7% 5% 3% 61% 28%
@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.2

Check results

[1] ofl/betaniapatmos/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb classifications field contains invalid value 'HANDWRITING'. Valid values are: Display, Handwriting, Monospace, Symbols [code: invalid-classification]

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

[12] ofl/betaniapatmos/BetaniaPatmos-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL The following glyphs are missing case-swapping counterparts:
Glyph present in the font Missing case-swapping counterpart
U+0174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX U+0175: LATIN SMALL LETTER W WITH CIRCUMFLEX
U+00CA: LATIN CAPITAL LETTER E WITH CIRCUMFLEX U+00EA: LATIN SMALL LETTER E WITH CIRCUMFLEX
U+0178: LATIN CAPITAL LETTER Y WITH DIAERESIS U+00FF: LATIN SMALL LETTER Y WITH DIAERESIS
U+00DD: LATIN CAPITAL LETTER Y WITH ACUTE U+00FD: LATIN SMALL LETTER Y WITH ACUTE
U+00C5: LATIN CAPITAL LETTER A WITH RING ABOVE U+00E5: LATIN SMALL LETTER A WITH RING ABOVE
U+1E84: LATIN CAPITAL LETTER W WITH DIAERESIS U+1E85: LATIN SMALL LETTER W WITH DIAERESIS
U+1E80: LATIN CAPITAL LETTER W WITH GRAVE U+1E81: LATIN SMALL LETTER W WITH GRAVE
U+00CE: LATIN CAPITAL LETTER I WITH CIRCUMFLEX U+00EE: LATIN SMALL LETTER I WITH CIRCUMFLEX
U+0100: LATIN CAPITAL LETTER A WITH MACRON U+0101: LATIN SMALL LETTER A WITH MACRON
U+00D4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX U+00F4: LATIN SMALL LETTER O WITH CIRCUMFLEX
U+0176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX U+0177: LATIN SMALL LETTER Y WITH CIRCUMFLEX
U+00C2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX U+00E2: LATIN SMALL LETTER A WITH CIRCUMFLEX
U+1EF2: LATIN CAPITAL LETTER Y WITH GRAVE U+1EF3: LATIN SMALL LETTER Y WITH GRAVE
U+1E82: LATIN CAPITAL LETTER W WITH ACUTE U+1E83: LATIN SMALL LETTER W WITH ACUTE
U+0132: LATIN CAPITAL LIGATURE IJ U+0133: LATIN SMALL LIGATURE IJ
U+0102: LATIN CAPITAL LETTER A WITH BREVE U+0103: LATIN SMALL LETTER A WITH BREVE
U+00DB: LATIN CAPITAL LETTER U WITH CIRCUMFLEX U+00FB: LATIN SMALL LETTER U WITH CIRCUMFLEX
⚠️ 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:

  • uni24EA (U+24EA): found 3, expected one of: {4, 5}
  • uni2460 (U+2460): found 2, expected one of: {3}
  • uni2461 (U+2461): found 2, expected one of: {3}
  • uni2464 (U+2464): found 2, expected one of: {3, 4}
  • uni2465 (U+2465): found 3, expected one of: {4}
  • uni2466 (U+2466): found 2, expected one of: {3}
  • uni2467 (U+2467): found 4, expected one of: {5, 6}
  • uni2468 (U+2468): found 3, expected one of: {5, 4} [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 710 among a set of 16 math glyphs.
    The following math glyphs have a different width, though:
    width=638: uni2238
    width=687: logicalnot
    width=688: plus
    width=636: uni2237
    width=737: uni2239
    width=621: less, greater
    width=646: approxequal
    width=501: multiply
    width=618: notequal
    width=653: lessequal [code: width-outliers]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. (typoascender_exceeds_Agrave)
  • ⚠️ WARN OS/2.sTypoAscender value should be greater than 1043, but got 1038 instead [code: typoAscender]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • b.init
  • eth.init
  • e.init
  • eacute.init
  • edieresis.init
  • egrave.init
  • uni1EBD.init
  • f.init
  • h.init
    ... and 33 others [code: unreachable-glyphs]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • v (U+0076): Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.fina: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.init: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.isol: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.bottom: Line(Line { p0: (539.0, 332.0), p1: (539.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.middle: Line(Line { p0: (507.0, 332.0), p1: (507.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.top: Line(Line { p0: (410.0, 332.0), p1: (410.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.bottom.fina: Line(Line { p0: (539.0, 332.0), p1: (539.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.middle.fina: Line(Line { p0: (507.0, 332.0), p1: (507.0, 332.0) }) has the same coordinates as a previous segment.
    ... and 3 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]
ℹ️ INFO Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
BetaniaPatmos-Regular.ttf
Dehinted Size 145448
Hinted Size 195312
Increase 49864
Change 34.3 %
ℹ️ 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 11.002; ttfautohint (v1.8.4.16-eb64) [code: version-not-detected]
[5] ofl/betaniapatmos
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field. (googlefonts/metadata/consistent_repo_urls)
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Gheg Albanian language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA)
  • ô (U+00F4)
  • â (U+00E2) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Yanomamö, 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-ext, latin:
  • ẽ (U+1EBD) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Kabuverdianu 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 sm sample text (This suggests there's something wrong with the sample text):
  • â (U+00E2) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Kabuverdianu language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA)
  • ô (U+00F4) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Luxembourgish language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Umbundu language 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+00EA) [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]
⚠️ WARN METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-subset]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/betaniapatmos/BetaniaPatmos-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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: cherokee, coptic, math, tifinagh
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: canadian-aboriginal, coptic, hebrew, todhri, malayalam, tai-le, old-permic, syriac, tifinagh, duployan, math
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
    ... and 76 others

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

ℹ️ 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/betaniapatmos/article/ARTICLE.en_us.html
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
11 8 8 128 57
5% 4% 4% 63% 28%
@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.2

Check results

[1] ofl/betaniapatmos/article/ARTICLE.en_us.html
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)
[12] ofl/betaniapatmos/BetaniaPatmos-Regular.ttf
🔥 FAIL Ensure the font supports case swapping for all its glyphs. (case_mapping)
  • 🔥 FAIL The following glyphs are missing case-swapping counterparts:
Glyph present in the font Missing case-swapping counterpart
U+0176: LATIN CAPITAL LETTER Y WITH CIRCUMFLEX U+0177: LATIN SMALL LETTER Y WITH CIRCUMFLEX
U+00C5: LATIN CAPITAL LETTER A WITH RING ABOVE U+00E5: LATIN SMALL LETTER A WITH RING ABOVE
U+00CA: LATIN CAPITAL LETTER E WITH CIRCUMFLEX U+00EA: LATIN SMALL LETTER E WITH CIRCUMFLEX
U+00DD: LATIN CAPITAL LETTER Y WITH ACUTE U+00FD: LATIN SMALL LETTER Y WITH ACUTE
U+00DB: LATIN CAPITAL LETTER U WITH CIRCUMFLEX U+00FB: LATIN SMALL LETTER U WITH CIRCUMFLEX
U+0178: LATIN CAPITAL LETTER Y WITH DIAERESIS U+00FF: LATIN SMALL LETTER Y WITH DIAERESIS
U+00C2: LATIN CAPITAL LETTER A WITH CIRCUMFLEX U+00E2: LATIN SMALL LETTER A WITH CIRCUMFLEX
U+0174: LATIN CAPITAL LETTER W WITH CIRCUMFLEX U+0175: LATIN SMALL LETTER W WITH CIRCUMFLEX
U+1EF2: LATIN CAPITAL LETTER Y WITH GRAVE U+1EF3: LATIN SMALL LETTER Y WITH GRAVE
U+1E82: LATIN CAPITAL LETTER W WITH ACUTE U+1E83: LATIN SMALL LETTER W WITH ACUTE
U+1E80: LATIN CAPITAL LETTER W WITH GRAVE U+1E81: LATIN SMALL LETTER W WITH GRAVE
U+00CE: LATIN CAPITAL LETTER I WITH CIRCUMFLEX U+00EE: LATIN SMALL LETTER I WITH CIRCUMFLEX
U+1E84: LATIN CAPITAL LETTER W WITH DIAERESIS U+1E85: LATIN SMALL LETTER W WITH DIAERESIS
U+0132: LATIN CAPITAL LIGATURE IJ U+0133: LATIN SMALL LIGATURE IJ
U+00D4: LATIN CAPITAL LETTER O WITH CIRCUMFLEX U+00F4: LATIN SMALL LETTER O WITH CIRCUMFLEX
U+0102: LATIN CAPITAL LETTER A WITH BREVE U+0103: LATIN SMALL LETTER A WITH BREVE
U+0100: LATIN CAPITAL LETTER A WITH MACRON U+0101: LATIN SMALL LETTER A WITH MACRON
⚠️ 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:

  • uni24EA (U+24EA): found 3, expected one of: {4, 5}
  • uni2460 (U+2460): found 2, expected one of: {3}
  • uni2461 (U+2461): found 2, expected one of: {3}
  • uni2464 (U+2464): found 2, expected one of: {4, 3}
  • uni2465 (U+2465): found 3, expected one of: {4}
  • uni2466 (U+2466): found 2, expected one of: {3}
  • uni2467 (U+2467): found 4, expected one of: {5, 6}
  • uni2468 (U+2468): found 3, expected one of: {4, 5} [code: contour-count]
⚠️ WARN Check math signs have the same width. (math_signs_width)
  • ⚠️ WARN The most common width is 710 among a set of 16 math glyphs.
    The following math glyphs have a different width, though:
    width=501: multiply
    width=621: less, greater
    width=737: uni2239
    width=646: approxequal
    width=687: logicalnot
    width=638: uni2238
    width=618: notequal
    width=688: plus
    width=636: uni2237
    width=653: lessequal [code: width-outliers]
⚠️ WARN Checking that the typoAscender exceeds the yMax of the /Agrave. (typoascender_exceeds_Agrave)
  • ⚠️ WARN OS/2.sTypoAscender value should be greater than 1043, but got 1038 instead [code: typoAscender]
⚠️ WARN Check font contains no unreachable glyphs (unreachable_glyphs)
  • ⚠️ WARN The following glyphs could not be reached by codepoint or substitution rules:
  • b.init
  • eth.init
  • e.init
  • eacute.init
  • edieresis.init
  • egrave.init
  • uni1EBD.init
  • f.init
  • h.init
    ... and 33 others [code: unreachable-glyphs]
⚠️ WARN Check there are no overlapping path segments (overlapping_path_segments)
  • ⚠️ WARN The following glyphs have overlapping path segments:
  • v (U+0076): Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.fina: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.init: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.isol: Line(Line { p0: (515.0, 332.0), p1: (515.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.bottom: Line(Line { p0: (539.0, 332.0), p1: (539.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.middle: Line(Line { p0: (507.0, 332.0), p1: (507.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.top: Line(Line { p0: (410.0, 332.0), p1: (410.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.bottom.fina: Line(Line { p0: (539.0, 332.0), p1: (539.0, 332.0) }) has the same coordinates as a previous segment.
  • v.from.middle.fina: Line(Line { p0: (507.0, 332.0), p1: (507.0, 332.0) }) has the same coordinates as a previous segment.
    ... and 3 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]
ℹ️ INFO Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
ℹ️ INFO Show hinting filesize impact. (hinting_impact)
  • ℹ️ INFO Hinting filesize impact:
BetaniaPatmos-Regular.ttf
Dehinted Size 145448
Hinted Size 195312
Increase 49864
Change 34.3 %
ℹ️ 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 11.002; ttfautohint (v1.8.4.16-eb64) [code: version-not-detected]
[4] ofl/betaniapatmos
🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL We detected support for the Gheg Albanian language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA)
  • ô (U+00F4)
  • â (U+00E2) [code: bad-sample-text]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Yanomamö, 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-ext, latin:
  • ẽ (U+1EBD) [code: missing-subsetted]
  • 🔥 FAIL We detected support for the Kabuverdianu 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 sm sample text (This suggests there's something wrong with the sample text):
  • â (U+00E2) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Kabuverdianu language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA)
  • ô (U+00F4) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Luxembourgish language because the font contained all the base exemplars for the language, but the font is missing the following codepoints needed to render the specimen 16 sample text (This suggests there's something wrong with the sample text):
  • ê (U+00EA) [code: bad-sample-text]
  • 🔥 FAIL We detected support for the Umbundu language 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+00EA) [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]
⚠️ WARN METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ⚠️ WARN Please remove 'latin-ext' from METADATA.pb since less than 20% of its glyphs are supported by this font file. [code: unsupported-subset]
⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/betaniapatmos/BetaniaPatmos-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+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: coptic, tifinagh, math, cherokee
  • U+0306 COMBINING BREVE: try adding one of: old-permic, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: coptic, syriac, tifinagh, todhri, canadian-aboriginal, malayalam, math, tai-le, duployan, old-permic, hebrew
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
    ... and 76 others

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

ℹ️ 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/betaniapatmos/METADATA.pb
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • 🔥 FAIL METADATA.pb classifications field contains invalid value 'HANDWRITING'. Valid values are: Display, Handwriting, Monospace, Symbols [code: invalid-classification]

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

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
10 8 8 129 57
5% 4% 4% 64% 28%
@emmamarichal emmamarichal linked an issue Jan 23, 2026 that may be closed by this pull request
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

1 participant