There's an article in the latest issue of A List Apart where Håkon Wium Lie advocates for a downloadable truetype font spec in the next generation of CSS. But is this really necessary?

One of the reasons he advocates for it is that many people currently use images to include non-core fonts in web pages, and that images present problems with high bandwidth usage and localization. I'll admit to the localization issues, but when it comes to bandwidth, I have to disagree.

Many truetype font files range anywhere from 25k to 125k, yet if I'm just using single-color text on a single-color background, I can create labels at under 3k, and titles at under 10k using the .gif format with a 16 color optimized pallette (which allows for the font color, background color, and some anti-aliasing). Three labels and a title, using two separate fonts, might add 10-15k to a page's weight (combined size of all components the browser has to download to display the page) while downloading two truetype fonts to create the same effect via CSS would likely add a minimum of 60-80k.

Additionally, unless Mr. Lie is suggesting that the browser permanently install any downloaded font in our system fonts (which would annoy me, since that could gradually degrade my system's performance as I accumulated hundreds of active fonts), the bandwidth usage issues persist as fonts that weren't cached or were aged out of the browser cache are downloaded again and again, just like the graphics we use for that purpose now.

With the growing adoption of broadband and the increased power of the average PC, the point becomes sort of moot. Worrying about page weight is already becoming more of an aesthetic consideration for the old school web designers who find it a great way to keep some of their more outrageous impulses in check. Newer servers can handle the increased demand and people on high-speed connections aren't going to see an appreciable lag in page load times if we start switching out graphically-rendered uses of non-core fonts for direct transmission of the fonts and rendering via CSS.

Basically, the only people who have to worry about slooow download times anymore are those who cling to their dial-up accounts... and iPhone owners who aren't near an open Wi-Fi hotspot. Still, it never hurts to be bandwidth thrifty. Wasting bandwidth just because it's available to be wasted feels almost sinful, and not in a good way.

One of the arguments in the comments section for the article is that giving amateurs the ability to include such a wide variety of fonts in their designs would lead to even more awful design. But that's possible right now, and not just with the people who use lots of fonts via .gif/.jpg. For example, Ze Frank held an "I Knows Me Some Ugly Myspace showdown. Basically, as long as humans are allowed freedom with web design, there will be bad web design.

Probably the most worrying bit, though, is the fact that adding this capability to the CSS spec means that the browsers that supported it would have to have new handlers coded to handle a new content type, and that creates another attack vector for bad people to try to exploit.

I'd suggest that an alternative might be to have a group of some of the web's top designers (including reps from the major browser makers) sift through the large number of "freeware" and public domain fonts on the web and select a reasonable number that would best round out the common collection that most browsers can be relied upon to display. Then the major browser makers could distribute that package as an optional update. Unfortunately, getting any large group of designers to come up with a workable consensus package would be beyond difficult, and no matter what they picked, the collection would just cause endless shouts of "what were you thinking?" from the rest of the design community.

So, by my reasoning, adding downloadable truetype handling to the CSS spec could cause more bandwidth usage, not less, and could create additional vulnerabilty to attack in our browsers. For some added ease in design and localization, is it worth it? Is this something we really need?

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>