GNU FreeFont OpenType features test

Select font: , weight: and style .
The order followed is the order of CSS Fonts Level 3.

Ligatures

Common ligatures (liga)

Latin ligatures
Ligature state Most languages Turkish Dutch Catalan Cyrillic
Ligatures disabledfi fl ff ffi ffl č̕č̓d̕l̕t̕fi fl ff ffi fflIJ ijL·L l·lїї
Default (enabled) fi fl ff ffi ffl č̕č̓d̕l̕t̕fi fl ff ffi fflIJ ijL·L l·lїї

To remind that common ligatures should work for most languages, there are a few here:

Other ligatures
Ligature state Arabic scriptThai Hanunóo Buginese
Ligatures disabledصّٰصُّصٌّصَّ صّٰصُّصٌّصَّฤาฦาฐฺฐุฐูญฺญุญูᜧᜳᜤᜳᜱᜲᜱᜳᜮᜳᜫᜳᜥᜲᜥᜳᜩᜲᜩᜳᜦᜳᨕᨗ‍ᨐ
Default (enabled)صّٰصُّصٌّصَّ صّٰصُّصٌّصَّฤาฦาฐฺฐุฐูญฺญุญูᜧᜳᜤᜳᜱᜲᜱᜳᜮᜳᜫᜳᜥᜲᜥᜳᜩᜲᜩᜳᜦᜳᨕᨗ‍ᨐ
Notes
The Arabic example has both the order of diacritics which shows the ligature (actually getting them farther apart), on the left, and the order which is not programmed to ligate, on the right. The ligature appears on Chrome and IE10 (always, even when disabled), and never on Firefox.

Discretionary ligatures (dlig)

Ligature state LatinLatin Latin Armenian HebrewArabic
Default (disabled) Tz tzAE Ae ae OE Oe oe ueDE Deմն մե մի վն մխאלالله
EnabledTz tzAE Ae ae OE Oe oe ueDE Deմն մե մի վն մխאלالله
Notes
These are probably most of the time orthographic and not stylistic (except maybe ue), and so I think do not belong here, as I understand discretionary ligatures as optional ligatures that are stylistic but do not alter the meaning. For example, French cœur is only correct when o and e are ligated, while coexister is only correct non-ligated.
Seems to only work in Windows Firefox
Firefox on Windows forces the ligature, it’s undisableable, the others ignore it.

Historical ligatures (hlig)

Ligature stateLatinArmenian
Default (disabled)ſt st ſt st ſt st Tz tzեւ
Enabledſt st ſt st ſt st Tz tzեւ
Devanagari
Ligature statebiconsonant clusterstriconsonant clusters4-consonant
Default (disabled)छ्य द्भ द्घ द्म द्न ड्ड ड्य क्क क्त न्न ङ्ग ङ्घ ङ्क ङ्ख ङ्म ङ्न ट्क ट्ट ट्ठ ट्य ठ्यद्भ्य द्द्य द्ध्व द्र्य द्व्य ड्र्य क्न्य क्त्र क्त्र्य ष्ट्र्य
Enabledछ्य द्भ द्घ द्म द्न ड्ड ड्य क्क क्त न्न ङ्ग ङ्घ ङ्क ङ्ख ङ्म ङ्न ट्क ट्ट ट्ठ ट्य ठ्यद्भ्य द्द्य द्ध्व द्र्य द्व्य ड्र्य क्न्य क्त्र क्त्र्य ष्ट्र्य
Notes
Doesn’t work on Windows, but seems to work on Linux Firefox.

Contextual alternates (calt)

"𝅻( 𝅼!«𝅽)~𝅾»-𝅿/“𝆀,”𝆁‘’𝆂? "𝅘𝅥𝅻( 𝅘𝅥𝅼!«𝅘𝅥𝅽)~𝅘𝅥𝅾»-𝅘𝅥𝅿/“𝅘𝅥𝆀,”𝅘𝅥𝆁‘’𝅘𝅥𝆂?"𝅻( 𝅼!«𝅽)~𝅾»-𝅿/“𝆀,”𝆁‘’𝆂? "𝅘𝅥𝅻( 𝅘𝅥𝅼!«𝅘𝅥𝅽)~𝅘𝅥𝅾»-𝅘𝅥𝅿/“𝅘𝅥𝆀,”𝅘𝅥𝆁‘’𝅘𝅥𝆂?

I suggest deleting this, as it is nonsensical and useless. There is already an “access all alternates” aalt feature to access these variants.

Position

Superiors (sups)

Basic latin alphabet: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
All others in FreeSerif: ()+=− 0123456789 ÆðĦŋœƎƫȢɃɐɑɒɔɕəɛɜɟɡɣɥɦɨɩɪɭɯɰɱɲɳɴɵɸɹɻʁʂʃʉʊʋʌʐʑʒʕʝʟβγδθφχнᴂᴉᴖᴗᴜᴝᴥᵻᶅꝯ There’s no Unicode for these Greek sup, are they correct?: ει

Verify that they work with a language that has special treatment (here Catalan):
Basic latin alphabet: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
All others in FreeSerif: =−()+ 0123456789 ÆðĦŋœƎƫȢɃɐɑɒɔɕəɛɜɟɡɣɥɦɨɩɪɭɯɰɱɲɳɴɵɸɹɻʁʂʃʉʊʋʌʐʑʒʕʝʟβγδθφχнᴂᴉᴖᴗᴜᴝᴥᵻᶅꝯ There’s no Unicode for these Greek sup: ει

Inferiors (subs)

Basic latin alphabet: abcdefghijklmnopqrstuvwxyz; Others in FreeSerif: ()+=− 0123456789 əβγρφχ Error in FreeSerif bold (meemfinalarabic→parenleftinferior): ‍م

Inferior hklmnpst (ₕₖₗₘₙₚₛₜ) have a Unicode value (U+2095-U+209C), so put them there.

Capitalization

In each line, ıi (or Iİ) are tested as these are to be distinguished in languages using a Turkish-derived orthography, notably Azeri [az], Crimean Tatar [crh], also Kazakh [kk] and Tatar [tt].

abcdefghijklmnopqrstuvwxyz ßæðøþłœƀơưǝȣɔɠɯɹʒγλπρψлꝵ ıi ıi ıi ıi ıi ıi (via font-variant (CSS2) for comparison)

abcdefghijklmnopqrstuvwxyz ßæðøþłœƀơưǝȣɔɠɯɹʒγλπρψлꝵ ıi ıi ıi ıi ıi ıi (from small letters, OpenType smcp feature)

abcdefghıijklmnopqrstuvwxyz ßæðøþłœƀơưǝȣɔɠɯɹʒγλπρψлꝵabcdefghıijklmnopqrstuvwxyz ßæðøþłœƀơưǝȣɔɠɯɹʒγλπρψлꝵ abcdefghıijklmnopqrstuvwxyz ßæðøþłœƀơưǝȣɔɠɯɹʒγλπρψлꝵ abcdefghıijklmnopqrstuvwxyz ßæðøþłœƀơưǝȣɔɠɯɹʒγλπρψлꝵ abcdefghıijklmnopqrstuvwxyz ßæðøþłœƀơưǝȣɔɠɯɹʒγλπρψлꝵ

ABCDEFGHIJKLMNOPQRSTUVWXYZ ẞÆÐØÞŁŒɃƠƯƎȢƆƓƜƷΓΛΠΡΨЛ Iİ (from capital letters, OpenType c2sc feature)

ABCDEFGHIİJKLMNOPQRSTUVWXYZ ẞÆÐØÞŁŒɃƠƯƎȢƆƓƜƷΓΛΠΡΨЛ ABCDEFGHIİJKLMNOPQRSTUVWXYZ ẞÆÐØÞŁŒɃƠƯƎȢƆƓƜƷΓΛΠΡΨЛ ABCDEFGHIİJKLMNOPQRSTUVWXYZ ẞÆÐØÞŁŒɃƠƯƎȢƆƓƜƷΓΛΠΡΨЛ ABCDEFGHIİJKLMNOPQRSTUVWXYZ ẞÆÐØÞŁŒɃƠƯƎȢƆƓƜƷΓΛΠΡΨЛ ABCDEFGHIİJKLMNOPQRSTUVWXYZ ẞÆÐØÞŁŒɃƠƯƎȢƆƓƜƷΓΛΠΡΨЛ

The c2sc variant for Turkish should be deleted, it is useless, as there is no case change, no special treatment is needed, capital dotted i becomes small-cap dotted i and capital dotless i (standard capital i) becomes small-cap dotless i, both mappings already present in the default mapping. Given OpenType feature activation, this is even counter productive, as currently only capital dotted i is converted.
Capital ẞ to small-cap ß should probably be addded to be self-consistent.

Numerical forms

Number variants (lnum, pnum, onum, tnum, zero)

LiningOld-Style
Proportional01234567890123456789
Tabular01234567890123456789

To check that the tables are correct and complete, by applying features progressively, we should be able to come back to default numbers by applying all features clockwise and anticlockwise (with reference to the table above).

Default (tab. lin.)Prop. lining pProp. oldstyle poTab. oldstyle potTab. lin. (default) potl
0123456789 0123456789 0123456789 0123456789 0123456789
Default (tab. lin.)Tab. oldstyle oProp. oldstyle opProp. lining oplTab. lin. (default) oplt
0123456789 0123456789 0123456789 0123456789 0123456789

Slashed zero: 0

Fractions (frac)

With slash /: 0/3 1/2 1/3 1/4 1/5 1/6 1/7 1/8 1/9 1/10 2/3 2/5 2/7 2/9 3/4 3/5 3/7 3/8 3/10 4/5 4/7 4/9 5/6 5/7 5/8 5/9 6/7 7/8 7/9 7/10 8/9 9/10

With fraction slash ⁄: 0⁄3 1⁄2 1⁄3 1⁄4 1⁄5 1⁄6 1⁄7 1⁄8 1⁄9 1⁄10 2⁄3 2⁄5 2⁄7 2⁄9 3⁄4 3⁄5 3⁄7 3⁄8 3⁄10 4⁄5 4⁄7 4⁄9 5⁄6 5⁄7 5⁄8 5⁄9 6⁄7 7⁄8 7⁄9 7⁄10 8⁄9 9⁄10

১/৪ ১/৩ ১/২ ২/৩ ৩/৪

These Bengali fractions don’t work in my browsers, I suppose they just don’t apply frac with script “beng”.

Alternates

Historical forms (hist)

Feature stateLatinMusic
Default (disabled)this old sum these old forms𝄡 𝄢 𝄽
Enabledthis old sum these old forms𝄡 𝄢 𝄽

Bulgarian alternates (ss01)

дгийКЌкќЉљЛлпшщцтвж (Regular default cyrillic)

дгийКЌкќЉљЛлпшщцтвж (Bulgarian alternates)

Still lacks п→n (Cyrillic pe→latin n) and т→m (Cyrilllic te→latin m) in FreeSerif Bold, [Cyrillic→Latin] К→K, Ќ→Ḱ and ќ→ḱ in FreeSerif {,Bold} Italic.
In FreeSerif Bold, the Bulgarian style ш Cyrillic sha has a larger x-height than other Cyrillic characters, in IE at normal display size, this due to it being autohinted (like the variant capital lje), the others are not.

Devanagari of Bombay (ss02)

ज्ञ ल्ल श्‍ ८५लश (default)

ज्ञ ल्ल श्‍ ८५लश (Devanagri of Bombay)

Devanagari of Calcutta (ss03)

छ्य ङ्क्ष ङ्क्ष्व ह्ण झ्‍ क्ष ण्‍ ण्ण अछझॡऌणॠऋ (default)

छ्य ङ्क्ष ङ्क्ष्व ह्ण झ्‍ क्ष ण्‍ ण्ण अछझॡऌणॠऋ (Devanagari of Calcutta)

Devanari of Nepali (ss04)

झ्‍ झ९१

झ्‍ झ९१ (Devanagari of Nepali)