OpenType fonts my be used in different situations, which is why the file format allows for different things to happen in different scripts and languages.

Normally, scripts would also define a default language that is used when no specific instruction for a certain language are available. For example, English, French and Dutch all may use the same rules for glyph substitution and positioning.



In order to let the client (the computer program that shows a text on the screen, for example your favourite word processor) know what a rule does on an abstract level, features are used. As a lot of processing within OpenType fonts is done with 4-character codes that are called tags, features have been assigned tags that tell the client what they do.

A full list of feature tags and their descriptions is available from the Microsoft website. Many features are not turned on by default; some may be switched on by the user, and others may be switched on at the discretion of the client.


What actually happens when a feature is switched on is implemented by lookups. As the name suggests, when these things are applied the right context is found and the substitution or positioning is applied.

There are two kinds of lookups.