Oliver Nassar

Jumping the gun: html5/css3 is not here yet!

September 08, 2009

On Twitter, I follow a bunch of people in the development arena. JavaScript framework core developers, designers, mysql/php architects, etc. etc. I'd say about 50% of the people I follow are in that arena (the other 50% probably being aggregators or tech news sites/blogs).

A consistent theme I'm finding in the past few months has been css3/html5 posts. They talk about new effects, rules, possibilities, etc. etc. Now I try to be optimistic about web development; I try to practice valid w3c content, semantic markup, everywhere I can. But the age of css3/html5, at least for me, is still so far off. 25% (at the least) of internet users are still using ie6, another 40% are using ie7; that takes us to about 65% of internet users using subpar browsers (ie7 is a step up, but still very much sub-par) that don't support anything close to css3 and html5.

These browsers are so terrible that I spend about 80% of my client side development time focused on fixing issues I run into there. I write code that is semantic, valid, and based on standards, and then debug it and add in browser-specific fixes for them. Now the reason for bringing up my (and obviously most client side developer's) hatred for it is because of this sudden (last 4-6 months) pushed towards css3, but even more, html5. Put simply, we're jumping the gun.

We're not anywhere near the period of time whereby these standards can be used properly for the vast majority of users. Yes, graceful degradation and progressive enhancement do allow us to make use of them for those vendors that have supplied standards-based browsers, but the time being, maybe only 25-35% of users will get to experience these enhancements. So why put so much effort into transforming your sites and communities to use these standards? Is it worth it?

HTML5 is, believe-it-or-not, a pretty large step forward. While it's simply an extension of html 4 and more than anything, introduces some different namespaces and tags, I keep coming back to thinking whether we should bother with it right now. It won't be until IE9 or an IE8 service pack/update that the majority of users will get any use out of it, and for large companies and communities, it represents hundreds/thousands of hours of work, changing your design/style guides, and means often times having multiple code/script bases for different browsers that represent which support html5, and which don't.

Now I'm coming at this from a freelance/contract developer. I have a task, and it's in my best interest to make it work in the top 3 browsers (ie6, ie7, ff3) as fast as possible, and as cleanly (the fewer moving parts, the better). I might use some css3, I might use some transparent png's, but that's my limit. Going over board with css3 and integrating html5 is not a priority of mine, and would represent extra hours which I couldn't work into my pricing/rates. I would rather spend my time writing semantic, standards based code, and open sourcing anything and everything I could to help out others; at least until one of the top two browsers supports html5 (ff isn't there yet, despite many claims that it's the number 2 browser next to ie7).

This approach by me has it's problems. Namely, if people don't push technologies that aren't yet wide spread, than the major vendors won't feel as pressured to support them. I understand this, and in many ways, it's up to the big guys to help push new technologies. But this brings me back to the post's title. Are we jumping the gun? We're years away from a top two browser from supporting either css3/html5. So should we spend all this effort, time and money developing for something that most user's won't even experience?

There are exceptions to this; if I'm designing an app/site for an intranet where I can control the browser type. Or if it's for a specific niche (eg. graphic designers, web developers) where I can safely assume or pressure the visitor to use a new-age browser (safari, chrome, ff3). Then maybe I'll take the time to learn the new semantics, make the site pop like it never could. I'll spend the extra time, effort and money to create a richer experience. But these are exceptions, not the rules.

These are thoughts/ramblings that have been going through my head for quite some time now. They aren't polished, they aren't definite, but they are something that I've thought of, and I assume other's in the community have as well.

While these are my thoughts, and I'll stick by them for a while, I won't stop trying to learn about the new technologies. Progressive enhancement, ajax, JSON, JSONP, and whatever else comes along, I'll jump into, just like css3/html5, but just like ajax didn't become popular until XHR became widespread in most browsers, I won't make use of it (with certain exceptions) until major vendors (m$) decide to give me the tools to do so.