fvar check proposal: Validate the subfamilyNameID and postScriptNameID values of the default instance
See original GitHub issueQuotes from the fvar
documentation in OpenType spec v1.9 (my emphasis):
[…] The values 2 or 17 should only be used if the named instance corresponds to the font’s default instance. […] The value 6 should only be used if the named instance corresponds to the font’s default instance. […] The default instance of a font is that instance for which the coordinate value of each axis is the defaultValue specified in the corresponding variation axis record. An instance record is not required for the default instance, though an instance record can be provided. When enumerating named instances, the default instance should be enumerated even if there is no corresponding instance record. If an instance record is included for the default instance (that is, an instance record has coordinates set to default values), then the nameID value should be set to either 2 or 17, and the postScriptNameID value should be set to 6.
Note: Since an instance record for the default instance is not required, a variable font that has no instance records defined in the ‘fvar’ table (instanceCount is zero) still has one named instance.
I hereby propose a new fvar
check that validates that when an instance record is included for the default instance, its subfamilyNameID value should be set to either 2 or 17, and its postScriptNameID value should be set to 6.
The check should FAIL if the conditions are not met.
Issue Analytics
- State:
- Created a year ago
- Comments:10 (4 by maintainers)
Top GitHub Comments
Given the final remarks in this discussion, I think this check should be reworked to check for “name record equality” instead of a hard == 2/17 check, and likewise for the ps name vs nameID 6.
Peter Constable said that “should” simply means a “recommendation, not a requirement” (https://github.com/MicrosoftDocs/typography-issues/issues/946#issuecomment-1167523649) so IMO you could relax this FAIL to a WARNING…