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 | ||||
liga enabled |
find | ||||
liga disabled |
find |
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 | ɔ˧˩˧ | ||||
ccmp enabled |
ɔ˧˩˧ | ||||
ccmp disabled |
ɔ˧˩˧ |
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 | ſitzen | ||||
ccmp enabled |
ſitzen | ||||
ccmp disabled |
ſitzen |
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 ſitzen
– 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 | ſitzen | ||||
rlig enabled |
ſitzen | ||||
rlig disabled |
ſitzen |
† 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).