Martian Headsets
joelonsoftware.com
joelonsoftware.com
Seriously: Opera, Firefox, Safari. All of these manufacturers have no issue rendering both pages designed to standard and table designed mishmashes. They're getting so good at their implementations of standards support that for 90% of the time, a design will look exactly the same in one browser to the next.
The exception to the rule is IE. The EXCEPTION.
Why? Because Microsoft, or forces within it, as far as this outsider can tell, continually wishes to revert the many-to-many market back to the one-to-many market. They use their size and position to force their way on everyone. Their way isn't necessarily bad, but it's different for the sake of being different to achieve the goal.
From my POV, Microsoft is an increasingly irrelevant player in the web browser world. The imminent failure of Vista will make this more evident. Customers are getting sick and tired of having things break when they upgrade their software.
Yes they are the exception, but like it or not you just have to deal with it.
Source: http://en.wikipedia.org/wiki/Usage_share_of_web_browsers
81% market share is not very spectacular when you used to have 97% a few years ago.
However you look at it they are the largest player, and you have to design for it. Having a website that doesn't work in IE is like having a store where you have a guy at the door telling 4 out of five people that they can't come inside to buy your stuff.
I don't particularly like MS, and I don't agree with their tactics but that doesn't mean I make the naive mistake of dismissing them or thinking that in a few years they'll be gone. They won't, so be a little pragmatic.
IE is in no way irrelevant, nor is it becoming so in the near future.
You're advising to act like they'll still be the dominant player in a few years, but by supporting them this way it's indeed true that this will be the case. See the vicious circle?
Not if you goal is to make money that is.
I don't think it's so much that the other browsers have SOLVED the problem, more that they never created the problem for themselves in the first place (to the same extent that Microsoft did, anyway). By sticking closer to the "standards" yesterday, they made backwards compatibility simpler to solve today, and Microsoft hasn't.
None of this answers the real question: now what? IE isn't going anywhere soon, and we'll have to live with it either as web developers or as users for the foreseeable future. Even if Microsoft wants to do the "right" thing, how can they clean up their mess without breaking all the "if IE do this" sites out there?
The IE team seems to be properly repentant, now, and they're down with the idea that they need to conform to standards. But they're under pressure not to break all existing IE-specific sites at the same time. And they can't go back into the past and convince their old marketing team to emphasize "standards" instead of encouraging customers to develop around IE-specific features. The laws of physics don't work that way.
[1] Cue irate reply from an old-school Opera user in: 3..2..1..
Couldn't this be fixed by rebranding? Instead of IE8, release a totally new browser that just happens to reuse a lot of code from IE. No hacks get applied. It either works or it doesn't, and if it doesn't it also doesn't work in Firefox, Opera, etc.
I suppose it would be a nightmare from a marketing perspective, though.
Change that and be done!
One possible solution is to identify as IE <= 7 to intranet sites (which can be designated via Group Policy) and IE >= 8 to non-intranet sites. Of course, this means admins have to properly define intranet/non-intranet, which means much rioting will ensue.
Poor IE team. You're getting screwed because management decided to rest on their laurels.
...There must be a good reason why this would never work, because I don't recall hearing it proposed before.
You and I tend to forget that such sites exist, because the environment of the public web, which teems with Firefox and Safari users, has rendered them mostly extinct in the wild. But in captivity, behind various corporate firewalls, where every single user has been running IE for a decade, such sites still exist, people care about them, and those people just happen to be Microsoft's core customers.
If, as you suggest, Microsoft ships a totally new browser -- which, let's face it, might as well be called "Firefox 3.0", although I suppose it could just be IE8 with a different User-Agent heading -- you and I will be happy, but lots of internal corporate sites will break, with no upgrade paths other than "redesign your site's HTML to be standards-compliant" or "tell your users to run two browsers: one for the intranet and one for the modern world". And corporate customers don't want to fork over license fees in exchange for that.
That's the basic contours of the dilemma: MS can either blow off their installed base or blow off the standards movement. The installed base has the money. The standards movement has the influence. Spolsky is right: The IE team is well and truly damned. They're just going to have to weasel out of it somehow.
On the other hand, Microsoft's piecemeal approach to web standards is starting to hurt it. The de facto web development best practice is now "Develop for a standards-compliant browser first, then hack it until it looks right in IE." This hurts Microsoft because it means that most new webpages only work incidentally in IE; if a corner case of some new feature is accidentally missed in the IE rewrite, the workaround might well be: "Try using Firefox until we get a fix out."
If Microsoft goes through with what they've promised, one day you've got a web site which works on the latest version of IE, and the next day (when MS releases IE 8) you don't.
Since all web pages aren't going to be fixed in a day, practically nobody will upgrade.
The only solution is to do what they did for version 7, and 6, and 5.5. Maybe they could have prevented the problem by releasing a more standard-compliant IE 5, but since then, they're stuck.
The good thing is that we're slowly getting better at abstracting the problem away.
Having users press a button for IE7 mode whenever they see a broken page is just asking for trouble. Now you've equipped every Solitare-playing cube dweller in your company with a "break this page" toggle switch that needs to be constantly moved back and forth. The call volume to the IT department help desk just went up by an order of magnitude.
So you're stuck with stupid hacks like "enter IE7 compatibility node if the URL matches this regexp". Fragile, fragile, fragile. And what if you actually have the budget to slowly migrate your ancient intranet site into the modern world, one page at a time? How do you serve half your pages in IE7 and the other half in IE8 without a special tag to distinguish them?
Most likely these intranets keep IE7 on their computers and slowly migrate and phase out.
It's not like these sorts of things are alien to the entreprise world - they spend an enormous amount of time dealing with legacy incompabilities - but consumers don't want legacy browsers and that's what Microsoft are afraid of.
Or -- continue having a strategic plan that goes two directions at the same time.
BTW, this solution works for some of the other problems Microsoft is having. Once you give up the idea of trying to lock people into a brand name and start thinking about the best ways to provide solutions, you don't have these kinds of problems.