What The Font?
Yes, this is about fonts again. I already wrote about font licensing before. I want to add a bit more as quite a bit has happened since I last wrote about this issue. I’ve actually attempted to write this several times, yet every time I’d get close to completion something would happen that would either require additional work or a partial rewrite. After a while I just finally decided to let this problem play out for a bit, and now without much additional controversy added for a bit I believe I can write about its current status. I personally wouldn’t write about this issue repetitively unless I found this issue extremely important. I’m a graphic artist, and having received education in such I have a strong affinity for proper typography, and in my opinion @font-face is only the first small step. It’s like learning to walk; that first step is the most difficult.
When I wrote about it last the status of getting professional typefaces for use on the Web was really up in the air. In the past there was an argument over what formats to support period, and EOT was thrown out at that particular point for many different reasons although in my opinion mostly because of animosity toward Microsoft — because it is of others’ belief that adding support for EOT would give Microsoft an unfair advantage. I addressed that in my previous assessment on this issue saying that by that logic supporting TrueType gives Apple an unfair advantage as they were the ones who created that format; it’s bullshit. Microsoft doesn’t want to allow raw TrueType or OpenType files to be linkable. While I personally disagree with that decision they’re actually looking for the foundries’ best interests there because by supporting raw formats people would link the raw files despite lack of a legal license to do so. The foundries just simply can’t police every website making sure their typefaces aren’t being used without a license. I don’t agree with that decision as no matter what format is picked people will ignore typeface licenses either by sheer ignorance of them or simply because they don’t care. Microsoft’s choice isn’t sinister in any way. I’m an avid supporter of Opera’s, but Opera’s attitude toward Microsoft in this discussion has been quite despicable and childish at times, especially Håkon Wium Lie’s open berating of Chris Wilson’s character on the www-font mailing list. I am no fan of Microsoft’s by any stroke of the imagination, but I don’t believe treating Microsoft’s representatives in this argument like shit does anyone any benefit nor will it provide a solution everyone would agree with. Thankfully while representatives from the browser vendors were duking it out verbally two typographers came up with a technical solution that many foundries are in favor of.
Tal Leming and Erik van Blokland devised the “.webfont” format. There has been much discussion on this, and many changes have been made based upon criticisms and comments on the initial proposal. Essentially the format is a compressed archive containing a metadata file and a font data file. The browser reads the metadata to determine anything from the format of the font itself to the unicode range the typeface represents and reads the font data accordingly. In many cases the font data itself could be subsetted to reduce filesize and to reduce the viability of bootlegging the typeface. It’s a very simple approach, and personally I’m puzzled as to just why many foundries support this proposal. I’m not stating that the proposal is detrimental, but the core problem foundries have with web fonts in general is piracy. Linking raw files makes piracy extremely easy, and in my opinion just adding a single compression algorithm layer to raw font files is not going to really do a whole lot to deter piracy other than getting rid of what I call “idiot piracy” — piracy performed by the general public without much technical knowledge at all. It or much of anything else that’s done in the end will make pirating go away as active pirates are an intelligent lot; they will always find a way. However, what can be done in the end is making pirating the fonts almost futile as the resultant product of bootlegging it is inferior to a purchased typeface or one retrieved by other means of piracy.
That’s where Typekit comes into play. Typekit is an external font delivery service that many foundries are backing where you are expected to purchase licenses for fonts to be hosted by Typekit and linked from there to your website. It’s not for everyone, and I don’t foresee myself using this feature as many people are floating around the idea that a monthly fee is required to use the service much. In my opinion it is a temporary bandage for the issue, but its true genius comes from what it does to keep people from directly downloading the typefaces it serves from its website.
Typekit wrote about their methods of protecting typefaces, but it really doesn’t go into extreme detail of how it accomplishes its goal of font obfuscation. I discovered their methods long before they wrote that post by analyzing code Jeffrey Veen used on his weblog for a very miniscule period of time which utilized a very early version of Typekit. It was long enough for people like me to take a good peek as to how this thing ticks. Typekit serves JavaScript and CSS documents which are protected by HTTP referrer checking, preventing them from being directly downloaded without having a referral from the domain in which the designer has specified in their Typekit preferences. The CSS document uses base64 encoded data URI streams which contain the font data, essentially embedding the typeface within the CSS document. The typefaces are first subsetted based upon what characters the website it is to be linked to uses. They are furthermore split in two and stacked within a CSS font-family declaration. If the first split doesn’t contain a lowercase “a” the next font specified with the stack would be checked for the existence of a lowercase “a” glyph. If the next in the stack is the second split of the typeface it will be used. It doesn’t prevent piracy to those who are knowledgable of how the web works. Everything downloaded by the browser with permission from the HTTP referrer check is stored within the browser’s cache, readily available to the knowledgable end user. The end user would most likely have to decode the base64 strings into binary data and have a font editor to combine the split faces into a single font. Even after all of that work the font in the end will be subsetted, missing many essential characters except those needed by the website it is used on. It becomes nearly futile to even attempt to pirate the font.
There are those who disagree with my thoughts on Typekit’s methods, but those are mostly ideologues on the same level as Richard Stallman where their ideology obscures their sanity. It’s not that anyone who disagrees with me are insane, but I’m not proposing that Typekit’s methods of obfuscation be the way to link typefaces. I’m just stating that without a viable format for professional type the methods used by Typekit were a stroke of genius as it uses current web technologies that work or should work to link typefaces. Despite my personal opinion on Typekit’s costs or ideologues’ beliefs on the methods themselves those methods infinitely do more to protect the fonts from piracy than anything that will be proposed in the end.
Because TypeKit is being used by prominent designers and people with extensive knowledge of type such as Andy Clarke and Tim Brown bugs and inconsistencies between the current browsers’ font implementations are being discovered. Initially Opera only had very basic @font-face support without support for specifying additional weights or variants. It’s since been fixed in the latest snapshot, but other bugs exist such as its confusion with split fonts in the font stack. Some argue that it isn’t a bug, but a hack put in place by Typekit that’s just now rearing its ugly head. It is a bug because it can be done despite the usage of Typekit, and would be encountered and discovered eventually because these multitudes of hideous free fonts Håkon Lie is wanting people to use are missing many essential characters. You can’t have your browser getting confused as to what font to use if specified characters are missing. Despite the argument whether it is truely a bug or not it is being addressed by Opera’s developers. Firefox isn’t without its criticisms as it’s displaying @font-face‘d fonts incorrectly, using its own weird font renderer rather than the system’s renderer. These criticisms are mostly from Apple users as it isn’t necessary to use a secondary font renderer on Mac OS X as Apple’s renderer is capable of rendering any typeface correctly; it is, however, necessary on Windows as ClearType is generally crap. Windows users and general idiot fans of ClearType stumbling upon these new showcases of typography are finding these typefaces to be rendering quite objectionably. It’s not because of fault within the fonts themselves but because of how ClearType renders typefaces. Type designers generally have to spend countless hours hinting typefaces to render correctly on Windows, settings typefaces produced for Microsoft such as the core web fonts have specified. Type designers generally disregard this because it’s bullshit that they even have to do anything but basic hinting to begin with and also that the typefaces are generally meant to be printed and used by professionals using professional grade software which generally use their own font renderers to ensure consistency between what is seen on the screen and what is printed. When a common consensus is achieved font foundries will have lots of nearly suicidal work to do to get the vast majority of their typefaces to render only somewhat like what they intended it to in the first place — which is about all you can hope for with the way ClearType handles things.
Despite the arguments and whatnot it is really admirable that a mostly sane discussion is ensuing on this topic with many solutions being presented that could be viable endpoints to this problem — the fact that foundries don’t want their property linked willy nilly online.