InDesign should apply variating substitutions from rclt
Variable fonts may contain location-dependent substitutions, but the
rvrn feature runs too early for many real-world substitutions. The solution in font-making land has been to use the
rlig features instead, but at least the former is not supported by InDesign. This is a major headache for e.g. Arabic.
Technical discussion about this at
Compiling fonts with Glyphs uses 'rlig' which works in InDesign.
However FontTools which is used in many open source based production workflows, uses 'rclt' and this is unsupported by InDesign, despite being a “mandatory” OpenType feature.
Some high-profile fonts make use of this, including Google’s Material Symbols UI icon font. In the currently shipping version, this is mostly only causing problems with 100% Fill, when combined with multiple other axes being at a setting other than the default.
However I can attest that a planned enhancement entirely relies on this working. So that is going to be a problem.
Dave Crossland commented
This continues to be a big problem to variable font adoption. Now that variable fonts are in fonts.adobe.com, I hope this serious bug can be fixed soon.
This is super frustrating.
Problem in other Adobe apps as well.
Making weird hacked fonts to try to work around Adobe bugs is irritating, seeing as the build chain doesn’t natively support the wacky feature duplication required.
However, coding this with 'calt' instead of 'rclt' does work in InDesign at least (and probably other CoolType apps).
This is more of a hack, as these are usually not things one wants users to be able to turn off (potentially by accident). And of course fonttools does not support this so one would have to do it as a post-processing step. But it is definitely better than “doesn’t work at all in Adobe CoolType apps like InDesign, Illustrator and Photoshop.”
I have a pre-release font using 'rclt' in the way outlined by Nikolaus above.
It is a next-generation version of a widely-used typeface. Unfortunately 'rvrn' is not an option in this case.