You have to feel sorry for the developers of the IE browser. Here they are, toiling away on this software for over 10 years now, and it’s still not able to render pages correctly. Then along comes Google, and on their first try come out with a product which eclipses Microsoft’s fakakta browser several times over.
In the past couple of weeks, among other things, I worked on a project called the Corporate Bar. It consists of two rectangles, both as wide as the page, one short, the other tall. It only appears on the home page, near the top, and starts out with only the short one showing. When the user clicks on the rectangle, it retracts upward, while the taller rectangle appears, expanding downward. This happens fairly quickly, and I had no end of fun clicking on the Corporate Bar, making it expand and contract, again and again.
Of course, it wasn’t easy getting to that point. I tried coding it manually, in JavaScript; which is to say, without the aid of a library. But I kept running into various issues. So I finally decided discretion was the better part of valour, and turned to an old standby: X Lib. I’m partial to X Lib because it’s very granular: you only include the parts you need. In fact, it even has a so-called “compiler” which scans your code to see which parts you need, and packages them for you. You can thus avoid page bloat, which is my main issue with JavaScript libraries.
So, all this to say, it was a struggle getting the Corporate Bar to behave the way I wanted it to. But, happily, I finally beat it into submission, with the aid of X Lib. Good times.
As you may imagine, I develop in Firefox. As the project nears completion, I test it in other browsers. That list now includes the latest versions of Opera, Safari, and Chrome, as well as versions 6, 7 and 8 of IE.
Would you be surprised to hear that my latest project worked flawlessly in all my test browsers except IE? In all target versions of IE the Corporate Bar caused a vertical space to appear in the navigation tabs just below it. Additionally, in IE 8, the ads at the bottom of the page had some nasty artifacts.
I tried finding some CSS problem I may have accidentally introduced, but came up empty. I even handed the problem over to a colleague, thinking perhaps a fresh pair of eyes might find something I’d overlooked. Still nothing. So we handled the spacing issue with some IE-specific CSS, and a couple of judiciously placed conditional comments.
And then we come to IE 8: the steaming pile of code Microsoft is pinning their Internet aspirations on for the next several years. This is, according to them, the most standards compliant browser they’ve ever produced. And still, it breaks pages other browsers have no problems with.
But wait! IE 8 has a fancy new emulation mode which allows it to render pages as if it were IE 7.
So let me get this straight: IE 6 has bugs, and we code around them with hacks and conditional comments. IE 7 has bugs and we code around them with hacks and conditional comments. IE 8 has bugs, and you expect me to code around them as well? What incentive do I have to patch my code yet again, when I can simply say, “Pretend you’re IE 7”, and move on to my next task?
Clearly IE’s lack of standards was an attempt to make us all dependent on Microsoft’s browser, thereby locking us in. Microsoft has painted itself into a corner, and is insisting we contort ourselves into knots to accommodate the mistakes they made in trying to drag us into that corner with them. Perhaps their victory over Netscape was Pyrrhic after all.
The IE team have a directive, “Don’t Break the Web”. But the only thing they’d be breaking by abandoning their non-standard technology are pages which are not standards compliant. Too bad for the authors who didn’t pay attention to the W3C standards. It’s time to toss out your Betamax tapes and replace them with VHS. By insisting on supporting these broken pages they’re making us all pay an outrageous price.
We’re all stuck with whatever browser Microsoft puts out, because the vast majority of people hardly know what a browser is; never mind downloading one of the many quality alternatives. So they surf along in IE, happily unaware of the damage they cause.
What damage? Well, imagine a world where IE didn’t hold the lion’s share of the market. If Microsoft insisted on imposing non-standard behaviour, we could, conceivably, ignore them. Signs would appear on websites across the ‘Net: “Not compatible with Internet Explorer. We recommend Firefox.” Pretty soon Microsoft would drop their non-standard practices and toe the line.
Such a wonderful dream. Sadly, the number of users straddling us with IE is far too large to allow ourselves to break their pages. So, we do twice and sometimes three times the amount of work normally required in order to accommodate IE’s many idiosyncrasies.
My recommendations to Microsoft’s IE team:
- Admit the failure
- Give IE the funeral it deserves
- Replace it with one of the open source browsers (Firefox, Chrome) which you can rebrand
- Don’t get smart with the standards again. You’ll only end up with another black eye.
*sigh* What a wonderful world this would be.