Add DS5 elidedfallbackname attribute to axes tag
The DS5 format describes a elidedfallbackname attribute in the axes tag. When this attribute it present, it is included in generated STAT tables and style linking and some font QA improves.
Fonttools has support for elidedfallbackname but it does not describe how or why it should be used.
Peter Constable wrote in 2016:
There will be one noteworthy design change, though: The version 1.0 STAT table header will get an additional field at the end of the header, "elidedFallbackNameID" (a USHORT). As we worked on implementing support for the STAT table, we noticed that there would be cases, when using the STAT table to generate family and sumfamiy names mapped into legacy font models, that a subfamily string would have only elidable descriptors, leading to an empty string. The elidedFallbackName field allows font developers to specify a fallback subfamily name for use in such situations.
- Note that
elidedfallbacknamecan be localised. - Some UI questions, DSE has examples of how to add localised names.
- Issue added to UFOOperator
Example by @BoldMonday
<designspace format="5.0">
<axes elidedfallbackname="Regular">
<axis tag="wght" name="weight" minimum="100" maximum="700" default="400">
<labelname xml:lang="en">Weight</labelname>
<map input="100" output="-871"/>
<map input="200" output="-671"/>
<map input="300" output="-343"/>
<map input="400" output="0"/>
<map input="450" output="200"/>
<map input="500" output="429"/>
<map input="600" output="700"/>
<map input="700" output="1000"/>
<labels ordering="0">
<label uservalue="100" name="Thin"/>
<label uservalue="200" name="ExtraLight"/>
<label uservalue="300" name="Light"/>
<label uservalue="400" name="Regular" elidable="true" linkeduservalue="700"/>
<label uservalue="450" name="Text"/>
<label uservalue="500" name="Medium"/>
<label uservalue="600" name="SemiBold"/>
<label uservalue="700" name="Bold"/>
</labels>
</axis>
<axis tag="ital" name="italic" values="0 1" default="0">
<labelname xml:lang="en">Italic</labelname>
<labels ordering="1">
<label uservalue="0" name="Roman" elidable="true" linkeduservalue="1"/>
<label uservalue="1" name="Italic"/>
</labels>
</axis>
</axes>