OpenType features samples: liga, ccmp, rlig

The following tables compare the display of liga, ccmp and rlig 1. by default, 2. by explicit enabling and 3. by explicit disabling. The explicit enabling/disabling is achieved with the CSS property font-feature-settings and its variants -webkit-font-feature-settings etc.

liga

The OpenType feature liga should be enabled by default, see OpenType Layout tag registry, Tag: 'liga'. The font Lato, which is embedded in the following sample, uses liga in an ‹fi› ligature.

Embedded font Expected display† Actual display
Chrome on Windows Chrome on OS X Chromium on Ubuntu
Default find ‘find’, liga enabled (expected default), Firefox 10 on OS X ‘find’, default, Chrome on Windows ‘find’, default, Chrome on OS X ‘find’, default, Chromium on Ubuntu
liga enabled find ‘find’, liga enabled (expected default), Firefox 10 on OS X ‘find’, liga enabled (expected default), Chrome on Windows ‘find’, liga enabled (expected default), Chrome on OS X ‘find’, liga enabled (expected default), Chromium on Ubuntu
liga disabled find ‘find’, liga disabled, Firefox 10 on OS X ‘find’, liga disabled, Chrome on Windows ‘find’, liga disabled, Chrome on OS X ‘find’, liga disabled, Chromium on Ubuntu

ccmp

The OpenType feature ccmp should be enabled by default, see OpenType Layout tag registry, Tag: “ccmp”. The font Charis SIL, which is embedded in the following sample, uses ccmp for the tone letters.

Embedded font Expected display† Actual display
Chrome on Windows Chrome on OS X Chromium on Ubuntu
Default ɔ˧˩˧ tone letters, ccmp enabled (expected default), Firefox 10 on OS X tone letters, default, Chrome on Windows tone letters, default, Chrome on OS X tone letters, default, Chromium on Ubuntu
ccmp enabled ɔ˧˩˧ tone letters, ccmp enabled (expected default), Firefox 10 on OS X tone letters, ccmp enabled (expected default), Chrome on Windows tone letters, ccmp enabled (expected default), Chrome on OS X tone letters, ccmp enabled (expected default), Chromium on Ubuntu
ccmp disabled ɔ˧˩˧ tone letters, ccmp disabled, Firefox 10 on OS X tone letters, ccmp disabled, Chrome on Windows tone letters, ccmp disabled, Chrome on OS X tone letters, ccmp disabled, Chromium on Ubuntu

Note 2012-08-23: ccmp should also be enabled for the Latin script – see Features: Standard OpenType specification:

Embedded font Expected display† Actual display
Chrome on Windows Chrome on OS X Chromium on Ubuntu
Default ſit‍zen ‘ſit‍zen’, rlig enabled (expected default), Firefox 10+ on OS X ‘ſit‍zen’, default, Chrome on Windows ‘ſit‍zen’, default, Chrome on OS X ‘ſit‍zen’, default, Chromium on Ubuntu
ccmp enabled ſit‍zen ‘ſit‍zen’, ccmp enabled (expected default), Firefox 10 on OS X ‘ſit‍zen’, ccmp enabled (expected default), Chrome on Windows ‘ſit‍zen’, ccmp enabled (expected default), Chrome on OS X ‘ſit‍zen’, ccmp enabled (expected default), Chromium on Ubuntu
ccmp disabled ſit‍zen ‘ſit‍zen’, ccmp disabled, Firefox 10 on OS X ‘ſit‍zen’, ccmp disabled, Chrome on Windows ‘ſit‍zen’, ccmp disabled, Chrome on OS X ‘ſit‍zen’, ccmp disabled, Chromium on Ubuntu

rlig

Note 2012-05-20: An OpenType renderer is likely to disregard the rlig feature for the Latin script – see Features: Standard OpenType specification, so if there is no ligature in the following sample, nothing is wrong (though IMO it would still be nice). Thanks to the commentator on Issue 22240 - chromium - Do ligature substitution on web content

The OpenType feature rlig should be enabled by default, see OpenType Layout tag registry, Tag: “rlig”. The font UnifrakturMaguntia, which is embedded in the following sample, uses rlig for forcing ligatures where – as in the following sample that uses the code ſit‍zen – a ZWJ character is used (in order to comply with the implementation notes of the Unicode Standard 6.0.0, p. 528).

Embedded font Expected display† Actual display
Chrome on Windows Chrome on OS X Chromium on Ubuntu
Default ſit‍zen ‘ſit‍zen’, rlig enabled (expected default), Firefox 10 on OS X ‘ſit‍zen’, default, Chrome on Windows ‘ſit‍zen’, default, Chrome on OS X ‘ſit‍zen’, default, Chromium on Ubuntu
rlig enabled ſit‍zen ‘ſit‍zen’, rlig enabled (expected default), Firefox 10 on OS X ‘ſit‍zen’, rlig enabled (expected default), Chrome on Windows ‘ſit‍zen’, rlig enabled (expected default), Chrome on OS X ‘ſit‍zen’, rlig enabled (expected default), Chromium on Ubuntu
rlig disabled ſit‍zen ‘ſit‍zen’, rlig disabled, Firefox 10 on OS X ‘ſit‍zen’, rlig disabled, Chrome on Windows ‘ſit‍zen’, rlig disabled, Chrome on OS X ‘ſit‍zen’, rlig disabled, Chromium on Ubuntu

Notes

† The pictures for the expected display are screenshots from Firefox 10+.

For further comparison, there is another page that also uses the additional CSS rule text-rendering: optimizeLegibility;: OpenType features samples: liga, ccmp, rlig (optimizeLegibility).