Standards mode is the new quirks mode

Just in case you haven’t already read the companion articles Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8 and From Switches to Targets: A Standardista’s Journey at A List Apart, I suggest you do so now.

Back? Good. If you didn’t read the articles, here is an executive summary: Because of their immense fear of making broken websites that should be fixed look broken in Internet Explorer, Microsoft are going to make developers add a particular meta element to any page that IE 8 should use its “really, really standards mode, and we really mean it this time” to render.

Now, this is one of those subjects that if you have an opinion on it, it doesn’t matter what that opinion is. It will be the wrong opinion to a lot of people anyway, and people will become rude and call you names. Come to think of it, most web related subjects seem to be of that kind these days.

When I first read the articles I just mentioned I shrugged, finished my breakfast, and drove to work. Yawn. Big deal. But after several people have asked me what I think about it, I re-read the articles and the comments posted on them as well as a lot of other people’s opinions. And now I have an opinion which will be the wrong opinion to many people. What else is new…

I’m not convinced enough that I can say my opinion will never change, but for the most part I think introducing this switch is a bad idea. If other browser vendors than Microsoft also introduce it I think it’s a really bad idea. As do others – read The Internet Explorer lock-in and <META HTTP-EQUIV=”X-BALL-CHAIN”> for starters.

So, please tell me why those of us who think this is not a good idea are wrong.

Posted on January 23, 2008 in Browsers, Web Standards

Comments

  1. I must confess I posted my own appraisal of why I think this is a monumentally bad idea last idea, and I wasn’t quite as polite as I necessarily could have been. Mind you, I do strongly believe that a lot of the people involved really should know better.

  2. Um, and by “last idea”, I clearly meant “last night”. I even went back and edited that comment before posting it, too. Sigh.

  3. Why can’t Microsoft just keep a gigantic database of all the websites that should be rendered in full standards mode and have IE8 query it every time. Hey, it’s almost as retarted as the idea with the meta tags, so why not?

  4. At the moment it does not look like a good idea, and I’ve found no reason to think otherwise in what’s written about it so far.

    This MSIE version-targeting mode switch doesn’t really solve anything in the long run, since no future version of MSIE can be expected to have a flawless version of previous rendering-engines built in. Thus, there’s no guarantee that pages will be rendered as in the version we target them to in a future MSIE versions, even if that’s what they say.

    For most old, and many new, sites it’ll probably be “IE7 for ever” - even if they are coded for progress, simply because this “mode switch” meta won’t be included. Those who want to code for and take their chances on progress, will have to target “MSIE-edge” and keep watching how their old work is handled, as would be the case anyway if this switch were left out.

  5. Why make IE 8 behave like IE 7 as default?

    The real problem if you ask me is that you can’t have two different IE-versions installed at the same time…

    Having the suggested meta-switch isn’t a good solution at all.

  6. Hmpfh! And we thought with the phasing out of IE6 the life of the web developer would get easier.

  7. January 23, 2008 by Rafael

    Terrible idea. Browser sniffing all over again.

  8. “So, please tell me why those of us who think this is not a good idea are wrong.”

    To play devils advocate - I think the new system doesn’t go far enough. I think that if the new system also required a valid page in combination with the meta tag, then we would see the rise of Web Standards from a small dedicated group to a much larger thing. Why?

    Because if you had to have the META tag and your page had to validate to trigger ‘really really’ mode, then it would stop ignorant developers simply throwing in the META tag, or in years to come having their authoring environment do it for them.

    Now is the perfect chance to realise Web Standards properly. What we have right now is massive ignorance, despite years of effort. We have valid DOCTYPES with junk mark-up. So, use the new system in combination with a validity checker. Fail any site that doesn’t validate against the DOCTYPE and then use the IE6/7 engine for it.

    In this way every developer can carry on for years exactly as they do right now. But, if any developer wanted to use the new-shiny of CSS3 or JS2 then they will HAVE to go learn properly.

    I wish that’d happen. But the tag alone won’t push things that way. It’d just become another DOCTYPE mess.

  9. January 23, 2008 by Matthew Pettitt

    I’m firmly with the “this is a bad idea” camp - adding extra markup (or headers) to support a browser just seems wrong.

    Ideally, browsers would actually support all of a standard, as written/published, and, given a page with appropriate doctype/script language/CSS version information in, render it as that standard states.

    Even if it breaks some older sites, transitioning to a standards-are-actually-standard model of web browsers would be a good thing in the long term. Yes, it means that CSS3 support, for example, would be disabled by default in current browsers (it’s not a finished standard - by definition, it can’t be implemented yet), but it should be possible to provide it as an option (given that the browser would need to be able to render using older engine behaviours anyway).

    Then any page with standards based layout, including the versions of standards used (as required by most standards) should render as expected in any browser claiming to support that standard.

    Until browsers actually support standards as published, there will be this disconnect between what should be possible, and what is actually possible.

  10. To be honest, the arguments against it do not really convince me, seems to me that there is a lot of fear for new developments. My instinct tells me too that this is a bad idea, but in order to make up my mind about this, I would much more like to hear arguments that support this new feature.

  11. I have soo many comments that I’ll probably have to write a blog post about it myself.

    But at least let me pose this question: If Microsoft cares so much about not breaking the web, why did they break the desktop with Vista?

  12. Their argument seems to be that this way, you can prevent any site breaking in any future browser version in the future, as the potential fixes in IE9 might otherwise break sites that run fine in IE8.

    However, if they get IE8 right, and at the moment it seems like they are writing a new rendering engine, then this is not much of an issue. Many of the BC-breaking bugs that even creeped up in IE7 are solely due to the fact that Trident is so horribly broken deeply inside.

    As the Firefox folks pointed out, it’s very rare for them to break existing websites with a new version. That’s mainly because they don’t have bugs where elements disappear entirely, or margins are doubled, or whatever. All the things Microsoft is aiming to fix with IE8. I seriously wonder how many bugs can be in a browser that a) will pass ACID2 b) will be thoroughly tested against all the bugs that are out there.

    Ideally, IE8 will be on a par with, say, Firefox and Webkit. If that is the case, then it’s highly unlikely that IE9 will break things that rendered fine (or not) due to bugs in IE8.

    So all they are doing is having a backup feature to save their asses should they mess up IE8 again. Which is just the wrong attitude.

    Also, if they did it properly, without worrying about this “what if IE9 has one bugfix that breaks these three websites omg” stuff, they could easily do without the meta tag, and simply enable this “we got it right this time” standards mode for HTML5, and if an XHTML document is served with application/xhtml+xml (which would of course mandate they send that in the Accept request header, too), because that doesn’t work at all right now and thus would not pose the slightest problem.

  13. My question is: What will happen when Microsoft releases IE9? Do we need a new meta-tag? And what about IE10 and so on?… I don’t think it will solve anything.

    Like so many has said before me, do it again, do it right and stop trying to fix the past.

  14. We, the advocates, think it’s bad idea since a) it is a IE-team announcement, and b) people, even us, don’t like changes.

    Meyer does have good points. Enough of them to make me believe this is something which can bring good.

    What makes me sad, though, is this: Why must web standards aware developers suffer because of the lame excuses for developers not willing to learn?

    I think every site without the meta element should b rendered as IE8 by default.

    I wish the meta element will be a quickey to all peoples unwilling to make things right the true way, rather than i spit in the eye of web standards advocate.

  15. I’m not convinced either way. There are a lot of good arguments and smart people on both sides. Here are a few preliminary thoughts on the issue:

    • This will let IE move forward with standards, instead of forever tiptoeing around them in the fear that something will break. This is a good thing.

    • If Firefox remains strong in the browser market, then developers will continue to test it. If Firefox refuses to implement this (which it probably will), testing in Firefox will help ensure that standards are followed. It is, however, an odd thing to base support of a de facto standard on part of the browser market refusing to support it….

    • It’s possible that the only people who won’t keep their pages up to date are the people who wouldn’t care anyway. Someone needs to do a breakdown of user types and their probable reactions to this development.

    There are also some obvious problems with version targeting:

    • The two things that drive people to use newer standards are newer features or old stuff breaking. If we default to IE7 rendering, the old sites will not break. This will remove at least half of the push towards new standards (for those solely using IE). The problem with defaulting to the newest engine is that it doesn’t fix the problem for sites that have already been created. This may ultimately be a distasteful best solution.

    • It seems that this will push at least a little towards browser lock-in. Microsoft seems to like things like this, so we should be careful about it.

    • It isn’t only CSS, it’s any standard that affects how pages are rendered (JavaScript: yes; png transparency: no).

    • This tiny change would probably require open-source projects like Firefox to make major changes in their page rendering pipeline. This is part of the reason that they probably won’t support it.

    • One big issue is that Firefox may not render many IE6/7 sites correctly. If those sites are allowed to exist peacefully, it will disadvantage Firefox. The larger file size won’t affect IE, because it is distributed with the operating system.

    • All the other problems that people have pointed out: Do different versions of IE7 rendering act the same? There is a problem with a browser defaulting to old technology.

    Remember that it isn’t a perfect world. All browsers have bugs, and all browsers have a responsibility to their users.

    Standards people, myself included, have our dogmas. Dogma is a dangerous thing, because it may keep you from accepting valid new ideas. And things can be mistaken for breaking the dogma even if they really don’t.

    We need to think about whether there are ways to minimize the bad effects and maximize the good effects. If we can do that satisfactorily, then this is a fine move by IE. If not, then it should be opposed.

    Also important: Is there a better way to address the problem of IE breakages (and therefore allow IE to move to standards-compliance) than this version targeting plan? If so, we should consider that plan as an alternative to this problematic one. There is never only one way to solve a problem.

    Aaron Gustafsen said that it took him two months before he decided that, yes, this is a good idea. Let’s give it a couple months of reasoned online discussion before we decide one way or the other.

  16. Consider this scenario: You’re running a Fortune 500 Company’s IT Department, you have eight separate intranets in six different states with 160,000 total pages including the old Lotus Notes-based knowledge base, a forward-facing internet site with 5,000 pages, an extranet for customers and an extranet for suppliers.

    You’ve committed to the CEO to replace the Notes database and consolidate the intranet sites, re-brand the internet and add eighteen features to the extranets. Then IE8 beta is unleashed on the world and you find out it breaks all your sites. Your told that the new IE8 rendering engine is going to break all your sites internally and externally.

    • Folks: Let’s not play the blame game at this point and say silly things like “It’s their own fault for not having standards-based sites.” How these sites came to be created that they would eventually break is not pertinent to the discussion, but is rather the reality of today’s web.

    The proposed solution allows everyone to access all your data and see it as IE7 by adjusting settings on a couple internet servers. The problem is fixed by lunchtime they day the beta is released.

    This gives you time to fix the formatting problems, or replace the systems, or move your business forward without having to expend time energy and money going back into ancient systems that no one really understands anymore trying to fix stuff that you are trying to get rid of anyway.

    There’s one reason for you, Roger. It is a simple yet powerful solution to allow you as a web site owner to manage the introduction of new browsers onto the market.

  17. After a few more minutes of thought, I have a quick argument for defaulting to “edge”. It is a lot simpler for Microsoft to release a simple notice once than to forever be updating version tags:

    If your page breaks in IE7 or IE8, add the following code to the <head>: <meta http-equiv="X-UA-Compatible" content="IE=7" />

    It won’t fix the page for other browsers, but neither will the other system. The only serious drawback is that it won’t fix it for unmaintained web pages, but the unmaintained pages we care about are almost always understandable, even if they don’t render pixel-perfectly. The ones that matter are usually those with advanced layout or JavaScript features, and more likely to be maintained. In the seriously unmaintained pages, it’s more an issue of archiving — not something that browser developers should fret about.

  18. So doctype was ok until everyone started including it, even when they didn’t know what it was for.

    So in a couple of years lazy developers will read a tutorial and decide that “ie-edge” makes their pages futureproof.

    Then we’ll be back where we started.

  19. I didn’t like this idea from when I first saw it. Once again, it feels like Microsoft is putting the onus on developers to compensate for IE, rather than the other way around.

    To be fair to Microsoft, web standards are anything but standard in practice, and it’s difficult to compensate when you’ve got some people who adhere rigidly to the standards and others who don’t, for one reason or another. But having to add another piece of markup to my code to identify my category in this herd doesn’t seem like the right way to go.

  20. January 23, 2008 by katy lavallee

    I’m glad we’ll have a meta tag to show what version sites were developed for. Regardless of why it came to be or how Microsoft might screw it up again, I think it’s a useful piece of information to have access to. In the future, we may be able to do more with that information than the things we’re thinking about today.

  21. I can’t tell you why you’re wrong, because I don’t know that you are. I can only explain why I think the proposal is a good idea. Which I did, or at least tried to do.

    Honestly, the only reason I’m posting here is to comment on the following:

    Now, this is one of those subjects that if you have an opinion on it, it doesn’t matter what that opinion is. It will be the wrong opinion to a lot of people anyway, and people will become rude and call you names. Come to think of it, most web related subjects seem to be of that kind these days.

    And you have no idea how disheartening that can be. What I had hoped to see was criticism and debate. What we got instead was Slashdot circa 2003. Thank you for being an exception, Roger.

  22. I agree that this is a terrible idea. I have nothing rude to offer, except that you smell bad and your hair looks funny…?

  23. Here is what I want to know:

    Suppose I “drink the kool aid” and create my page, including the new meta tag.

    What happens when a user using IE7 comes along?

    Does it recognize the meta tag and display the page properly, or do I need to ALSO create a page for IE7?

    If the latter… why would I create the IE8 page with the meta tag if it will automatically “fall back” to IE7 mode?

    The easy way out is to just maintain one page and force the newer browsers to act like the old.

    Seems to me what you have really done is cemented IE7 as the “default standard”.

  24. Why is this better than conditional comments?

  25. Isn’t IE8 meant to be a step forward? Surely launching a new browser with a series of hacks built-in isn’t the way to engender confidence…

  26. Mmmmmm I read and commented on a similar article on alistapart recently and I’m beginning to wonder… Maybe we create all our new projects to have the “render me as IE7” meta tag then we can just ignore Monopolysoft when they release a future version?? Genius.

  27. Leaving aside the issues concerning the lack of incentive for developers to adopt cutting edge standards (which is bothersome enough), the two biggest problems that I can see with this system are security and footprint.

    Imagine a web page rendered in “IE=EDGE”, but with IFRAMES and/or OBJECTS containing pages rendered in other rendering modes. Each of these renderings will have access to each other’s DOM, and all hell could break loose. Surely vulnerability to XSS and similar hacks would be increased. The sheer size and processor usage of a browser that could handle multiple rendering modes scares the hell out of me as well.

  28. I guess I will have to make an edit to every site I’ve ever made. That is the reward for complying with web standards and doing it right the first time… thanks Microsoft.

    That said, I am not in the least bit surprised. :(

  29. I really thought IE7 would be the last browser ever I needed to do browser sniffing for. Microsoft disappointed me again. :(

  30. January 23, 2008 by Adric

    This is a great idea. It will allow Microsoft to more rapidly deploy fixes and additions to their CSS support in future versions, because they won’t be worrying as much about breaking backwards compatibility. Which is really what all the standardistas have been clamoring for. Only now it looks like they haven’t been?

    There is a huge disconnect between people who actually get paid to work with HTML and those who don’t. All the people saying Microsoft should just ignore backwards compatibility are not living in reality. It is depressing.

    The only criticism I’m even seeing is “this will never work because ::insert reason X::”. Reason X usually being something like “Microsoft will screw it up.” I take it as a given that something that doesn’t work as advertised will not be good. But assuming they do pull this off, it will be a VERY welcome change.

    And ultimately, I could care less if Firefox supports it, because the client either doesn’t care if the page is broken in Firefox, or understands that it is the job of the browser to be backwards compatible. And its about time.

  31. @Adric:

    Actually, an awful lot of the people who are saying Microsoft should ignore backwards compatibility for supposedly standards-compliant sites do get paid to write and maintain HTML.

    The biggest reason not to do it (bear in mind that non-standards-mode sites will be utterly unaffected by all of this) is that it’s totally unnecessary: conditional comments solved the problem when IE 7 came along, and not one person, either on ALA, the IE team’s blog, nor anywhere else I’ve been reading, has come up with a good reason why all the people who’ve done it right should have to alter all of their sites (using the meta element), instead of all of the people who’ve done it wrong (who just need to tweak/add conditional comments).

  32. It seems to me, after reading through the comments, that what is really need is a better explanation of what the proposal is all about. Since I read one interpretation after another and no-one seems to be able to agree?! Confusing.

  33. My major concerns are already mentioned in previous comments… future bugs in IE10’s version of IE7 is a big one, bloatware as newer versions evolve (both mentioned by Eric Meyer actually) and the ultimate cost of supporting such a system. I’m cautious that any IE lock in to bolster bad code can’t really be a good thing… IE lock in is not a good term from a marketing perspective btw.

    My gut feeling is this is not a good thing. I take on board the comment mentioning dogma. But in this case my concerns are based on what seems to be a trend over the previous year to push dumbing down (HTML 5 and alternate text, for example) to meet the lowest common denominator argument. This time its IE. The tail wagging the horse.

    The cynic in me would say that its a done deal though and now the cat is out of the bag if this is a bad thing MS will do it anyway. After all its about the Web being MS dominated right? Our bat and ball… etc.

    Its a very complex issue not just about technical issues but also business and ecommerce concerns. In the end I’d suggest timidly that MS needing to rebuild from the ground up is something they should cop on the chin. It would be a blow to web standards to support anything that put Firefox and other good browsers to disadvantage right? Does that make sense?

    Oh, just as an afterthought, sorry to be anti-IE today but I was under the impression they had money coming out their squidoos and users are tied in via their OS so they won’t lose too much market share from rebuilding from the ground up. Naively I know. Why not make is to we can have the multiple versions of stand alone IE installs for MS intranets etc to not break and let the outward facing web break as it may? We have to admit a lot of the IE7 issue involved using hacks we knew were hacks that could be fixed in newer versions. No surprises there and why I don’t use hacks. Never had to fix a thing.

    If a company’s web site breaks in IE8 to any major degree fire the web staff and hire people who know their skillset…

    Sorry for the long post, this conversation is making me more negative as the day goes on… just my 2 cents.

  34. January 24, 2008 by DavidONE

    Roger,

    There are several reasons why those of us who think this is a bad idea are ‘wrong’:

    1. it will save website owners from needing to fix broken markup when IE8/9/10/11/… are released. They will be able to perpetually run in IE7 render mode.

    2. it will save Microsoft from looking bad to their customers and thus safeguard browser market share. If IE8 rendered the same as Firefox or Opera, then users would simply choose their browser based on security and features - this, apparently, would not be good

    3. it will stop MS devs being fired because they built a standards-compliant browser (Zeldman)

    4. we have been using the wrong language to express our disapproval (Zeldman, Meyer)

    5. if this meta switch / browser sniff hack is not implemented, Microsoft will abandon standards based support and therefore the standards-based web will collapse (Zeldman)

    6. we are being mean to people who have invested time on this project

    7. many developers don’t understand or care about standards, so they should be given preferential treatment and be kept ignorant about web standards (Zeldman)

    That’s my (slightly facetious) take on it. Otherwise, I believe, ‘we’ are right.

    One issue that I’ve not seen discussed yet: why are MS now concerned about new browser breakage? The change in rendering from IE6 to 7 was greater than 7 to 8 will / would be (if they implement a non-hobbled engine).

    By all means Microsoft, add some markup that allows website owners to have their site rendered using IE7, but don’t make that the broken default - and don’t try and obfuscate by suggesting other browsers follow this ‘great’ example.

    Also, don’t expect anyone to be thrilled by attempts to subvert open standards by reaching a unilateral decision made behind an NDA.

  35. January 24, 2008 by Colin Williams

    I’ve slept on this one, and I’ve concluded that it’s a bad standard to be implemented by all browser vendors, but it’s a good short term solution for, and only for, the release of IE 8.

    I mean, think about it. This is quite a relief. If IE8 is good enough, we can develop with the IE=8 meta tag and enjoy the wonderful things that a competent browser can do for us through CSS and HTML. This is also good for users. Their web won’t “break.” This latter point might also give MS some breathing room, allowing for faster development to future versions.

    So, great for IE users, great for Microsoft, useless and impractical for the rest of the forward-thinking world.

    Can’t we leave it at that?

  36. DavidONE:

    One issue that I’ve not seen discussed yet: why are MS now concerned about new browser breakage? The change in rendering from IE6 to 7 was greater than 7 to 8 will / would be (if they implement a non-hobbled engine).

    Good point. If all sites started to “break” by the IE7 upgrade, it would be more natural to have IE6 rendering mode by default.

  37. Microsoft should stop making web browsers RIGHT NOW and ship any other vendor browser with vista and xp

  38. I’m not sure who the proposal will actually help, other than Microsoft.

    Sites created by Standards-savvy designers should render well in IE8, while those by less Standards-aware designers will quite likely be laying out their pages to suit IE6/5.5. Or they’ll be using layout tables!

  39. @ Anders:

    Not all sites. The figure quoted was about half of the top 200 sites, many of which would have used relatively advanced css/javascript. The sites (besides the ones driven by complicated javascript interfaces) probably wouldn’t have absolutely broken, but certain elements would have displayed unsatisfactorily. And that’s an important thing to a corporation that relies on its image.

    @ Pablo:

    I’m not sure if you’re just being sarcastic, but I’ll respond seriously. In most cases a competitive software environment is a good thing. More new ideas get implemented. It also necessitates standards, which may have remained de facto if there were only one or two players. I would happy if only IE were standards-compliant. (Bundling, on the other hand….)

  40. @Matt Wilcox:

    validation as a rendering switch is really not an option. You won’t know if a page is valid until the very last closing tag has been read, whereas rendering modes must be set ASAP, as in an HTTP-header or doctype or meta-tag that is read really early on. That’s exactly like when a browser choses what character encoding to use.

    @Roger (what do you think…):

    My main technical gripe with the mentioned suggestion, something that no single comment I’ve read so far has picked up. (And I’ve read hundreds by now!)

    Encoding that i specified with an HTTP-header takes precedence before any http-equiv meta. With this suggestion it is suddenly the other way around. Which (a) means that the browser must switch mode having already begun its rendering, and (b) is really, really unpaedagogic.

    This is how it must be done, if there is no way back - and MS really seems to have made their minds up (sigh):

    1. If there is an HTTP header, use it.

    2. Only in its absence, look for the meta tag.

    One thing is missing still from this equation, though. An HTML 5 doctype will actually trigger “edge” rendering and make this meta-tag unnecessary. However, the order between the HTTP header and the doctype is still wrong. But since rendering has not started this should be a lesser problem.

    @everyone who thinks the idea is “great”:

    Come on! It may be the very least of evils given our practical reality. But it is not good. This might be the very least obtrusive way to solve MS problems. I still thinks it is unnecessary, though.

    If MS cant deliver a working rendering engine, they should drop out of the market, or use Webkit or Gecko or license Merlin. It really is that simple.

  41. @myself:

    I’ve finally seen someone else who is addressing the fault of having a meta-tag nullify an HTTP-header: http://crisp.tweakblogs.net/blog/414/ies-opt-in-nightmare-comes-true.html

    Credit, where credit is due.

  42. January 25, 2008 by Stevie D

    I was wholly against the proposal until I read that <!DOCTYPE html> will save the day. Now I’m ambivalent…

    As long as anyone who knows what they’re doing uses HTML5, we’re OK - no need to fudge around with <meta> tags or http headers. And if you’re writing in 4.01 Strict, I can’t see any reason not to change it to HTML5.

    No, I still don’t think it’s satisfactory - I would much rather let all the dodgy old sites crash and burn, but I know that no company will ever allow that to happen in their browser.

  43. For anyone reading this who is not a full time or professional developer or designer and who has neither the time nor the inclination to keep tweaking their pages just in order to keep up with ‘developments’ in the Internet Explorer browser, may I suggest the following option, which was popular once and may well become popular again:

    Simply create a big badge or button and display it prominently in your sidebar. The wording on the badge should say “BEST VIEWED IN FIREFOX”.

    Note: (or Opera, of course).

    Problem solved!

  44. The biggest problem to me is that the default render mode should be the standards compliant one. Then the meta should only be use by developpers who wants that IE8 renders as an IE (if they exist).

  45. January 26, 2008 by Brian

    If they would just release a critical update for IE 6 and 7 that installs the new rendering engine + JScript, all would be forgiven.

    It would have to update the version string (for detection) as well. That’s fine. My sites really don’t care whether the visitor has tabbed browsing or not…

    I’ll never understand why MS casts browser versions into purgatory immediately after release. They act like not updating the browser is some form of customer support. You either support the damn thing or you don’t. If you do, you owe it to your customers to update it. If you don’t, make it official so web developers can say “MS no longer supports that browser, please upgrade.”

  46. I think (or hope) this could be the beginning of an even further dwindling of IE users. Think about it: while other browsers advance the state of the web IE is going to be stuck rendering in IE7-almost-standard-but-not-quite mode. I can see a time coming in the not to distant future where FF/Opera/Safari could become a requirement for certain web apps to work. Bottom line is: this is a monumentally bad idea that smacks of the browser-sniffing days.

  47. It is not that many of you are right or wrong, whatever you please, it is that the big named company is a bit inconsistent (to be modest) with their approach to enable their users to enjoy a more complete and better experience online. The trouble with their approach is that they do us - developers – harm and the users little good.

    Nevertheless, before we criticize we should understand them to, and offer them a better solution.

    They previously tried to help us by allowing us to use those filthy conditional comments, enabling us to generate specific styles for their harming browser; now they came up with an additional method – meta data. It is wonderful no? I mean they try to help us … ;). Alright cutting the BS – I cannot stand their approach and here is why it is wrong and what they should do instead.

    Meta data is supposed to describe the data set; not to alter browser behavior – I read nowhere in W3C’s docs that it was meant to serve such an function. That is why it is wrong. Now what should they do instead, something that would help us. It is actually really simple – stop sniffing around for fixes and just make the rotten engine work according to the rules. After you have done that it will work fine. Why – simple, overtime we have entered the bloody additional comments (they should be ignored in IE8) to work around the faulty mechanism – to allow good browsers to do their jobs. Now the struggle for MS is the fact that there are websites specially made to function only and I mean ONLY in IE. There is an way to deal with them – the important ones always warn you that you need IE to render it well – aha – they should use that information to switch their engine back into a full IE mode (the corrupt mode if they please)… or just make it work with those pages as well.

    To conclude – MS; please disable conditional comments in IE8, no meta sniffing, just make your browser work well (like FF) and force your users to update – be bold for once.

  48. I don’t get it. Why not continue to use the doctype switch method, having IE8 render documents without a valid doctype in IE7 compatible mode. It can’t really break sites that heavily, can it? Would like to see some visual examples of what can go wrong.

  49. “…designers will not have to learn just HTML, they’ll have to learn 4, 5, maybe 10 different versions of HTML, DOM, CSS, and JS, just to be able to maintain the various different pages that people have written, as they move from job to job.” -Hixie’s Natural Log

    The only beneficial result I see as a front-end developer is career stability. Yes it will be harder, more frustrating and may turn out to be complete bullshit, but hey we are used to it right? How many folks are going to know html 4 to xhtml 2 to html 5 plus JS and css 2.1 and 3 and backwards compatibility, future maintainability and so on with different behaviors for Grade A browsers (IE, Safari, FF, Opera), phew! Get studying folks. The gravel road just turned to mud.

    OR WE CAN…

    ..can act like FF, SAFARI, OPERA and numerous others and let web developers, web masters (ha!), agencies, firms, etc worry about their clients. I don’t want MS dictating my clients needs. It is my job to insure forward compatibility not a browser.

    Default to super duper web standards and let’s get through the 5 months of fixes and be on our way to web freedom.

  50. From the original Beyond Doctype article:

    In an ideal world, of course, all specifications would be perfect from the get-go, and their implementation in user agents would be immediate and flawless. In a slightly more down-to-earth version of an ideal world, browser vendors would immediately integrate regularly updated standards into new user agents—and users would have instant access to the latest version of those browsers without having to lift a finger.”

    When I read that I thought Doesn’t my antivirus software do this every day? Each day at 2 AM it downloads an updated database of virus information and automatically installs it. Maybe the thing to do for Microsoft (and others) is to create a “standards database” that can be updated every so often automatically by the application.

    In fact this could easily function as an improvement of or extension to the Firefox/IE/Opera update mechanism that alerts me that a new version is available. Just tell me that an updated “DTD entry” is available and tell me to install it. Or even better, have the browser automatically pull it down and install it.

    (yes, this is pretty much a copy of another comment I posted at A List Apart and Ars Technica and the IEblog and Surfin Safari. The more times I say it the better chance someone will see it.)

  51. I think it’s a mistake to envoke the quirks mode fear into the argument for or against version targeting. For all I know there will be no quirks mode for IE8 rendering, just the legacy engine for IE7 and older.

    I also seems we may not have to worry about javascript either. http://ejohn.org/blog/meta-madness/#comment-296861 This, of course, remains to be seen but it does sound promising.

    If you read my blog or my comments on other sites you’ll know I’m on the version targeting bandwagon.

    Personally I don’t believe we will have browser lock-in. It may actually turn into an old browser lock-out. At some point, not to far off, you will here from me; “Sorry sir, we no longer provide support for quirks mode”. There will only so much we can, should and will support. Updating pages to a newer version will in many cases just be a proverbial flick of the switch. Customers will often want or need new functionality. Upgrading a site to newer version may in the end be a bit more painless. We can also make are clients pick which version the want to support. On the other hand they don’t always have choice because they might be using some default .net setup that churns out faulty code automagically. I also don’t believe the slowdown effect for web standards slow down. Microsoft desperately needs to catch with the rest of field. The tag will allow the IE team to side-step corporate concerns and accelerate down the road toward web standards compliance, IE7 was a very good step in that direction. Likely they’ll throw in some proprietary feature in IE8 or 9 that, in the end, we’ll just ignore anyway. I do seriously believe that this will also make testing much easier. In the end I do think that it might be better to make it an opt-in feature rather than forcing us to add it. But I’m sure that corporate Microsoft will not go for that.

  52. January 31, 2008 by Stevie D

    This is a copy of what I’ve just written on ALA, I hope you don’t mind me repeating it here

    To start with, I was totally against this proposal. After reading several articles on the matter, I’ve changed my mind - it is the least worst way forward. In particular, Zeldman’s comment on his own article. C’mon, a man doesn’t support his mother-in-law unless there’s a very good reason!!

    He’s right. Microsoft want to move forward on standards-compliance. But, if they do that without any other mitigating changes, it is in danger of breaking a large number of websites. And much as I hate the fact that cowboy website builders and crappy software have allowed these sites to proliferate, we have to recognise that they are out there, and that confidence in the web as a whole will be undermined if they stop working for people using IE8 out-of-the-box.

    By requiring a meta tag or http headers or an HTML5 DOCTYPE to ensure correct rendering, IE will not break the multitude of websites out there. And those of us who do know what we are doing do know that we need to make these tiny changes to our sites, and we do have the ability to do this.

    If it was the other way round, if standards-rendering was the default, sites could break. The plumber who tinkers with the site his son knocked up for him in Frontpage Express wouldn’t know he had to make a change, and wouldn’t know how to do it even if he did.

    I don’t know how many websites will break. It might be a lot, it might be a few. I suspect that most sites won’t be affected – and will work OK (even if not things of beauty) with or without the switch.

    The comments about multiple multiple rendering engines are complete red herrings. All that any sensible designer will do is to check IE=6 or IE=7 or IE=edge against current browsers. That’s all. Just like you now check HTML 4.01 Strict against IE6, IE7, Firefox 1.5, Firefox 2, Opera 9, Safari 3. It doesn’t matter how IE=8 renders in IE9 if you’ve used IE=edge.

    Other browsers won’t support the tag, and will use the latest rendering engine, end of story.

    As for discouraging the take-up of standards by Microsoft, cowboys, etc … you what?! Take up of standards has been limited to a core of ‘activists’ and a growing minority of professionals. But there are still a huge raft of websites and web designers who have no regard whatsoever for standards, despite the push having been going on for years. There are still myriad sites that scream “1997” at you that people can’t be bothered to update. We can’t slow these people down any further – they aren’t moving! If their site broke in IE8, they wouldn’t update the site, they would downgrade their browser, and that is in no-one’s interests.

    Much as it pains me to say this, I think the proposals by Microsoft really are the most effective way to ensure that IE will support web standards, but without breaking the internet in the process.

  53. February 2, 2008 by simon

    I liken this whole debate to the flash issue that microsoft introduced, where you had to click to enable the flash content. As a designer, we then had run around and find a solution - Endless phone calls from clients asking why their website just broke - this is not my idea of fun. I hope they don’t pull the rug from under out feet - again.

  54. 52 @Stevie D

    Right on, I’m a web developer and have no problem with this. Everyone else moaning, get off your high horse! You are a professional so you should implement this, no biggie for you cos you know what you are doing and are being paid well for it. And let’s face it, a lot of people, including myself, have made a lot of money being able to code cross browser.

    The web is built by this half cut home brew web sites that people have no real idea what they are doing. By forcing people down a certain road all of a sudden half the web breaks for people that have no clue about this. And you expect them to pay someone again to rebuild their website? Just to look the same as it did before? Blah blah blah, if MS followed compliance before… yeah, well, did I mention the money earlier?

    /rant

    :)

  55. February 6, 2008 by davec

    I have seen a number of good points here - mostly warning of the ways that this can fall down.

    The biggest point in favor seems to be that using the magic IE7 meta switch allows bad code to look good in IE8. Thus saving web developers time and money. But I am not sure this makes sense. If it’s broken, why not fix it and why not do it right using “real” forward compatible standards?

    The whole idea of using standards is that 2,3,4 5 years down the road the standards are still there and are backwards compatible. By simple but effective progressive enhancement, standards build in new features without breaking previous versions. This does not appear to be how MS prefers to do things. Use a meta tag as a directive? Come on. MS should be ashamed of themselves.

    It seems so wrong in so many ways. The worst of which, in my tiny little mind, is that it encourages non-standard work. It ensconces non-standards compliance as a standard. This seems so very wrong.

Comments are disabled for this post (read why), but if you have spotted an error or have additional info that you think should be in this post, feel free to contact me.