Open madig opened 6 years ago
Should these / can these be removed? It seems to be the consensus opinion...
they are not required, they are legacy TrueType recommendations and serve no purpose.
The "First Four Glyphs" section of the OT spec was removed since OT 1.8 (2016) (see changelog)
IMO, yes they should be removed. Currently, if CR
(aka nonmarkingreturn
) and/or NULL
(aka .null
) are included then one of two things happens:
unreachable_glyphs
check complains about them.OS2.usFirstCharIndex
will have to be set below 0x0020 which (a) goes against the OpenType recommendations and (b) has been known to cause problems — at least in the past — with some software. Can we just do this? If we are concerned about risk of some latent bug, then we should change the unreachable_glyphs
check so it doesn't complain.
According to https://github.com/fonttools/fontbakery/issues/938#issuecomment-597593292 and https://github.com/MicrosoftDocs/typography-issues/issues/346#issuecomment-688531945 there is some relatively recent software that expects glyph 1 to be empty (and presumably width-less), though the most recent such are only in COLR fonts.
Thus I change my opinion:
.notdef
and space
except in COLR fonts in which case NULL
/.null
is recommended. NULL
/.null
glyph, if present, should be empty and width-less.OS2.firstCharIndex
should be 0x0020.space
, in particular no CR
/nonmarkingreturn
, tab
, etc.I intentionally did not say that NULL
/.null
may not be in non-COLR fonts — but others may want to challenge that idea.
Since you're discussing Fontbakery checks, I think it's a good idea to move the conversation over there, as it would also have more eyes look over it, and then have the tooling such as glyphsets
follow whichever outcome is accepted there. Fontbakery is kind of the central source of truth.
Why are these required? And what properties (contents, spacing, ...) should they have?