Two wrongs don't make a right: Microsoft needs to fix themselves
Jan 22 ’08
Yesterday two articles appeared at A List Apart discussing a Microsoft-backed proposal to change how the web works (round-up here). The proposal, on its face, is quite simple. Developers would put a meta tag in their documents (X-UA-Compatible) stating what version of a browser the pages were coded against. The browsers would read the tag, and render the page with legacy behavior, including all of the quirks, of that browser. The goal is to "not break the web" with browser upgrades.
It sounds like a great idea, right? I mean, why should I have to worry that Microsoft released IE7? If I used this tag, and specified IE6, then my page would always render correctly in IE, even if IE was on version 28.
Let's really look at this situation. There are two wrongs here, and Microsoft wants to add a third. Let's look at how we got here.
Microsoft made a bad browser: it didn't (and still doesn't) support the CSS standard
Developers everywhere screwed up by coding pages that take advantage of the IE bugs, in a way that breaks in standards-compliant browsers (never mind that conditional comments makes this unnecessary)
Microsoft upgrades IE to version 7, and those bad sites break
Microsoft says, "If every web developer were to just change how they work, we could have upgrades that are ok."
Do you see the fatal flaw in the logic?
It's right there in steps 1 and 2.
If Microsoft made browsers that support the standards, we wouldn't be in this mess. I say, no to Microsoft's proposal. I say, if Microsoft doesn't want to make browsers that support the standards, then their customers get what they deserve if the web starts breaking for them. I say, how about Microsoft step up to the plate and make a rendering engine that works instead of relying on everyone else to fix their problems for them.
"But what about all of those pages that the IE7 upgrade broke?" you ask. Those are bad pages, and IE7 is a bad browser. They're either not coded to standards, or IE7 choked on the correct standards-compliant code they were using, or both. That's why they broke. The people who paid for that development should switch developers to get someone who knows what they're doing, who will code pages that actually work. The browser shouldn't have been released if it didn't support the standards.
This is why they're called "Web Standards." Because they're standard. I make a page that works in Firefox, I know that it works in Safari. I should know that it works in IE. If that's not true, then it's IE's problem, not mine.
Note to Microsoft
FIX YOUR D*** BROWSER ALREADY. It's almost been a decade since IE5 started support for CSS 2, and they still haven't gotten it right. They make $50 billion dollars a year and can't make their browser behave.
Note to web developers
FIX YOUR D*** PAGES ALREADY. It's almost been a decade since CSS2 came out. You haven't figured out how it works yet? You call yourself a professional? Get with it.
I'm a bleeding-heart liberal
Zeldman posted about people just like me. He says, "We wonÃ¢â‚¬â„¢t get converts by breaking sites and ridiculing their creators for not knowing as much as we do." He's right.
Except that we've tried that, and it doesn't work. It doesn't work because many of the web pages out there aren't made by professionals. Anybody heard of Dreamweaver WYSIWYG mode? If the pages work, people are happy. Except that they don't work. If they work in IE6, but not in IE7, they never worked. They just had the illusion of working.
Let's make an analogy, to print design. If I, a rank amateur in the print design world, decided to print a book in 5 point Comic Sans and it was totally illegible, that's my problem. It's not the printer's problem, or the reader's problem. It's mine. I screwed up, I made content that wasn't accessible to anybody. Some readers have figured out that if they use a magnifying glass, it's not so bad, they can read it. That doesn't mean that my book wasn't broken. Now let's say that these people buy another book of mine, this time printed in 72 point Bembo. With their magnifying glass, they now complain that the new book is broken! They can't read it. Nobody else can either, because the type is just too big. If I said, "Well, every publisher needs to do something so that my books are legible" you would say I'm stupid. It's up to me to books that are legible. And that's right. That's why it's up to Microsoft to stop making a browser that's broken and expecting people to work around them. And it's also up to developers to stop coddling the browser that's broken.
Why the doctype switch isn't targeting
One problem in this debate is that people are confusing doctype switching with version targeting. Using a standard doctype is like a contract: I, the developer, support this standard of HTML and CSS, so that you, the browser, can render it properly according to the same standard. The standard provides a common language, a shared vocabulary, so that the garbage I put in to the system is the same garbage that comes out. Targeting a browser isn't the same thing. When I use conditional comments or other CSS hacks, I'm saying "hey browser, you're don't understand this sentence in our standard vocabulary, so I'm going to give you a sentence that you understand." That's not the same thing as saying which vocab you're using. It's like talking to a child Ã¢â‚¬â€ if you use a word the child doesn't understand, you talk around it, explain it, you don't switch languages. If I use the new meta-tag, and I target IE7, IE8, or IE42, it should render my page the same, according to the contract I say I'm holding to in my doctype declaration. End of story. If they don't then they've got bugs.
Are we really going this way? I can't believe that this industry is even considering Microsoft's proposal. If the browsers aren't upholding their end of the contract, why should we work around them? Let them be broken, let people decide they don't want a broken browser, let the bad browsers die.
Conversation in progress…
Join the conversation
* indicates a required field