Why I Love The Web Standards Acid Tests

Sunday, December 20th 5:17pm Matt

I generally design only for the latest browsers. If my code works on the most recent version of Safari, Opera, Firefox, and IE then I’m happy. However, Internet Explorer is such a piece of crap that sometimes atrocious errors on IE7 give me great pause. (As of this writing IE8 was the current browser.)

I’ve said before that I used to work on Internet Explorer. But when I worked on it IE really was effectively the only browser out there. We actually took compatibility with Netscape very seriously, but then we went way ahead and implemented more features from the standards. The problem is, we made mistakes in those implementations and since there were no other browsers, our mistakes actually became a sort of standard.

But those days are long long gone. Now it’s far more often the case that my code works “the first time” on every browser out there except for Internet Explorer. The other browsers are all more standards compliant by far. They also score better on the Acid Tests, and that’s why I love the Acid Tests.

When asked, Microsoft will say that the Acid Tests are random, that they aren’t developed with real world scenarios in mind. There is a great Microspeak term invented at Microsoft: the Acid Tests are a forcing function.

A forcing function is a situation or constraint that forces you to make a decision you would not make otherwise. For instance, in my end days at Microsoft, while working on the Windows Presentation Framework, one of the high level managers told me to come up with a plan to implement a feature that I was very outspoken about not implementing. I was given a week (I think) before presenting this plan to a group of all the highest level managers in our group. They were very sneaky saying that they didn’t necessarily want to implement it but if we did, how would we do it? The idea was to get me to do the work under false pretenses, then they would force me to put it in the product since it was already done. While talking about this later, the term forcing function came up, I hadn’t heard it before that. That situation was one of the nails on the coffin of my relationship with Microsoft.

Now that I’ve finished with my Microsoft story, I’ll say that learning the term was the best part of the experience because it describes that kind of situation very concisely.

The snakes were the forcing function that made me decide to mow my lawn on a regular basis.

If you decide to go live on the 10th, that’s going to be a forcing function for about five other required sub-projects and your bill is going to be a little higher than usual.

So Microsoft, it’s time to take your own medicine. We don’t care if you don’t think the Acid Tests represent real world scenarios. The truth is, fixing these bugs to pass these tests will actually and truthfully make your browser better. All the other browsers have proven it’s quite possible. You’re not protesting, as I was, out of a belief that the forcing function will make you do the wrong thing. You’re protesting because you’re incapable of actually fixing your browser.

Microsoft, please get out of the browser business and make everyone’s life easier. I’m tired of waiting for you to figure out how to write software.

Submit a Comment