Skip to content

Adding Bpmf Iansui v1.610#10172

Merged
emmamarichal merged 6 commits intomainfrom
bpmf_iansui
Feb 11, 2026
Merged

Adding Bpmf Iansui v1.610#10172
emmamarichal merged 6 commits intomainfrom
bpmf_iansui

Conversation

@aaronbell
Copy link
Collaborator

Onboarding three Bopomofo fonts:

Bpmf Iansui

Based on the existing GF font. At present, these are being built in https://github.com/aaronbell/bpmfvs, but will be transitioned upstream to https://github.com/ButTaiwan/bpmfvs once the rest of the fonts' build systems are modernized.

@aaronbell aaronbell added the II CJK Chinese, Japanese, Korean scripts label Jan 30, 2026
@aaronbell aaronbell changed the title Adding Bpmf Iansui Adding Bpmf Iansui v1.610 Jan 30, 2026
@github-actions

This comment was marked as outdated.

@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.2

Checks with FATAL results

These must be addressed first.

[1] ofl/bpmfiansui/BpmfIansui-Regular.ttf
💥 ERROR Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)

All other checks

[21] ofl/bpmfiansui/BpmfIansui-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • uniF000 (Some(61440))
  • z_a1 (Some(61441))
  • z_a2 (Some(61442))
  • z_a5 (Some(61443))
  • z_ai1 (Some(61444))
  • z_ai2 (Some(61445))
  • z_ai3 (Some(61446))
  • z_ai4 (Some(61447))
  • z_an1 (Some(61448))
    ... and 1378 others [code: zero-width-bases]
🔥 FAIL Check font follows the Google Fonts CJK vertical metric schema (googlefonts/cjk_vertical_metrics)
  • 🔥 FAIL OS/2.sTypoAscender is 940; it should be between 951 and 1002 [code: bad-OS/2.sTypoAscender]

  • 🔥 FAIL OS/2.usWinAscent is 1066; it should be 1048 [code: bad-OS/2.usWinAscent]

  • 🔥 FAIL OS/2.usWinDescent is 273; it should be 202 [code: bad-OS/2.usWinDescent]

  • ℹ️ INFO Computed BASE table entries:

Baseline Computed BASE table
Horizontal icfb -88 -64
Horizontal icft 803 840
Horizontal ideo -154 -124
Horizontal idtp 869 900
Horizontal romn 0 0
Vertical icfb 48 60
Vertical icft 1459 1476
Vertical ideo 0 0
Vertical idtp 1536 1536
Vertical romn 154 120
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Bpmf Iansui Bpmf Iansui
Subfamily Name Regular Regular
Full Name Bpmf Iansui Regular Bpmf Iansui Regular
Postscript Name BpmfIansui-Regular BpmfIansui-Regular
Typographic Family Name Bpmf Iansui ㄅ注音芫荽
Typographic Subfamily Name Regular Regular
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 1428 but it should be 1525 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 the font contain chws and vchw features? (cjk_chws_feature)
⚠️ 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:

  • z_an4 (U+F00B): found 3, expected one of: {2, 1}
  • z_ang2 (U+F00D): found 2, expected one of: {1, 3}
  • z_ao4 (U+F013): found 2, expected one of: {3, 1}
  • z_bao2 (U+F025): found 3, expected one of: {14, 11, 2}
  • z_bei4 (U+F02B): found 3, expected one of: {2, 1}
  • z_fen4 (U+F131): found 3, expected one of: {1}
  • z_fen5 (U+F132): found 3, expected one of: {1, 6}
  • z_feng1 (U+F133): found 2, expected one of: {1}
  • z_feng2 (U+F134): found 3, expected one of: {2}
    ... and 200 others [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 7.69 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ 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 1536 among a set of 16 math glyphs.
    The following math glyphs have a different width, though:
    width=600: uni003C, uni00B1, uni00D7, uni00F7, uni003D, uni002B, uni003E [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 The stylistic set ss02 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss03 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss04 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss05 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss10 lacks a description string in the name table [code: missing-description]

⚠️ WARN Glyph names are all valid? (valid_glyphnames)
  • ⚠️ WARN Glyph 0x0020 is called uni0020; must be named 'space'. [code: not-recommended-0020]
⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (soft_dotted)
  • ⚠️ WARN The dot of soft dotted characters used in orthographies must disappear in the following strings:
  • j̀The dot of soft dotted characters should disappear in other cases, for example:

  • ǰ [code: soft-dotted]

⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • uniF000 (U+F000) has a counter-clockwise outer contour
  • uniF000.vert has a counter-clockwise outer contour
  • uni6FA9 (U+6FA9) has a path with no bounds (probably a single point)
  • uni6FA9.ss00 has a path with no bounds (probably a single point)
  • uni6FA9.ss01 has a path with no bounds (probably a single point)
  • emptyBox (U+2610) 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:
  • uni0038 (U+0038): Quad(QuadBez { p0: (375.0, 480.0), p1: (423.0, 515.0), p2: (467.0, 550.0) })/Quad(QuadBez { p0: (467.0, 550.0), p1: (465.0, 549.0), p2: (459.0, 549.0) }) = 11.935602543267457
  • uni2467 (U+2467): Quad(QuadBez { p0: (673.0, 565.0), p1: (673.0, 560.0), p2: (670.0, 555.0) })/Quad(QuadBez { p0: (670.0, 555.0), p1: (672.0, 557.0), p2: (679.0, 562.5) }) = 14.036243467926484
  • uni2467 (U+2467): Quad(QuadBez { p0: (569.5, 485.0), p1: (613.0, 511.0), p2: (652.0, 540.0) })/Quad(QuadBez { p0: (652.0, 540.0), p1: (650.0, 539.0), p2: (646.0, 539.0) }) = 10.069062698889491
  • uni338E (U+338E): Quad(QuadBez { p0: (95.0, 432.0), p1: (94.0, 420.0), p2: (93.0, 406.0) })/Quad(QuadBez { p0: (93.0, 406.0), p1: (104.0, 441.0), p2: (127.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (579.0, 432.0), p1: (578.0, 420.0), p2: (577.0, 406.0) })/Quad(QuadBez { p0: (577.0, 406.0), p1: (588.0, 441.0), p2: (611.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (83.0, 432.0), p1: (82.0, 420.0), p2: (81.0, 406.0) })/Quad(QuadBez { p0: (81.0, 406.0), p1: (92.0, 441.0), p2: (115.0, 464.0) }) = 13.361571643307318
  • uni339D (U+339D): Quad(QuadBez { p0: (561.0, 432.0), p1: (560.0, 420.0), p2: (559.0, 406.0) })/Quad(QuadBez { p0: (559.0, 406.0), p1: (570.0, 441.0), p2: (593.0, 464.0) }) = 13.361571643307318
  • uni339E (U+339E): Quad(QuadBez { p0: (545.0, 432.0), p1: (544.0, 420.0), p2: (543.0, 406.0) })/Quad(QuadBez { p0: (543.0, 406.0), p1: (554.0, 441.0), p2: (577.0, 464.0) }) = 13.361571643307318
  • zyh: Quad(QuadBez { p0: (207.0, 277.0), p1: (250.0, 283.0), p2: (246.0, 282.0) })/Quad(QuadBez { p0: (246.0, 282.0), p1: (269.0, 286.0), p2: (274.0, 286.0) }) = 4.170436524842054
    ... and 2597 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:
  • uni0054 (U+0054): Line(Line { p0: (322.0, 636.0), p1: (323.0, 106.0) })
  • uni0054 (U+0054): Line(Line { p0: (251.0, 107.0), p1: (252.0, 632.0) })
  • uni0071 (U+0071): Line(Line { p0: (418.0, -59.0), p1: (419.0, 112.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (537.0, 636.0), p1: (538.0, 106.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (466.0, 107.0), p1: (467.0, 632.0) })
  • uni3021 (U+3021): Line(Line { p0: (460.0, 28.0), p1: (458.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (638.0, 28.0), p1: (636.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (305.0, 74.0), p1: (303.0, 704.0) })
  • uni3023 (U+3023): Line(Line { p0: (719.0, 28.0), p1: (717.0, 734.0) })
    ... and 33429 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 Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    BASE
    GSUB
    gasp
    vhea
    vmtx [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.610 [code: version-not-detected]
[2] ofl/bpmfiansui/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that butko 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[9] ofl/bpmfiansui
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • 🔥 FAIL METADATA.pb full_name field "Bpmf Iansui Regular" does not match correct full name "ㄅ注音芫荽 Regular". [code: fullname-mismatch]

  • 🔥 FAIL METADATA.pb family name field "Bpmf Iansui" does not match correct family name "ㄅ注音芫荽". [code: familyname-mismatch]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Jin Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Gan Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Xiang Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • て (U+3066)
  • べ (U+3079)
  • の (U+306E)
  • す (U+3059) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • ん (U+3093)
  • に (U+306B)
  • げ (U+3052) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • は (U+306F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • く (U+304F)
  • か (U+304B)
  • い (U+3044)
  • う (U+3046)
  • そ (U+305D)
  • っ (U+3063)
  • よ (U+3088)
  • れ (U+308C)
  • こ (U+3053) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • さ (U+3055)
  • り (U+308A)
  • き (U+304D)
  • ご (U+3054)
  • と (U+3068)
  • し (U+3057)
  • ょ (U+3087)
  • め (U+3081) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • ゆ (U+3086)
  • み (U+307F)
  • ぽ (U+307D)
  • も (U+3082)
  • け (U+3051)
  • む (U+3080)
  • ほ (U+307B)
  • び (U+3073)
  • ぱ (U+3071)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ベ (U+30D9)
  • ノ (U+30CE)
  • テ (U+30C6)
  • ス (U+30B9) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ニ (U+30CB)
  • ゲ (U+30B2)
  • ン (U+30F3) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ハ (U+30CF) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • コ (U+30B3)
  • ウ (U+30A6)
  • ク (U+30AF)
  • ッ (U+30C3)
  • カ (U+30AB)
  • イ (U+30A4)
  • レ (U+30EC)
  • ソ (U+30BD)
  • ヨ (U+30E8) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ョ (U+30E7)
  • サ (U+30B5)
  • ゴ (U+30B4)
  • ト (U+30C8)
  • キ (U+30AD)
  • シ (U+30B7)
  • リ (U+30EA)
  • メ (U+30E1) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ブ (U+30D6)
  • ラ (U+30E9)
  • ド (U+30C9)
  • デ (U+30C7)
  • ネ (U+30CD)
  • ガ (U+30AC)
  • ヒ (U+30D2)
  • バ (U+30D0)
  • チ (U+30C1)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Wu Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 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 The font has the following codepoints needed to render the specimen 16 sample text for language Chinese (Traditional), 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B)
  • , (U+FF0C) [code: missing-subsetted]
🔥 FAIL Check Google Fonts glyph coverage. (googlefonts/glyph_coverage)
  • 🔥 FAIL ofl/bpmfiansui/BpmfIansui-Regular.ttf missing required codepoints:
  • 0x00A2: CENT SIGN
  • 0x00A3: POUND SIGN
  • 0x00A5: YEN SIGN
  • 0x00A9: COPYRIGHT SIGN
  • 0x00AE: REGISTERED SIGN
  • 0x2022: BULLET
  • 0x2122: TRADE MARK SIGN
  • 0x2212: MINUS SIGN [code: missing-codepoints]
⚠️ 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: Check for primary_script (googlefonts/metadata/primary_script)
  • ⚠️ WARN METADATA.pb: primary_script is 'Hant' but should be 'Hani'. [code: wrong-primary-script]
⚠️ WARN METADATA.pb subsets are correct? (googlefonts/metadata/subsets_correct)
  • ⚠️ WARN Please add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-simplified' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ 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/bpmfiansui/BpmfIansui-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+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0391 GREEK CAPITAL LETTER ALPHA: try adding one of: elbasan, math, greek
  • U+0392 GREEK CAPITAL LETTER BETA: try adding one of: greek, math, elbasan
  • U+0393 GREEK CAPITAL LETTER GAMMA: try adding one of: greek, math, elbasan
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: math, elbasan, greek
  • U+0395 GREEK CAPITAL LETTER EPSILON: try adding one of: math, elbasan, greek
  • U+0396 GREEK CAPITAL LETTER ZETA: try adding one of: elbasan, greek, math
  • U+0397 GREEK CAPITAL LETTER ETA: try adding one of: elbasan, greek, math
    ... and 1279 others

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

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
ℹ️ 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/bpmfiansui/article/ARTICLE.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)

Summary

💥 ERROR 🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
1 28 31 7 104 66
0% 14% 15% 3% 51% 32%

Updating with various fixes.
@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.4

Check results

[2] ofl/bpmfiansui/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that butko 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[21] ofl/bpmfiansui/BpmfIansui-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • uniF000 (Some(61440))
  • z_a1 (Some(61441))
  • z_a2 (Some(61442))
  • z_a5 (Some(61443))
  • z_ai1 (Some(61444))
  • z_ai2 (Some(61445))
  • z_ai3 (Some(61446))
  • z_ai4 (Some(61447))
  • z_an1 (Some(61448))
    ... and 1378 others [code: zero-width-bases]
🔥 FAIL Glyph names are all valid? (valid_glyphnames)
  • 🔥 FAIL The following glyph names do not comply with naming conventions: uni00A5 , uni2022 , uni00A2 , uni00AE .vrt2, uni2122 .vrt2, uni2022 .vrt2, uni2212 , uni00A3 , uni2212 .vrt2, uni00A2 .vrt2, uni00AE , uni00A5 .vrt2, uni00A3 .vrt2, uni00A9 .vrt2, uni2122 , uni00A9

              A glyph name must be entirely comprised of characters
              from the following set: A-Z a-z 0-9 .(period) _(underscore).
              A glyph name must not start with a digit or period.
              There are a few exceptions such as the special glyph '.notdef'.
              The glyph names "twocents", "a1", and "_" are all valid,
              while "2cents" and ".twocents" are not.' [code: found-invalid-names]
    
  • ⚠️ WARN Glyph 0x0020 is called uni0020; must be named 'space'. [code: not-recommended-0020]

🔥 FAIL Check font follows the Google Fonts CJK vertical metric schema (googlefonts/cjk_vertical_metrics)
  • 🔥 FAIL OS/2.usWinAscent is 1066; it should be 1048 [code: bad-OS/2.usWinAscent]

  • 🔥 FAIL OS/2.usWinDescent is 273; it should be 202 [code: bad-OS/2.usWinDescent]

  • 🔥 FAIL horizontal idtp for script latn should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script latn should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script DFLT should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script DFLT should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script hani should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script hani should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script cyrl should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script cyrl should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script kana should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script kana should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script grek should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script grek should be present [code: missing-vertical-idtp]

  • ℹ️ INFO Computed BASE table entries:

Baseline Computed BASE table
Horizontal icfb -88 -67
Horizontal icft 803 827
Horizontal ideo -142 -120
Horizontal idtp 857 N/A
Horizontal romn 0 0
Vertical icfb 48 53
Vertical icft 1435 1447
Vertical ideo 0 0
Vertical idtp 1500 N/A
Vertical romn 142 120
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Bpmf Iansui Bpmf Iansui
Subfamily Name Regular Regular
Full Name Bpmf Iansui Regular Bpmf Iansui Regular
Postscript Name BpmfIansui-Regular BpmfIansui-Regular
Typographic Family Name Bpmf Iansui ㄅ注音芫荽
Typographic Subfamily Name Regular Regular
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 1394 but it should be 1489 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 the font contain chws and vchw features? (cjk_chws_feature)
⚠️ 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:

  • z_an4 (U+F00B): found 3, expected one of: {1, 2}
  • z_ang2 (U+F00D): found 2, expected one of: {3, 1}
  • z_ao4 (U+F013): found 2, expected one of: {1, 3}
  • z_bao2 (U+F025): found 3, expected one of: {11, 14, 2}
  • z_bei4 (U+F02B): found 3, expected one of: {2, 1}
  • z_fen4 (U+F131): found 3, expected one of: {1}
  • z_fen5 (U+F132): found 3, expected one of: {6, 1}
  • z_feng1 (U+F133): found 2, expected one of: {1}
  • z_feng2 (U+F134): found 3, expected one of: {2}
    ... and 200 others [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 7.70 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ 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 1500 among a set of 17 math glyphs.
    The following math glyphs have a different width, though:
    width=600: uni002B, uni003D, uni00D7, uni00B1, uni003E, uni00F7, uni003C
    width=350: uni2212 [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 The stylistic set ss02 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss03 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss04 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss05 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss10 lacks a description string in the name table [code: missing-description]

⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (soft_dotted)
  • ⚠️ WARN The dot of soft dotted characters used in orthographies must disappear in the following strings:
  • j̄The dot of soft dotted characters should disappear in other cases, for example:

  • ï [code: soft-dotted]

⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • uniF000 (U+F000) has a counter-clockwise outer contour
  • uniF000.vert has a counter-clockwise outer contour
  • uni6FA9 (U+6FA9) has a path with no bounds (probably a single point)
  • uni6FA9.ss00 has a path with no bounds (probably a single point)
  • uni6FA9.ss01 has a path with no bounds (probably a single point)
  • emptyBox (U+2610) 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:
  • uni0038 (U+0038): Quad(QuadBez { p0: (375.0, 480.0), p1: (423.0, 515.0), p2: (467.0, 550.0) })/Quad(QuadBez { p0: (467.0, 550.0), p1: (465.0, 549.0), p2: (459.0, 549.0) }) = 11.935602543267457
  • uni2467 (U+2467): Quad(QuadBez { p0: (673.0, 565.0), p1: (673.0, 560.0), p2: (670.0, 555.0) })/Quad(QuadBez { p0: (670.0, 555.0), p1: (672.0, 557.0), p2: (679.0, 562.5) }) = 14.036243467926484
  • uni2467 (U+2467): Quad(QuadBez { p0: (569.5, 485.0), p1: (613.0, 511.0), p2: (652.0, 540.0) })/Quad(QuadBez { p0: (652.0, 540.0), p1: (650.0, 539.0), p2: (646.0, 539.0) }) = 10.069062698889491
  • uni338E (U+338E): Quad(QuadBez { p0: (95.0, 432.0), p1: (94.0, 420.0), p2: (93.0, 406.0) })/Quad(QuadBez { p0: (93.0, 406.0), p1: (104.0, 441.0), p2: (127.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (579.0, 432.0), p1: (578.0, 420.0), p2: (577.0, 406.0) })/Quad(QuadBez { p0: (577.0, 406.0), p1: (588.0, 441.0), p2: (611.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (83.0, 432.0), p1: (82.0, 420.0), p2: (81.0, 406.0) })/Quad(QuadBez { p0: (81.0, 406.0), p1: (92.0, 441.0), p2: (115.0, 464.0) }) = 13.361571643307318
  • uni339D (U+339D): Quad(QuadBez { p0: (561.0, 432.0), p1: (560.0, 420.0), p2: (559.0, 406.0) })/Quad(QuadBez { p0: (559.0, 406.0), p1: (570.0, 441.0), p2: (593.0, 464.0) }) = 13.361571643307318
  • uni339E (U+339E): Quad(QuadBez { p0: (545.0, 432.0), p1: (544.0, 420.0), p2: (543.0, 406.0) })/Quad(QuadBez { p0: (543.0, 406.0), p1: (554.0, 441.0), p2: (577.0, 464.0) }) = 13.361571643307318
  • zyh: Quad(QuadBez { p0: (207.0, 277.0), p1: (250.0, 283.0), p2: (246.0, 282.0) })/Quad(QuadBez { p0: (246.0, 282.0), p1: (269.0, 286.0), p2: (274.0, 286.0) }) = 4.170436524842054
    ... and 2597 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:
  • uni0054 (U+0054): Line(Line { p0: (322.0, 636.0), p1: (323.0, 106.0) })
  • uni0054 (U+0054): Line(Line { p0: (251.0, 107.0), p1: (252.0, 632.0) })
  • uni0071 (U+0071): Line(Line { p0: (418.0, -59.0), p1: (419.0, 112.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (537.0, 636.0), p1: (538.0, 106.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (466.0, 107.0), p1: (467.0, 632.0) })
  • uni3021 (U+3021): Line(Line { p0: (460.0, 28.0), p1: (458.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (638.0, 28.0), p1: (636.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (305.0, 74.0), p1: (303.0, 704.0) })
  • uni3023 (U+3023): Line(Line { p0: (719.0, 28.0), p1: (717.0, 734.0) })
    ... and 33429 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 Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    BASE
    GSUB
    gasp
    vhea
    vmtx [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.610 [code: version-not-detected]
[2] ofl/bpmfiansui/article/ARTICLE.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)
[7] ofl/bpmfiansui
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • 🔥 FAIL METADATA.pb full_name field "Bpmf Iansui Regular" does not match correct full name "ㄅ注音芫荽 Regular". [code: fullname-mismatch]

  • 🔥 FAIL METADATA.pb family name field "Bpmf Iansui" does not match correct family name "ㄅ注音芫荽". [code: familyname-mismatch]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Jin Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Gan Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Xiang Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • す (U+3059)
  • て (U+3066)
  • の (U+306E)
  • べ (U+3079) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • ん (U+3093)
  • に (U+306B)
  • げ (U+3052) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • は (U+306F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • こ (U+3053)
  • か (U+304B)
  • う (U+3046)
  • よ (U+3088)
  • れ (U+308C)
  • く (U+304F)
  • そ (U+305D)
  • っ (U+3063)
  • い (U+3044) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • ょ (U+3087)
  • ご (U+3054)
  • め (U+3081)
  • り (U+308A)
  • し (U+3057)
  • と (U+3068)
  • き (U+304D)
  • さ (U+3055) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • や (U+3084)
  • ま (U+307E)
  • ね (U+306D)
  • お (U+304A)
  • わ (U+308F)
  • み (U+307F)
  • ふ (U+3075)
  • だ (U+3060)
  • た (U+305F)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ス (U+30B9)
  • ベ (U+30D9)
  • ノ (U+30CE)
  • テ (U+30C6) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ン (U+30F3)
  • ゲ (U+30B2)
  • ニ (U+30CB) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ハ (U+30CF) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ウ (U+30A6)
  • ヨ (U+30E8)
  • イ (U+30A4)
  • カ (U+30AB)
  • ッ (U+30C3)
  • ソ (U+30BD)
  • コ (U+30B3)
  • ク (U+30AF)
  • レ (U+30EC) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • メ (U+30E1)
  • サ (U+30B5)
  • キ (U+30AD)
  • シ (U+30B7)
  • ョ (U+30E7)
  • ト (U+30C8)
  • ゴ (U+30B4)
  • リ (U+30EA) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ミ (U+30DF)
  • ブ (U+30D6)
  • ゼ (U+30BC)
  • モ (U+30E2)
  • タ (U+30BF)
  • エ (U+30A8)
  • ボ (U+30DC)
  • ツ (U+30C4)
  • ャ (U+30E3)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Wu Chinese, 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B)
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 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 The font has the following codepoints needed to render the specimen 16 sample text for language Chinese (Traditional), 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B)
  • , (U+FF0C) [code: missing-subsetted]
⚠️ 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 add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-simplified' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ 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/bpmfiansui/BpmfIansui-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+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0391 GREEK CAPITAL LETTER ALPHA: try adding one of: elbasan, greek, math
  • U+0392 GREEK CAPITAL LETTER BETA: try adding one of: elbasan, greek, math
  • U+0393 GREEK CAPITAL LETTER GAMMA: try adding one of: greek, math, elbasan
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: math, elbasan, greek
  • U+0395 GREEK CAPITAL LETTER EPSILON: try adding one of: elbasan, math, greek
  • U+0396 GREEK CAPITAL LETTER ZETA: try adding one of: elbasan, greek, math
  • U+0397 GREEK CAPITAL LETTER ETA: try adding one of: elbasan, greek, math
    ... and 1279 others

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

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]

Summary

🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
39 30 7 107 67
19% 15% 3% 52% 33%

@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.4

Checks with FATAL results

These must be addressed first.

[1] ofl/bpmfiansui/BpmfIansui-Regular.ttf
💥 ERROR Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)

All other checks

[1] ofl/bpmfiansui/article/ARTICLE.en_us.html
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)
[2] ofl/bpmfiansui/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that butko 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[7] ofl/bpmfiansui
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • 🔥 FAIL METADATA.pb full_name field "Bpmf Iansui Regular" does not match correct full name "ㄅ注音芫荽 Regular". [code: fullname-mismatch]

  • 🔥 FAIL METADATA.pb family name field "Bpmf Iansui" does not match correct family name "ㄅ注音芫荽". [code: familyname-mismatch]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Jin Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Gan Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Xiang Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • べ (U+3079)
  • の (U+306E)
  • て (U+3066)
  • す (U+3059) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • げ (U+3052)
  • に (U+306B)
  • ん (U+3093) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • は (U+306F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • こ (U+3053)
  • よ (U+3088)
  • か (U+304B)
  • れ (U+308C)
  • い (U+3044)
  • っ (U+3063)
  • そ (U+305D)
  • く (U+304F)
  • う (U+3046) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • め (U+3081)
  • し (U+3057)
  • ご (U+3054)
  • ょ (U+3087)
  • さ (U+3055)
  • き (U+304D)
  • り (U+308A)
  • と (U+3068) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • わ (U+308F)
  • た (U+305F)
  • も (U+3082)
  • ふ (U+3075)
  • ま (U+307E)
  • ひ (U+3072)
  • ろ (U+308D)
  • け (U+3051)
  • な (U+306A)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • テ (U+30C6)
  • ベ (U+30D9)
  • ノ (U+30CE)
  • ス (U+30B9) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ゲ (U+30B2)
  • ニ (U+30CB)
  • ン (U+30F3) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ハ (U+30CF) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ク (U+30AF)
  • ソ (U+30BD)
  • ッ (U+30C3)
  • レ (U+30EC)
  • イ (U+30A4)
  • ヨ (U+30E8)
  • カ (U+30AB)
  • ウ (U+30A6)
  • コ (U+30B3) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ョ (U+30E7)
  • ト (U+30C8)
  • サ (U+30B5)
  • ゴ (U+30B4)
  • シ (U+30B7)
  • キ (U+30AD)
  • リ (U+30EA)
  • メ (U+30E1) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ラ (U+30E9)
  • ポ (U+30DD)
  • セ (U+30BB)
  • ヤ (U+30E4)
  • マ (U+30DE)
  • ボ (U+30DC)
  • ズ (U+30BA)
  • ャ (U+30E3)
  • ル (U+30EB)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Wu Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 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 The font has the following codepoints needed to render the specimen 16 sample text for language Chinese (Traditional), 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B)
  • , (U+FF0C) [code: missing-subsetted]
⚠️ 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 add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ 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 Please add 'chinese-simplified' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/bpmfiansui/BpmfIansui-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+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0391 GREEK CAPITAL LETTER ALPHA: try adding one of: greek, elbasan, math
  • U+0392 GREEK CAPITAL LETTER BETA: try adding one of: greek, elbasan, math
  • U+0393 GREEK CAPITAL LETTER GAMMA: try adding one of: math, greek, elbasan
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: elbasan, greek, math
  • U+0395 GREEK CAPITAL LETTER EPSILON: try adding one of: math, elbasan, greek
  • U+0396 GREEK CAPITAL LETTER ZETA: try adding one of: math, elbasan, greek
  • U+0397 GREEK CAPITAL LETTER ETA: try adding one of: greek, elbasan, math
    ... and 1279 others

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

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[21] ofl/bpmfiansui/BpmfIansui-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • uniF000 (Some(61440))
  • z_a1 (Some(61441))
  • z_a2 (Some(61442))
  • z_a5 (Some(61443))
  • z_ai1 (Some(61444))
  • z_ai2 (Some(61445))
  • z_ai3 (Some(61446))
  • z_ai4 (Some(61447))
  • z_an1 (Some(61448))
    ... and 1378 others [code: zero-width-bases]
🔥 FAIL Glyph names are all valid? (valid_glyphnames)
  • 🔥 FAIL The following glyph names do not comply with naming conventions: uni00A3 , uni00A3 .vrt2, uni00A2 , uni2212 .vrt2, uni2022 , uni00AE , uni00A5 , uni2122 .vrt2, uni00AE .vrt2, uni2122 , uni00A9 , uni00A2 .vrt2, uni2212 , uni2022 .vrt2, uni00A9 .vrt2, uni00A5 .vrt2

              A glyph name must be entirely comprised of characters
              from the following set: A-Z a-z 0-9 .(period) _(underscore).
              A glyph name must not start with a digit or period.
              There are a few exceptions such as the special glyph '.notdef'.
              The glyph names "twocents", "a1", and "_" are all valid,
              while "2cents" and ".twocents" are not.' [code: found-invalid-names]
    
  • ⚠️ WARN Glyph 0x0020 is called uni0020; must be named 'space'. [code: not-recommended-0020]

🔥 FAIL Check font follows the Google Fonts CJK vertical metric schema (googlefonts/cjk_vertical_metrics)
  • 🔥 FAIL OS/2.usWinAscent is 1066; it should be 1048 [code: bad-OS/2.usWinAscent]

  • 🔥 FAIL OS/2.usWinDescent is 273; it should be 202 [code: bad-OS/2.usWinDescent]

  • 🔥 FAIL horizontal idtp for script grek should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script grek should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script hani should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script hani should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script kana should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script kana should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script cyrl should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script cyrl should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script latn should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script latn should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script DFLT should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script DFLT should be present [code: missing-vertical-idtp]

  • ℹ️ INFO Computed BASE table entries:

Baseline Computed BASE table
Horizontal icfb -88 -67
Horizontal icft 803 827
Horizontal ideo -142 -120
Horizontal idtp 857 N/A
Horizontal romn 0 0
Vertical icfb 48 53
Vertical icft 1435 1447
Vertical ideo 0 0
Vertical idtp 1500 N/A
Vertical romn 142 120
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Bpmf Iansui Bpmf Iansui
Subfamily Name Regular Regular
Full Name Bpmf Iansui Regular Bpmf Iansui Regular
Postscript Name BpmfIansui-Regular BpmfIansui-Regular
Typographic Family Name Bpmf Iansui ㄅ注音芫荽
Typographic Subfamily Name Regular Regular
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 1394 but it should be 1489 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 the font contain chws and vchw features? (cjk_chws_feature)
⚠️ 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:

  • z_an4 (U+F00B): found 3, expected one of: {2, 1}
  • z_ang2 (U+F00D): found 2, expected one of: {1, 3}
  • z_ao4 (U+F013): found 2, expected one of: {3, 1}
  • z_bao2 (U+F025): found 3, expected one of: {2, 14, 11}
  • z_bei4 (U+F02B): found 3, expected one of: {2, 1}
  • z_fen4 (U+F131): found 3, expected one of: {1}
  • z_fen5 (U+F132): found 3, expected one of: {1, 6}
  • z_feng1 (U+F133): found 2, expected one of: {1}
  • z_feng2 (U+F134): found 3, expected one of: {2}
    ... and 200 others [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 7.70 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ 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 1500 among a set of 17 math glyphs.
    The following math glyphs have a different width, though:
    width=600: uni003C, uni002B, uni00B1, uni003D, uni00F7, uni003E, uni00D7
    width=350: uni2212 [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 The stylistic set ss02 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss03 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss04 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss05 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss10 lacks a description string in the name table [code: missing-description]

⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (soft_dotted)
  • ⚠️ WARN The dot of soft dotted characters used in orthographies must disappear in the following strings:
  • j́The dot of soft dotted characters should disappear in other cases, for example:

  • ï [code: soft-dotted]

⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • uniF000 (U+F000) has a counter-clockwise outer contour
  • uniF000.vert has a counter-clockwise outer contour
  • uni6FA9 (U+6FA9) has a path with no bounds (probably a single point)
  • uni6FA9.ss00 has a path with no bounds (probably a single point)
  • uni6FA9.ss01 has a path with no bounds (probably a single point)
  • emptyBox (U+2610) 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:
  • uni0038 (U+0038): Quad(QuadBez { p0: (375.0, 480.0), p1: (423.0, 515.0), p2: (467.0, 550.0) })/Quad(QuadBez { p0: (467.0, 550.0), p1: (465.0, 549.0), p2: (459.0, 549.0) }) = 11.935602543267457
  • uni2467 (U+2467): Quad(QuadBez { p0: (673.0, 565.0), p1: (673.0, 560.0), p2: (670.0, 555.0) })/Quad(QuadBez { p0: (670.0, 555.0), p1: (672.0, 557.0), p2: (679.0, 562.5) }) = 14.036243467926484
  • uni2467 (U+2467): Quad(QuadBez { p0: (569.5, 485.0), p1: (613.0, 511.0), p2: (652.0, 540.0) })/Quad(QuadBez { p0: (652.0, 540.0), p1: (650.0, 539.0), p2: (646.0, 539.0) }) = 10.069062698889491
  • uni338E (U+338E): Quad(QuadBez { p0: (95.0, 432.0), p1: (94.0, 420.0), p2: (93.0, 406.0) })/Quad(QuadBez { p0: (93.0, 406.0), p1: (104.0, 441.0), p2: (127.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (579.0, 432.0), p1: (578.0, 420.0), p2: (577.0, 406.0) })/Quad(QuadBez { p0: (577.0, 406.0), p1: (588.0, 441.0), p2: (611.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (83.0, 432.0), p1: (82.0, 420.0), p2: (81.0, 406.0) })/Quad(QuadBez { p0: (81.0, 406.0), p1: (92.0, 441.0), p2: (115.0, 464.0) }) = 13.361571643307318
  • uni339D (U+339D): Quad(QuadBez { p0: (561.0, 432.0), p1: (560.0, 420.0), p2: (559.0, 406.0) })/Quad(QuadBez { p0: (559.0, 406.0), p1: (570.0, 441.0), p2: (593.0, 464.0) }) = 13.361571643307318
  • uni339E (U+339E): Quad(QuadBez { p0: (545.0, 432.0), p1: (544.0, 420.0), p2: (543.0, 406.0) })/Quad(QuadBez { p0: (543.0, 406.0), p1: (554.0, 441.0), p2: (577.0, 464.0) }) = 13.361571643307318
  • zyh: Quad(QuadBez { p0: (207.0, 277.0), p1: (250.0, 283.0), p2: (246.0, 282.0) })/Quad(QuadBez { p0: (246.0, 282.0), p1: (269.0, 286.0), p2: (274.0, 286.0) }) = 4.170436524842054
    ... and 2597 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:
  • uni0054 (U+0054): Line(Line { p0: (322.0, 636.0), p1: (323.0, 106.0) })
  • uni0054 (U+0054): Line(Line { p0: (251.0, 107.0), p1: (252.0, 632.0) })
  • uni0071 (U+0071): Line(Line { p0: (418.0, -59.0), p1: (419.0, 112.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (537.0, 636.0), p1: (538.0, 106.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (466.0, 107.0), p1: (467.0, 632.0) })
  • uni3021 (U+3021): Line(Line { p0: (460.0, 28.0), p1: (458.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (638.0, 28.0), p1: (636.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (305.0, 74.0), p1: (303.0, 704.0) })
  • uni3023 (U+3023): Line(Line { p0: (719.0, 28.0), p1: (717.0, 734.0) })
    ... and 33429 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 Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    BASE
    GSUB
    gasp
    vhea
    vmtx [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.610 [code: version-not-detected]

Summary

💥 ERROR 🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
1 39 29 7 107 67
0% 19% 14% 3% 52% 33%

@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.4

Checks with FATAL results

These must be addressed first.

[1] ofl/bpmfiansui/BpmfIansui-Regular.ttf
💥 ERROR Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)

All other checks

[1] ofl/bpmfiansui/article/ARTICLE.en_us.html
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)
[21] ofl/bpmfiansui/BpmfIansui-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • uniF000 (Some(61440))
  • z_a1 (Some(61441))
  • z_a2 (Some(61442))
  • z_a5 (Some(61443))
  • z_ai1 (Some(61444))
  • z_ai2 (Some(61445))
  • z_ai3 (Some(61446))
  • z_ai4 (Some(61447))
  • z_an1 (Some(61448))
    ... and 1378 others [code: zero-width-bases]
🔥 FAIL Glyph names are all valid? (valid_glyphnames)
  • 🔥 FAIL The following glyph names do not comply with naming conventions: uni00A2 , uni2212 , uni2122 .vrt2, uni2122 , uni00A9 .vrt2, uni00A3 .vrt2, uni2022 , uni00A9 , uni00AE , uni00A3 , uni00A2 .vrt2, uni00AE .vrt2, uni00A5 .vrt2, uni2022 .vrt2, uni00A5 , uni2212 .vrt2

              A glyph name must be entirely comprised of characters
              from the following set: A-Z a-z 0-9 .(period) _(underscore).
              A glyph name must not start with a digit or period.
              There are a few exceptions such as the special glyph '.notdef'.
              The glyph names "twocents", "a1", and "_" are all valid,
              while "2cents" and ".twocents" are not.' [code: found-invalid-names]
    
  • ⚠️ WARN Glyph 0x0020 is called uni0020; must be named 'space'. [code: not-recommended-0020]

🔥 FAIL Check font follows the Google Fonts CJK vertical metric schema (googlefonts/cjk_vertical_metrics)
  • 🔥 FAIL OS/2.usWinAscent is 1066; it should be 1048 [code: bad-OS/2.usWinAscent]

  • 🔥 FAIL OS/2.usWinDescent is 273; it should be 202 [code: bad-OS/2.usWinDescent]

  • 🔥 FAIL horizontal idtp for script latn should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script latn should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script hani should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script hani should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script cyrl should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script cyrl should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script DFLT should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script DFLT should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script kana should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script kana should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script grek should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script grek should be present [code: missing-vertical-idtp]

  • ℹ️ INFO Computed BASE table entries:

Baseline Computed BASE table
Horizontal icfb -88 -67
Horizontal icft 803 827
Horizontal ideo -142 -120
Horizontal idtp 857 N/A
Horizontal romn 0 0
Vertical icfb 48 53
Vertical icft 1435 1447
Vertical ideo 0 0
Vertical idtp 1500 N/A
Vertical romn 142 120
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Bpmf Iansui Bpmf Iansui
Subfamily Name Regular Regular
Full Name Bpmf Iansui Regular Bpmf Iansui Regular
Postscript Name BpmfIansui-Regular BpmfIansui-Regular
Typographic Family Name Bpmf Iansui ㄅ注音芫荽
Typographic Subfamily Name Regular Regular
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 1394 but it should be 1489 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 the font contain chws and vchw features? (cjk_chws_feature)
⚠️ 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:

  • z_an4 (U+F00B): found 3, expected one of: {1, 2}
  • z_ang2 (U+F00D): found 2, expected one of: {3, 1}
  • z_ao4 (U+F013): found 2, expected one of: {3, 1}
  • z_bao2 (U+F025): found 3, expected one of: {2, 14, 11}
  • z_bei4 (U+F02B): found 3, expected one of: {2, 1}
  • z_fen4 (U+F131): found 3, expected one of: {1}
  • z_fen5 (U+F132): found 3, expected one of: {1, 6}
  • z_feng1 (U+F133): found 2, expected one of: {1}
  • z_feng2 (U+F134): found 3, expected one of: {2}
    ... and 200 others [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 7.70 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ 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 1500 among a set of 17 math glyphs.
    The following math glyphs have a different width, though:
    width=600: uni003E, uni003C, uni00B1, uni00D7, uni002B, uni00F7, uni003D
    width=350: uni2212 [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 The stylistic set ss02 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss03 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss04 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss05 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss10 lacks a description string in the name table [code: missing-description]

⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (soft_dotted)
  • ⚠️ WARN The dot of soft dotted characters used in orthographies must disappear in the following strings:
  • j̀The dot of soft dotted characters should disappear in other cases, for example:

  • ǰ [code: soft-dotted]

⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • uniF000 (U+F000) has a counter-clockwise outer contour
  • uniF000.vert has a counter-clockwise outer contour
  • uni6FA9 (U+6FA9) has a path with no bounds (probably a single point)
  • uni6FA9.ss00 has a path with no bounds (probably a single point)
  • uni6FA9.ss01 has a path with no bounds (probably a single point)
  • emptyBox (U+2610) 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:
  • uni0038 (U+0038): Quad(QuadBez { p0: (375.0, 480.0), p1: (423.0, 515.0), p2: (467.0, 550.0) })/Quad(QuadBez { p0: (467.0, 550.0), p1: (465.0, 549.0), p2: (459.0, 549.0) }) = 11.935602543267457
  • uni2467 (U+2467): Quad(QuadBez { p0: (673.0, 565.0), p1: (673.0, 560.0), p2: (670.0, 555.0) })/Quad(QuadBez { p0: (670.0, 555.0), p1: (672.0, 557.0), p2: (679.0, 562.5) }) = 14.036243467926484
  • uni2467 (U+2467): Quad(QuadBez { p0: (569.5, 485.0), p1: (613.0, 511.0), p2: (652.0, 540.0) })/Quad(QuadBez { p0: (652.0, 540.0), p1: (650.0, 539.0), p2: (646.0, 539.0) }) = 10.069062698889491
  • uni338E (U+338E): Quad(QuadBez { p0: (95.0, 432.0), p1: (94.0, 420.0), p2: (93.0, 406.0) })/Quad(QuadBez { p0: (93.0, 406.0), p1: (104.0, 441.0), p2: (127.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (579.0, 432.0), p1: (578.0, 420.0), p2: (577.0, 406.0) })/Quad(QuadBez { p0: (577.0, 406.0), p1: (588.0, 441.0), p2: (611.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (83.0, 432.0), p1: (82.0, 420.0), p2: (81.0, 406.0) })/Quad(QuadBez { p0: (81.0, 406.0), p1: (92.0, 441.0), p2: (115.0, 464.0) }) = 13.361571643307318
  • uni339D (U+339D): Quad(QuadBez { p0: (561.0, 432.0), p1: (560.0, 420.0), p2: (559.0, 406.0) })/Quad(QuadBez { p0: (559.0, 406.0), p1: (570.0, 441.0), p2: (593.0, 464.0) }) = 13.361571643307318
  • uni339E (U+339E): Quad(QuadBez { p0: (545.0, 432.0), p1: (544.0, 420.0), p2: (543.0, 406.0) })/Quad(QuadBez { p0: (543.0, 406.0), p1: (554.0, 441.0), p2: (577.0, 464.0) }) = 13.361571643307318
  • zyh: Quad(QuadBez { p0: (207.0, 277.0), p1: (250.0, 283.0), p2: (246.0, 282.0) })/Quad(QuadBez { p0: (246.0, 282.0), p1: (269.0, 286.0), p2: (274.0, 286.0) }) = 4.170436524842054
    ... and 2597 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:
  • uni0054 (U+0054): Line(Line { p0: (322.0, 636.0), p1: (323.0, 106.0) })
  • uni0054 (U+0054): Line(Line { p0: (251.0, 107.0), p1: (252.0, 632.0) })
  • uni0071 (U+0071): Line(Line { p0: (418.0, -59.0), p1: (419.0, 112.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (537.0, 636.0), p1: (538.0, 106.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (466.0, 107.0), p1: (467.0, 632.0) })
  • uni3021 (U+3021): Line(Line { p0: (460.0, 28.0), p1: (458.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (638.0, 28.0), p1: (636.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (305.0, 74.0), p1: (303.0, 704.0) })
  • uni3023 (U+3023): Line(Line { p0: (719.0, 28.0), p1: (717.0, 734.0) })
    ... and 33429 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 Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    BASE
    GSUB
    gasp
    vhea
    vmtx [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.610 [code: version-not-detected]
[2] ofl/bpmfiansui/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that butko 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[7] ofl/bpmfiansui
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • 🔥 FAIL METADATA.pb full_name field "Bpmf Iansui Regular" does not match correct full name "ㄅ注音芫荽 Regular". [code: fullname-mismatch]

  • 🔥 FAIL METADATA.pb family name field "Bpmf Iansui" does not match correct family name "ㄅ注音芫荽". [code: familyname-mismatch]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Jin Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Gan Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Xiang Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • す (U+3059)
  • べ (U+3079)
  • て (U+3066)
  • の (U+306E) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • げ (U+3052)
  • ん (U+3093)
  • に (U+306B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • は (U+306F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • れ (U+308C)
  • こ (U+3053)
  • う (U+3046)
  • よ (U+3088)
  • っ (U+3063)
  • そ (U+305D)
  • か (U+304B)
  • い (U+3044)
  • く (U+304F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • ご (U+3054)
  • め (U+3081)
  • り (U+308A)
  • き (U+304D)
  • ょ (U+3087)
  • し (U+3057)
  • と (U+3068)
  • さ (U+3055) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • へ (U+3078)
  • ま (U+307E)
  • ど (U+3069)
  • ほ (U+307B)
  • が (U+304C)
  • を (U+3092)
  • ぎ (U+304E)
  • ぶ (U+3076)
  • び (U+3073)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ス (U+30B9)
  • テ (U+30C6)
  • ノ (U+30CE)
  • ベ (U+30D9) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ン (U+30F3)
  • ゲ (U+30B2)
  • ニ (U+30CB) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ハ (U+30CF) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • イ (U+30A4)
  • ク (U+30AF)
  • コ (U+30B3)
  • カ (U+30AB)
  • ヨ (U+30E8)
  • レ (U+30EC)
  • ウ (U+30A6)
  • ソ (U+30BD)
  • ッ (U+30C3) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • メ (U+30E1)
  • ゴ (U+30B4)
  • サ (U+30B5)
  • リ (U+30EA)
  • シ (U+30B7)
  • ョ (U+30E7)
  • キ (U+30AD)
  • ト (U+30C8) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ネ (U+30CD)
  • デ (U+30C7)
  • ビ (U+30D3)
  • ギ (U+30AE)
  • マ (U+30DE)
  • ツ (U+30C4)
  • ブ (U+30D6)
  • ガ (U+30AC)
  • ボ (U+30DC)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Wu Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 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 The font has the following codepoints needed to render the specimen 16 sample text for language Chinese (Traditional), 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
⚠️ 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 add 'chinese-simplified' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ 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 Please add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/bpmfiansui/BpmfIansui-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+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+0391 GREEK CAPITAL LETTER ALPHA: try adding one of: elbasan, greek, math
  • U+0392 GREEK CAPITAL LETTER BETA: try adding one of: math, elbasan, greek
  • U+0393 GREEK CAPITAL LETTER GAMMA: try adding one of: greek, math, elbasan
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: elbasan, greek, math
  • U+0395 GREEK CAPITAL LETTER EPSILON: try adding one of: elbasan, greek, math
  • U+0396 GREEK CAPITAL LETTER ZETA: try adding one of: elbasan, greek, math
  • U+0397 GREEK CAPITAL LETTER ETA: try adding one of: math, greek, elbasan
    ... and 1279 others

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

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
ℹ️ 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/bpmfiansui/OFL.txt
⚠️ WARN Check OFL body text is correct. (googlefonts/license/OFL_body_text)

Lines changed:

-https://openfontlicense.org
+https://openfontlicense.org/
[code: incorrect-ofl-body-text]

Summary

💥 ERROR 🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
1 39 30 7 106 67
0% 19% 15% 3% 52% 33%

@github-actions
Copy link
Contributor

FontSpector report

fontspector version: 1.5.4

Checks with FATAL results

These must be addressed first.

[1] ofl/bpmfiansui/BpmfIansui-Regular.ttf
💥 ERROR Familyname must be unique according to namecheck.fontdata.com (fontdata_namecheck)

All other checks

[2] ofl/bpmfiansui/METADATA.pb
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog? (googlefonts/metadata/designer_profiles)
  • ⚠️ WARN It seems that butko 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]
ℹ️ INFO Check METADATA.pb parses correctly (googlefonts/metadata/validate)
  • ℹ️ INFO Please consider adding a family.minisite_url entry. [code: lacks-minisite-url]
[1] ofl/bpmfiansui/article/ARTICLE.en_us.html
ℹ️ INFO Does DESCRIPTION file contain a upstream Git repo URL? (googlefonts/description/git_url)
[7] ofl/bpmfiansui
🔥 FAIL Check METADATA.pb parses correctly (googlefonts/metadata/consistent_with_fonts)
  • 🔥 FAIL METADATA.pb full_name field "Bpmf Iansui Regular" does not match correct full name "ㄅ注音芫荽 Regular". [code: fullname-mismatch]

  • 🔥 FAIL METADATA.pb family name field "Bpmf Iansui" does not match correct family name "ㄅ注音芫荽". [code: familyname-mismatch]

🔥 FAIL Tofu should not be shown in sample texts. (googlefonts/tofu)
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Jin Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Gan Chinese, 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B)
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Xiang Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • の (U+306E)
  • す (U+3059)
  • て (U+3066)
  • べ (U+3079) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • げ (U+3052)
  • ん (U+3093)
  • に (U+306B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • は (U+306F) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • い (U+3044)
  • よ (U+3088)
  • う (U+3046)
  • か (U+304B)
  • れ (U+308C)
  • こ (U+3053)
  • く (U+304F)
  • っ (U+3063)
  • そ (U+305D) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • し (U+3057)
  • ご (U+3054)
  • さ (U+3055)
  • き (U+304D)
  • り (U+308A)
  • め (U+3081)
  • と (U+3068)
  • ょ (U+3087) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Hiragana), 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 chinese-traditional, latin-ext, latin:
  • わ (U+308F)
  • ろ (U+308D)
  • ゆ (U+3086)
  • を (U+3092)
  • ゅ (U+3085)
  • や (U+3084)
  • む (U+3080)
  • ゃ (U+3083)
  • も (U+3082)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead full sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ベ (U+30D9)
  • ノ (U+30CE)
  • テ (U+30C6)
  • ス (U+30B9) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the masthead partial sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ニ (U+30CB)
  • ン (U+30F3)
  • ゲ (U+30B2) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster lg sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ハ (U+30CF) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster md sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ッ (U+30C3)
  • イ (U+30A4)
  • レ (U+30EC)
  • カ (U+30AB)
  • ソ (U+30BD)
  • ク (U+30AF)
  • ウ (U+30A6)
  • コ (U+30B3)
  • ヨ (U+30E8) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ョ (U+30E7)
  • キ (U+30AD)
  • メ (U+30E1)
  • リ (U+30EA)
  • ト (U+30C8)
  • サ (U+30B5)
  • ゴ (U+30B4)
  • シ (U+30B7) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Japanese (Katakana), 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 chinese-traditional, latin-ext, latin:
  • ヲ (U+30F2)
  • ヤ (U+30E4)
  • ユ (U+30E6)
  • ナ (U+30CA)
  • ュ (U+30E5)
  • ャ (U+30E3)
  • ツ (U+30C4)
  • ラ (U+30E9)
  • ム (U+30E0)
    ... and 32 others [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the poster sm sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Southern Min Chinese, 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 FAIL The font has the following codepoints needed to render the specimen 16 sample text for language Wu Chinese, 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 chinese-traditional, latin-ext, latin:
  • ; (U+FF1B)
  • , (U+FF0C) [code: missing-subsetted]
  • 🔥 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 The font has the following codepoints needed to render the specimen 16 sample text for language Chinese (Traditional), 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 chinese-traditional, latin-ext, latin:
  • , (U+FF0C)
  • ; (U+FF1B) [code: missing-subsetted]
⚠️ 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 add 'chinese-hongkong' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ 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 Please add 'japanese' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

  • ⚠️ WARN Please add 'chinese-simplified' to METADATA.pb since more than 50% of its glyphs are supported by this font file. [code: missing-subset]

⚠️ WARN Check for codepoints not covered by METADATA subsets. (googlefonts/metadata/unreachable_subsetting)
  • ⚠️ WARN ofl/bpmfiansui/BpmfIansui-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+030C COMBINING CARON: try adding one of: tai-le, cherokee
  • U+0391 GREEK CAPITAL LETTER ALPHA: try adding one of: greek, math, elbasan
  • U+0392 GREEK CAPITAL LETTER BETA: try adding one of: greek, math, elbasan
  • U+0393 GREEK CAPITAL LETTER GAMMA: try adding one of: greek, math, elbasan
  • U+0394 GREEK CAPITAL LETTER DELTA: try adding one of: math, greek, elbasan
  • U+0395 GREEK CAPITAL LETTER EPSILON: try adding one of: greek, elbasan, math
  • U+0396 GREEK CAPITAL LETTER ZETA: try adding one of: greek, math, elbasan
  • U+0397 GREEK CAPITAL LETTER ETA: try adding one of: elbasan, greek, math
    ... and 1279 others

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

⚠️ WARN Check copyright namerecords match license file. (googlefonts/name/license)
ℹ️ INFO Check axis ordering on the STAT table. (googlefonts/STAT/axis_order)
  • ℹ️ INFO All of the fonts lack a STAT table. [code: summary]
[21] ofl/bpmfiansui/BpmfIansui-Regular.ttf
🔥 FAIL Check base characters have non-zero advance width. (base_has_width)
  • 🔥 FAIL The following glyphs had zero advance width:
  • uniF000 (Some(61440))
  • z_a1 (Some(61441))
  • z_a2 (Some(61442))
  • z_a5 (Some(61443))
  • z_ai1 (Some(61444))
  • z_ai2 (Some(61445))
  • z_ai3 (Some(61446))
  • z_ai4 (Some(61447))
  • z_an1 (Some(61448))
    ... and 1378 others [code: zero-width-bases]
🔥 FAIL Glyph names are all valid? (valid_glyphnames)
  • 🔥 FAIL The following glyph names do not comply with naming conventions: uni00AE .vrt2, uni2212 .vrt2, uni2022 , uni00A5 .vrt2, uni2022 .vrt2, uni00A9 .vrt2, uni00A3 , uni00A9 , uni2122 .vrt2, uni00AE , uni00A2 , uni2122 , uni00A2 .vrt2, uni2212 , uni00A5 , uni00A3 .vrt2

              A glyph name must be entirely comprised of characters
              from the following set: A-Z a-z 0-9 .(period) _(underscore).
              A glyph name must not start with a digit or period.
              There are a few exceptions such as the special glyph '.notdef'.
              The glyph names "twocents", "a1", and "_" are all valid,
              while "2cents" and ".twocents" are not.' [code: found-invalid-names]
    
  • ⚠️ WARN Glyph 0x0020 is called uni0020; must be named 'space'. [code: not-recommended-0020]

🔥 FAIL Check font follows the Google Fonts CJK vertical metric schema (googlefonts/cjk_vertical_metrics)
  • 🔥 FAIL OS/2.usWinAscent is 1066; it should be 1048 [code: bad-OS/2.usWinAscent]

  • 🔥 FAIL OS/2.usWinDescent is 273; it should be 202 [code: bad-OS/2.usWinDescent]

  • 🔥 FAIL horizontal idtp for script grek should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script grek should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script latn should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script latn should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script DFLT should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script DFLT should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script kana should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script kana should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script cyrl should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script cyrl should be present [code: missing-vertical-idtp]

  • 🔥 FAIL horizontal idtp for script hani should be present [code: missing-horizontal-idtp]

  • 🔥 FAIL vertical idtp for script hani should be present [code: missing-vertical-idtp]

  • ℹ️ INFO Computed BASE table entries:

Baseline Computed BASE table
Horizontal icfb -88 -67
Horizontal icft 803 827
Horizontal ideo -142 -120
Horizontal idtp 857 N/A
Horizontal romn 0 0
Vertical icfb 48 53
Vertical icft 1435 1447
Vertical ideo 0 0
Vertical idtp 1500 N/A
Vertical romn 142 120
🔥 FAIL Check font names are correct (googlefonts/font_names)
  • 🔥 FAIL Font names are incorrect:
Name Current Expected
Family Name Bpmf Iansui Bpmf Iansui
Subfamily Name Regular Regular
Full Name Bpmf Iansui Regular Bpmf Iansui Regular
Postscript Name BpmfIansui-Regular BpmfIansui-Regular
Typographic Family Name Bpmf Iansui ㄅ注音芫荽
Typographic Subfamily Name Regular Regular
⚠️ WARN Checking OS/2 fsSelection value. (opentype/xavgcharwidth)
  • ⚠️ WARN OS/2 xAvgCharWidth is 1394 but it should be 1489 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 the font contain chws and vchw features? (cjk_chws_feature)
⚠️ 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:

  • z_an4 (U+F00B): found 3, expected one of: {1, 2}
  • z_ang2 (U+F00D): found 2, expected one of: {3, 1}
  • z_ao4 (U+F013): found 2, expected one of: {1, 3}
  • z_bao2 (U+F025): found 3, expected one of: {11, 2, 14}
  • z_bei4 (U+F02B): found 3, expected one of: {2, 1}
  • z_fen4 (U+F131): found 3, expected one of: {1}
  • z_fen5 (U+F132): found 3, expected one of: {6, 1}
  • z_feng1 (U+F133): found 2, expected one of: {1}
  • z_feng2 (U+F134): found 3, expected one of: {2}
    ... and 200 others [code: contour-count]
⚠️ WARN Ensure files are not too large. (file_size)
  • ⚠️ WARN Font file is 7.70 MB; ideally it should be less than 1.05 MB [code: large-font]
⚠️ 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 1500 among a set of 17 math glyphs.
    The following math glyphs have a different width, though:
    width=350: uni2212
    width=600: uni003D, uni002B, uni00B1, uni00F7, uni003E, uni00D7, uni003C [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 The stylistic set ss02 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss03 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss04 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss05 lacks a description string in the name table [code: missing-description]

  • ⚠️ WARN The stylistic set ss10 lacks a description string in the name table [code: missing-description]

⚠️ WARN Font has correct separator glyphs? (googlefonts/separator_glyphs)
  • ⚠️ WARN The following separator glyphs are missing:
  • U+2028
  • U+2029 [code: missing-separator-glyphs]
⚠️ WARN Ensure soft_dotted characters lose their dot when combined with marks that replace the dot. (soft_dotted)
  • ⚠️ WARN The dot of soft dotted characters used in orthographies must disappear in the following strings:
  • j́The dot of soft dotted characters should disappear in other cases, for example:

  • ǰ [code: soft-dotted]

⚠️ WARN Check the direction of the outermost contour in each glyph (outline_direction)
  • ⚠️ WARN The following glyphs have a counter-clockwise outer contour:
  • uniF000 (U+F000) has a counter-clockwise outer contour
  • uniF000.vert has a counter-clockwise outer contour
  • uni6FA9 (U+6FA9) has a path with no bounds (probably a single point)
  • uni6FA9.ss00 has a path with no bounds (probably a single point)
  • uni6FA9.ss01 has a path with no bounds (probably a single point)
  • emptyBox (U+2610) 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:
  • uni0038 (U+0038): Quad(QuadBez { p0: (375.0, 480.0), p1: (423.0, 515.0), p2: (467.0, 550.0) })/Quad(QuadBez { p0: (467.0, 550.0), p1: (465.0, 549.0), p2: (459.0, 549.0) }) = 11.935602543267457
  • uni2467 (U+2467): Quad(QuadBez { p0: (673.0, 565.0), p1: (673.0, 560.0), p2: (670.0, 555.0) })/Quad(QuadBez { p0: (670.0, 555.0), p1: (672.0, 557.0), p2: (679.0, 562.5) }) = 14.036243467926484
  • uni2467 (U+2467): Quad(QuadBez { p0: (569.5, 485.0), p1: (613.0, 511.0), p2: (652.0, 540.0) })/Quad(QuadBez { p0: (652.0, 540.0), p1: (650.0, 539.0), p2: (646.0, 539.0) }) = 10.069062698889491
  • uni338E (U+338E): Quad(QuadBez { p0: (95.0, 432.0), p1: (94.0, 420.0), p2: (93.0, 406.0) })/Quad(QuadBez { p0: (93.0, 406.0), p1: (104.0, 441.0), p2: (127.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (579.0, 432.0), p1: (578.0, 420.0), p2: (577.0, 406.0) })/Quad(QuadBez { p0: (577.0, 406.0), p1: (588.0, 441.0), p2: (611.0, 464.0) }) = 13.361571643307318
  • uni339C (U+339C): Quad(QuadBez { p0: (83.0, 432.0), p1: (82.0, 420.0), p2: (81.0, 406.0) })/Quad(QuadBez { p0: (81.0, 406.0), p1: (92.0, 441.0), p2: (115.0, 464.0) }) = 13.361571643307318
  • uni339D (U+339D): Quad(QuadBez { p0: (561.0, 432.0), p1: (560.0, 420.0), p2: (559.0, 406.0) })/Quad(QuadBez { p0: (559.0, 406.0), p1: (570.0, 441.0), p2: (593.0, 464.0) }) = 13.361571643307318
  • uni339E (U+339E): Quad(QuadBez { p0: (545.0, 432.0), p1: (544.0, 420.0), p2: (543.0, 406.0) })/Quad(QuadBez { p0: (543.0, 406.0), p1: (554.0, 441.0), p2: (577.0, 464.0) }) = 13.361571643307318
  • zyh: Quad(QuadBez { p0: (207.0, 277.0), p1: (250.0, 283.0), p2: (246.0, 282.0) })/Quad(QuadBez { p0: (246.0, 282.0), p1: (269.0, 286.0), p2: (274.0, 286.0) }) = 4.170436524842054
    ... and 2597 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:
  • uni0054 (U+0054): Line(Line { p0: (322.0, 636.0), p1: (323.0, 106.0) })
  • uni0054 (U+0054): Line(Line { p0: (251.0, 107.0), p1: (252.0, 632.0) })
  • uni0071 (U+0071): Line(Line { p0: (418.0, -59.0), p1: (419.0, 112.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (537.0, 636.0), p1: (538.0, 106.0) })
  • uni03A4 (U+03A4): Line(Line { p0: (466.0, 107.0), p1: (467.0, 632.0) })
  • uni3021 (U+3021): Line(Line { p0: (460.0, 28.0), p1: (458.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (638.0, 28.0), p1: (636.0, 734.0) })
  • uni3022 (U+3022): Line(Line { p0: (305.0, 74.0), p1: (303.0, 704.0) })
  • uni3023 (U+3023): Line(Line { p0: (719.0, 28.0), p1: (717.0, 734.0) })
    ... and 33429 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 Font contains all required tables? (required_tables)
  • ℹ️ INFO This font contains the following optional tables:

    loca
    BASE
    GSUB
    gasp
    vhea
    vmtx [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.610 [code: version-not-detected]

Summary

💥 ERROR 🔥 FAIL ⚠️ WARN ℹ️ INFO ✅ PASS ⏩ SKIP
1 39 29 7 107 67
0% 19% 14% 3% 52% 33%

@emmamarichal emmamarichal merged commit 2ce07c0 into main Feb 11, 2026
6 of 7 checks passed
@emmamarichal emmamarichal deleted the bpmf_iansui branch February 11, 2026 15:35
@github-project-automation github-project-automation bot moved this from PR GF to PR Merged in Fonts Traffic Jam Feb 11, 2026
@emmamarichal emmamarichal moved this from PR Merged to In Sandbox in Fonts Traffic Jam Feb 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

I New Font II CJK Chinese, Japanese, Korean scripts

Projects

Status: In Sandbox

Development

Successfully merging this pull request may close these issues.

2 participants