Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Black Han Sans: 1.001 #8591

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

Black Han Sans: 1.001 #8591

wants to merge 1 commit into from

Conversation

aaronbell
Copy link
Collaborator

GF_CJK_Q4 work – Hotfixing the font to correct an upstream bug wherein the glyph is not properly encoded in the cmap.
Resolves: #6559

I'm initiating this fix as a hotfix to the GF version because (1) the upstream maintainer has been [https://github.com/zesstype/Black-Han-Sans/issues/1](unresponsive on this issue) for over a year now. And (2) this version of the project was updated with a Latin character set for GF purposes, which is not reflected in the upstream repro.

It would probably be worth (at some point) to rebuild a proper source repository for this project, but in the meantime, just leave as is.

Hotfixing the font to correct an upstream bug wherein the glyph is not properly encoded in the cmap
Copy link

FontBakery report

fontbakery version: 0.13.0a5

Check results

[38] BlackHanSans-Regular.ttf
🔥 FAIL Name table ID 6 (PostScript name) must be consistent across platforms.
  • 🔥 FAIL

    Entries in the "name" table for ID 6 (PostScript name) are not consistent. Names found: ['BlackHanSans-Regular', '검은고딕-Regular'].


    [code: inconsistency]
🔥 FAIL PostScript name follows OpenType specification requirements?
  • 🔥 FAIL

    PostScript name does not follow requirements:

Field Value Recommendation
PostScript Name 검은고딕-Regular May contain only a-zA-Z0-9 characters and a hyphen.
[code: bad-psname-entries]
🔥 FAIL Checking Vertical Metric Linegaps.
  • 🔥 FAIL

    hhea lineGap is not equal to 0.

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

[code: hhea]
🔥 FAIL Font contains '.notdef' as its first glyph?
  • 🔥 FAIL

    The '.notdef' glyph should contain a drawing, but it is blank.


    [code: notdef-is-blank]
🔥 FAIL Are there disallowed characters in the NAME table?
  • 🔥 FAIL

    Bad string at [nameID 6, platformID 3, langID 1042, encoding 'utf_16_be']: 'b'검은고딕-Regular''


    [code: bad-string]

  • 🔥 FAIL

    There are 1 strings containing disallowed characters in the restricted NAME table entries.


    [code: bad-strings]

🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

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

[code: unwanted-tables]
🔥 FAIL Font contains glyphs for whitespace characters?
  • 🔥 FAIL

    Whitespace glyph missing for codepoint 0x00A0.


    [code: missing-whitespace-glyph-0x00A0]
🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field.
  • 🔥 FAIL

    Please add a family.source.repository_url entry.


    [code: lacks-repo-url]
🔥 FAIL Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
  • 🔥 FAIL

    Unmatched postscript name in font: TTF has "검은고딕-Regular" while METADATA.pb has "BlackHanSans-Regular".


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

    No GF glyphset was found to be supported >80%, so language shaping support couldn't get checked.


    [code: no-glyphset-supported]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
  • 🔥 FAIL

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


    [code: lacks-git-url]
🔥 FAIL DESCRIPTION.en_us.html must have more than 200 bytes.
  • 🔥 FAIL

    DESCRIPTION.en_us.html must have size larger than 200 bytes.


    [code: too-short]
🔥 FAIL Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

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

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

But instead we have got:

"(c) ZESSTYPE 2015"

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

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

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

But instead we have got:

"(c) ZESSTYPE 2015"

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

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

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

But instead we have got:

"Copyright 2015 The Black Han Sans Authors"

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

    Copyright notices differ between name table entries and METADATA.pb.The following copyright values were found:

- (c) ZESSTYPE 2015: Name Table entry and Name Table entry

- Copyright 2015 The Black Han Sans Authors: METADATA.pb

[code: mismatch]

🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright 2015 the black han sans authors"

which does not match the expected format, similar to:

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

[code: bad-format]
🔥 FAIL Check Google Fonts glyph coverage.
  • 🔥 FAIL

    Missing required codepoints:

- 0x0060 (GRAVE ACCENT)


- 0x00A0 (NO-BREAK SPACE)


- 0x00A2 (CENT SIGN)


- 0x00A3 (POUND SIGN)


- 0x00A5 (YEN SIGN)


- 0x00A9 (COPYRIGHT SIGN)


- 0x00AE (REGISTERED SIGN)


- 0x00B0 (DEGREE SIGN)


- 0x00B7 (MIDDLE DOT)


- 0x2013 (EN DASH)


- 6 more.

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

[code: missing-codepoints]
⚠️ WARN Does the font contain chws and vchw features?
⚠️ WARN Does GPOS table have kerning information? This check skips monospaced fonts as defined by post.isFixedPitch value
  • ⚠️ WARN

    GPOS table lacks kerning information.


    [code: lacks-kern-info]
⚠️ WARN Check math signs have the same width.
  • ⚠️ WARN

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

Width = 444: greater, less

Width = 600: divide, multiply

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

    Family metadata at ofl/blackhansans does not have an article.


    [code: lacks-article]
⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog?
  • ⚠️ WARN

    It seems that Zess Type 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]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

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

  • U+20A9 WON SIGN: try adding latin-ext

Or you can add the above codepoints to one of the subsets supported by the font: korean, latin, menu

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

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


    [code: missing-eof-linebreak]
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.
  • ⚠️ WARN

    The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo.
    Please consider mentioning note-worthy improvements made to the family recently.


    [code: description-not-updated]
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?
  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

  • ⚠️ WARN

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


    [code: http-in-description]

⚠️ WARN Check the direction of the outermost contour in each glyph
  • ⚠️ WARN

    The following glyphs have a counter-clockwise outer contour:

* A (U+0041) has a counter-clockwise outer contour

* E (U+0045) has a counter-clockwise outer contour

* F (U+0046) has a counter-clockwise outer contour

* H (U+0048) has a counter-clockwise outer contour

* I (U+0049) has a counter-clockwise outer contour

* L (U+004C) has a counter-clockwise outer contour

* M (U+004D) has a counter-clockwise outer contour

* T (U+0054) has a counter-clockwise outer contour

* V (U+0056) has a counter-clockwise outer contour

* W (U+0057) has a counter-clockwise outer contour

* 2318 more.

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

[code: ccw-outer-contour]
⚠️ WARN Do outlines contain any jaggy segments?
  • ⚠️ WARN

    The following glyphs have jaggy segments:

* uni313F (U+313F): L<<229.0,604.0>--<252.0,602.0>>/L<<252.0,602.0>--<60.0,602.0>> = 4.969740728110289

* uniAC70 (U+AC70): L<<467.0,321.0>--<467.0,406.0>>/B<<467.0,406.0>-<441.0,289.0>-<385.0,204.5>> = 12.528807709151492

* uniAC8C (U+AC8C): L<<350.0,320.0>--<350.0,388.0>>/B<<350.0,388.0>-<305.0,78.0>-<90.0,30.0>> = 8.259437979878793

* uniAC90 (U+AC90): L<<352.0,460.0>--<352.0,547.0>>/B<<352.0,547.0>-<335.0,476.0>-<293.5,422.0>> = 13.465208094811695

* uniAC9C (U+AC9C): L<<357.0,480.0>--<357.0,574.0>>/B<<357.0,574.0>-<338.0,464.0>-<259.0,407.0>> = 9.799848668867625

* uniAC9D (U+AC9D): L<<357.0,480.0>--<357.0,574.0>>/B<<357.0,574.0>-<338.0,464.0>-<259.0,407.0>> = 9.799848668867625

* uniAC9F (U+AC9F): L<<352.0,480.0>--<352.0,546.0>>/B<<352.0,546.0>-<335.0,472.0>-<293.5,413.5>> = 12.938056317186438

* uniACA1 (U+ACA1): L<<357.0,470.0>--<357.0,568.0>>/B<<357.0,568.0>-<344.0,485.0>-<303.0,427.0>> = 8.901716032891992

* uniACA9 (U+ACA9): L<<488.0,566.0>--<488.0,623.0>>/B<<488.0,623.0>-<470.0,507.0>-<414.5,442.5>> = 8.820379552021036

* uniACAA (U+ACAA): L<<488.0,566.0>--<488.0,623.0>>/B<<488.0,623.0>-<470.0,507.0>-<414.5,442.5>> = 8.820379552021036

* 35 more.

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

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

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

* uniACEA (U+ACEA): L<<761.0,0.0>--<760.0,390.0>>

* uniAD20 (U+AD20): L<<799.0,422.0>--<800.0,761.0>>

* uniAD22 (U+AD22): L<<799.0,417.0>--<800.0,761.0>>

* uniAD22 (U+AD22): L<<800.0,0.0>--<799.0,390.0>>

* uniAD76 (U+AD76): L<<760.0,390.0>--<761.0,0.0>>

* uniAE02 (U+AE02): L<<761.0,0.0>--<760.0,390.0>>

* uniB04E (U+B04E): L<<761.0,0.0>--<760.0,390.0>>

* uniB182 (U+B182): L<<760.0,390.0>--<761.0,0.0>>

* uniB219 (U+B219): L<<759.0,672.0>--<760.0,532.0>>

* uniB29A (U+B29A): L<<761.0,0.0>--<760.0,390.0>>

* 123 more.

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

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

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


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

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


    [code: unknown]
ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/blackhansans


    [code: family-path]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/blackhansans/BlackHanSans-Regular.ttf
Dehinted Size 389.5kb
Hinted Size 975.3kb
Increase 585.8kb
Change 150.4 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- gasp

[code: optional-tables]

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

    Please consider adding a family.minisite_url entry.


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

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


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

    These are the ppm ranges declared on the gasp table:

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

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

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


    [code: version-not-detected]
[1] Family checks
ℹ️ INFO Check axis ordering on the STAT table.
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
0 0 15 15 74 9 139 0
0% 0% 6% 6% 29% 4% 55% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@aaronbell aaronbell added I Small Fix bugs fixed but nothing added II CJK Chinese, Japanese, Korean scripts labels Nov 25, 2024
@emmamarichal
Copy link
Collaborator

emmamarichal commented Nov 27, 2024

Hey @aaronbell! Thank you for that PR! :)

I start the review with the fontbakery report.
There are a lot of fails, but I think we can solve all of them by modifications a few things.

EDIT: Sorry, I'm just seeing this:
It would probably be worth (at some point) to rebuild a proper source repository for this project, but in the meantime, just leave as is.

Copyright, nameID6 and description can maybe hotfixed I think, but ignore the rest of my comments :)

Fontbakery

  • We have several 🔥 FAILS related to the Name ID6. I think we had this issue with the previous CJK fonts, and if I remember correctly, you corrected them (but I maybe wrong, please confirm!)

🔥 FAIL Name table ID 6 (PostScript name) must be consistent across platforms.
🔥 FAIL PostScript name follows OpenType specification requirements?
🔥 FAIL Are there disallowed characters in the NAME table?
🔥 FAIL Checks METADATA.pb font.postscriptname matches postscript name declared on the name table.

  • FAILS related to the description, which doesn't follow the description template. To improve it, I think we can add some more sentences and the github link ->
    <p>To contribute, see <a href="https://github.com/zesstype/Black-Han-Sans">github.com/zesstype/Black-Han-Sans</a>.</p>

🔥 FAIL DESCRIPTION.en_us.html must have more than 200 bytes.
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
⚠️ WARN On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.

  • There are some issues with the way Licence and Copyright are written

🔥 FAIL METADATA.pb: Check URL on copyright string is the same as in repository_url field.
🔥 FAIL Copyright notices match canonical pattern in fonts
🔥 FAIL Check license file has good copyright string.
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?

  • Glyphset / design related. They should be quick to fix:

🔥 FAIL Font contains glyphs for whitespace characters?
🔥 FAIL Font contains '.notdef' as its first glyph?

  • An unwanted table to remove?

🔥 FAIL Are there unwanted tables?

  • Bonus: if we could add a designer profile for Zess Type, that would be awesome!

⚠️ WARN METADATA.pb: Designers are listed correctly on the Google Fonts catalog?

@emmamarichal
Copy link
Collaborator

@aaronbell

Related to #6559:

The bug was: When using the font "Black Hansans", the letter "몇" is displayed as "몋".
Now, when using the font "Black Hansans", the letter "몇" doesn't seem to be supported:

Screenshot 2024-11-27 at 11 16 48

I want to make sure it's normal!

@emmamarichal emmamarichal added -- Needs confirmation from upstream or onboarder -- Needs Upstream Resolution Upstream fix required before moving forward -- Needs Meta/Desc/License changes Corrections in METADATA.pb or html snippet or License file required labels Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-- Needs confirmation from upstream or onboarder -- Needs Meta/Desc/License changes Corrections in METADATA.pb or html snippet or License file required -- Needs Upstream Resolution Upstream fix required before moving forward I Small Fix bugs fixed but nothing added II CJK Chinese, Japanese, Korean scripts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Issue on font "Black Han Sans"
2 participants