Glyph names exceed valid length (31 characters) – not sure how big a problem
Nobody has claimed this yet.
- Dominant language
- Clojure
- Stars
- 82k
- Forks
- 3.2k
- PR merge metrics
- No merged PRs in 30d
Description
In building & QAing Fira Code for Google Fonts (https://github.com/google/fonts/issues/1460), I'm running into a FontBakery check that points out that 18 glyphs have names that exceed the glyph name length recommendation from the Microsoft OpenType spec:
The PostScript glyph name must be no longer than 31 characters, include only uppercase or lowercase English letters, European digits, the period or the underscore, i.e. from the set [A-Za-z0-9_.] and should start with a letter, except the special glyph name “.notdef” which starts with a period.
That said, I'm not sure of what problems this might actually cause. Because it's a PostScript issue, it presumably means that some glyphs may fail to render in PDFs and printers in certain contexts. However, it's possible that it could lead to bigger problems, such as the font being rejected in certain Microsoft platforms.
It seems like the kind of error we probably don't necessarily need to fix for the web, but which @tonsky should be aware of in case it explains any other issues that come up. If it does, it would probably be worth abbreviating the names of these glyphs.
Here's the FontBakery output:
🔥 FAIL: Glyph names are all valid?
- com.google.fonts/check/valid_glyphnames
- 🔥 FAIL The following glyph names do not comply with naming conventions: ['numbersign_numbersign_numbersign.liga', 'numbersign_numbersign_numbersign_numbersign.liga', 'numbersign_underscore_parenleft.liga', 'backslash_backslash_backslash.rem', 'numbersign_numbersign_numbersign.liga.rem', 'numbersign_numbersign_numbersign_numbersign.liga.rem', 'semicolon_semicolon_semicolon.rem', 'quadrantUpperLeftAndLowerLeftAndLowerRight', 'quadrantUpperLeftAndUpperRightAndLowerLeft', 'quadrantUpperLeftAndUpperRightAndLowerRight', 'quadrantUpperRightAndLowerLeftAndLowerRight', 'whiteSquareWithUpperLeftQuadrant', 'whiteSquareWithLowerLeftQuadrant', 'whiteSquareWithLowerRightQuadrant', 'whiteSquareWithUpperRightQuadrant', 'asciitilde_asciitilde_greater.liga', 'ampersand_ampersand_ampersand.rem', 'asciitilde_asciitilde_asciitilde.rem'] A glyph name may be up to 31 characters in length, must be entirely comprised of characters from the following set: A-Z a-z 0-9 .(period) (underscore). and must not start with a digit or period. There are a few exceptions such as the special character ".notdef". The glyph names "twocents", "a1", and "" are all valid, while "2cents" and ".twocents" are not.
(If it's useful, the shortest name in that list is 32 chars, and the longest is 52 chars).
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the FontBakery valid_glyphnames output in the issue and compare the listed names with the Microsoft OpenType post table recommendation. Determine whether the 18 names cause meaningful compatibility problems, then document the impact and whether abbreviating them is warranted; the payload names no source files or tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- clojure
- Domain
- design
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100