And now a story about something that is near and dear to my heart: web design standards. Wait! Don’t run away…this has the potential to affect everyone on the web, even if they don’t know it.
The internal version of Internet Explorer 8 — the yet-unreleased version of Microsoft’s web browser — has passed the ACID2 CSS compliance test for web standards. This is huge news; allow me to elaborate.
I spend most of my time designing web sites. I design web sites at work, and I do it on the side. Creating the visual component of the web site — the user interface — involves laying out and styling your page elements with CSS (Cascading Style Sheets), a language for describing visual properties like font size, box width, color, background images, position on the page relative to other elements, etc. It should be simple, and in most browsers it is. For FireFox, Safari, and Opera, I can hammer out pages with almost no trouble at all. I understand all the parts of CSS and know how they should interact with each other. Internet Explorer, however, has always had its own set of rules. Let me bring up an analogy I wrote long ago:
For those of you who don’t know what I’m talking about, think of it like this: the XHTML/CSS involved in web site design is like a recipe. Say the recipe calls for the oven to be 400 degrees. On ovens made by Mozilla (FireFox), Opera, and Apple (Safari), asking for 400 degrees means you get 400 degrees. Even though manufacturing standards say all ovens should be able to be set to 400 degrees, Internet Explorer cannot be. For my recipe to work right on Microsoft’s Internet Exploder Oven, I have to include additional instructions for the oven to first heat to 500 degrees, then cool it down to 350 with ice, then add steps for building a fire in the oven to raise it to 400 with a rare redwood only available on the rocky slopes in the Washington state mountains carefully stacked to form a combination Microsoft-swastika symbol that must be ignited by two monkeys rubbing sticks together as they attempt to recite the version of Shakespeare’s Hamlet they banged out on typewriters while filling in for the engineers who were supposed to be designing the Internet Exploder Oven.
Now even when Internet Explorer 7 came out last year, Microsoft only improved CSS compliance slightly over IE 6 (58% compared to 52% compliance, I believe; all other browsers are at least in the mid to high 90s). The ACID2 test is a stress-test of a browser’s ability to properly render tons of CSS properties — a browser that passes is considered to have a perfect rendering engine. Ideally, it shows a smiley face built out of dozens of CSS instructions. However, until recently, most browsers showed a garbled mess. If you check out the rendering comparison I prepared, you’ll see that even the current FireFox 2 doesn’t pass the test (although FireFox 3, which will be out early next year, does). For IE to go from that red, bloody mess you see for versions 6 and 7 to perfect for version 8 is…well, it’s almost too good to be true. I’m having a hard time believing it, actually. It’s like peace coming to the Middle East overnight. Or Bush admitting he made a mistake. But I digress…
As I said, this is truly huge news. Web designers such as myself spend an appalling amount of time debugging sites for IE; I estimate that, depending on the complexity of the design, anywhere from 30% to 60% of my total time writing CSS is writing stuff specifically for IE, after the site already looks perfect in every other browser. It’s infuriating and frustrating, because its behavior is hard to predict sometimes. So even though we’ll have to back-design for people stuck with IE 6 and 7 for some time (years) after IE 8 comes out, there is now a light at the end of the tunnel. What does this mean for the average Internet user? Probably better-looking sites in some cases, as people become unfettered by the limitations of IE 6/7, and it definitely means sites can come to fruition faster.
The wording of the IE development team’s blog post (“IE8 now renders the ‘Acid2 face’ correctly in IE8 standards mode“), and their insistence that they aren’t going to break all the existing sites that have been mangled to render properly in IE 6/7, makes me think that the browser will have two modes: legacy and standards. My guess is that it will render in legacy mode by default, so existing pages don’t have to be changed, and then developers can have a special tag at the top of their pages (probably a conditional comment or something similar) that will kick it into standards compliance mode.
That sound you hear? The rejoicing of web designers all across the Internet.