Dear typographers

Cubus Arts Blog
Mihai Târnovan

Dear typographers

Mihai Târnovan

The romanian language has some specific diacritics which can radically change the meaning of a word.

The problem

For example țânc vs. tanc, tata vs. țâța vs. țața (kid vs. tank, father vs. breast vs. aunt). The problem with this characters and their implementation in keyboard layouts, charsets and fonts, is well known and has been explained in almost academic detail and extremely well documented manner by Cristian Secară.

Microsoft’s “solution” and its consequences

When Microsoft implemented the first romanian keyboard layout, they mapped the keys which should have produced these characters to similar turkish characters instead. They could have fixed this as early as Windows 2000 (around then the romanian standard SR 13411:1999 was already in place). Instead, they did nothing until 2007.

By then, their core fonts were already the de facto standard for web typography and everyone had fonts installed on their computer which lacked characters for lowercase and uppercase ș and ț (Unicode code points U+0218, U+0219, U+021A and U+021B).

Fixing the problem and causing new ones

It took Microsoft until 2006 to get it right. They released a patch which added the missing characters to Times New Roman, Arial and Verdana. When they released Windows Vista, they still didn’t get it right for all fonts – Verdana was only fixed by a later patch.

Ok, so Microsoft release a patch for XP and did the right thing with Vista. So everything’s fine, right ? Well, not quite. If you use the Romanian keyboard layout on Vista or MacOS, you will write text containing the proper Unicode characters. But a vast majority of romanian users don’t have these characters in their fonts, because they didn’t apply the font patch. So for them, a ș written with the proper romanian character appears as a square.

Possible solutions

  1. Use fonts that never had this problem in the first place.
    • Palatino Linotype
    • Tahoma

    This is of course too limiting for practical purposes, especially in web design.

  2. Use old keyboard layout.

    I still haven’t figured out how to do this for MacOS without custom keyboard layouts, but it should be fairly easy to do this for Vista and Linux (use Romanian legacy or a similar keyboard layout). You’ll write text with turkish diacritics, but at least all your visitors will be able to display them correctly.

  3. Serve two versions of content, one for Windows XP (and older) users with turkish characters, and one for all the others.

    Due to the complexity of this solution, I’m not sure this is a good idea. (we do this for travelbox with a Rack filter — but that was implemented more to learn about Rack than as a long term solution for this problem)