Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8

by Aaron Gustafson

253 Reader Comments

Back to the Article
  1. Hello Aaron and all of you, people of reason and haters alike.

    First, let me just say that this X-UA meta tag is really a great thing. Also, the new IE is the hell of a great software, the functions of Opera with the aesthetics and ergonomy of IE. it’s really too bad that Microsoft has backed down on the issue of what will be the default behavior when the meta tag is not there. DTDs are fine, but obviously they’re not enough. Add to that, people on the web are shouting as if continued support of old documents was not something to achieve. I wonder what’s going to happen when the silent majority realizes that their favorite websites are broken. I really hope people are going to be computer-fluent enough to click the “Emulate IE7” button.

    Of course, people are saying, “if these sites had been coded according to standards, they wouldn’t be broken.” This is just plain wrong, as your article shows as I’ve noticed many times myself. Two compliant pages do not always display the same on two compliant browsers; in fact, it happens more often than not that empirical corrections or script hacks have to be applied by the designer. This is what elementary observation shows. I wonder how these people, often much more experienced than me in the area of web design, simply fail to see the reality that’s located right in front of their eyes.

    This being said, I have questions, and I thought here was the best place to ask for them.

    What happens to the DTD when the X-UA meta tag is used? I would say that if you require either the IE7 or IE8 rendering engine, the DTD is indeed still accounted for by IE8 (the software). Please correct me if I’m wrong.

    But, I’ve noticed some weirdness related to this question with IE6. As a test, I have used the meta tag to request some IE6 rendering on my site. A few weeks ago, my work computer was still under IE6 and my site displayed (not entirely) correctly with this computer. On the other hand, it does not display correctly under IE5, in part because IE5 includes padding within an element’s height and width, which of course is not standard. I hope to correct this anytime soon.

    As I understand (hope I’m not wrong), on this width-padding issue IE6 behaves as IE5 if there is no DTD, and behaves in another, more compliant way if there is a DTD.

    Now, my site has a DTD, but the rendering obtained by requesting IE6 rendering with the X-UA meta tag is the same as IE5 rendering. I don’t understand this. Can someone explain?

    P-S: it’s funny to see that people are actually too busy shouting to even bother trying the beta1. I see very little discussion stemming on the “Emulate IE7” button

    Si Lin: I agree with you overall. And, I’ve also witnessed strange behaviors with lists, maybe not exactly the same as you. Not sure bu I was thinking, maybe my issues are related to my lists having a negative text-indent. Also, I have italic text which is cut at the end of lines. I really hope this is just a bug and not the new standards-compliant way…

    Question: If I now put the X-UA tag on my site, will it override the user’s choice to use IE7 emulation?…

    Answer: yes! Tested by me.

    Now it would have been really funny if MS had prioritized the other way around. Those haters would have regretted all their shouting for IE7 rendering being left as opt-out.

    Copy & paste the code below to embed this comment.
  2. Sorry about the little mistake. I meant:

    “being left as opt-in”

    at the end of my previous comment just above. Of course you had gotten it. Sorry again people. Now it’s corrected.

    Copy & paste the code below to embed this comment.
  3. At some point there must be a line drawn. The whole point of standards are to provide a common correct way to develop something, and in this case, a website. Browsers should follow this, and update accordingly with the updates of the most recent public standards release. This means having support for all the current standards, then a web browser should be able to differentiate which standard to follow by a DOCTYPE of sorts (some way of identifying the standards that the web page was chosen to follow in).

    Ultimately, this is how a browser’s architecture should be based on, not on the version that its at. Getting past this road block is the first step in creating a more complete and seamless web.

    Suggestions should be made to the browser developers to follow standards, once all browsers are capable of following any of the standards created, the web should begin to return back to a normal state. That way, browsers and designers/developers wouldn’t need to follow versions, but follow standards, which is what they should be doing in the first place.

    Version locking is an easy fix to a problem that has been going on too long. Truth be told, there is no easy fix to fix this, so we all must work on overcoming this bump in the road. Complaints and whining are not what make a good company persevere, they for one should know that.

    Copy & paste the code below to embed this comment.
  4. Here is a precis of my objection to this article:

    After all, we shouldn’t make assumptions about how browsers will behave in the future.

    Yes, we should. That is what standards do!

    A standard defines, for all eternity, how compliant browsers should behave. Of course, we can also introduce new standards; but the old ones are set in stone.

    Copy & paste the code below to embed this comment.
  5. of course we shouldnt try to second guess how browsers would function in the future but it is recognized that a cmmon / mutual method would be beneficial to the community as a whole

    Copy & paste the code below to embed this comment.
  6. I—like many designers in a structured development environment—have been struggling to find the best “cross section” of standards for our developers to follow that both render consistently for the targeted audience, yet allow for the practicalities and compromises (validation exceptions and such) that must be made for code implementation. Choosing a doctype with some conditional css goes so far, but a meta tag might allow for further refinement for display consistency and build in more forward-compatability. But I have to agree with those above concerned for where that may take us as the browsers progress.

    So, rather than targeting a specific browser version, could the meta tag idea be used to target a range of standards rendering behaviors instead? I don’t imagine to know how that could work, but after reading this article, I wonder if meta tags for flagging rendering “exceptions” could be developed—as these could be tied more closely to the standards as they evolve. I imagine they’d offer some flexibilty and allow for progressive updating of a site as new browsers are released, as such meta tags could be inserted quickly and removed again when the site can be fully updated (instead of the rushed site updates every time new browser versions are released, as the article mentions). And using the meta tags wouldn’t lock a site to a particular browser or version, but a more of a “rendering mode” version instead.

    Copy & paste the code below to embed this comment.
  7. One of the biggest mistakes of the web development community was to struggle to try and make sites work on old or buggy browsers.

    You see, we’re all really determined to give our end-users the best experience possible, even if it causes us vast amounts of pain trying to hack around Internet Exploder to try and convince it to do things properly.

    But our efforts have backfired on us. By supporting buggy browsers, we’ve actually prolonged the life of the buggy browsers and the sites that came to rely on those buggy browsers.

    If we resolutely stop supporting browsers with bugs, across the board, guess what will happen”¦ People will stop using buggy browsers because all the sites they visit will be “broken”?.

    That in turn will make people with sites that break on standards-compliant browsers wake up and think “hey, I need to fix my site “¦ now!”?. It’s not going to take as long as you think for the world to adapt to a standards compliant nirvana.

    Copy & paste the code below to embed this comment.
  8. From what I can see, this is actually a good idea. If you’re a browser vendor, and you don’t want to support this”¦ well, don’t. No one’s forcing you to. Microsoft is just giving developers a way to say, “This page works with IE7. If you can, make it work like IE7 did.”?

    Saying “everyone should just follow the standards”? is good and nice—except that the standards are very complex, sometimes ambiguous, and occasionally internally inconsistent. Just like C++ code, standards are written by people and can have bugs.

    Also”¦ IE isn’t the only browser that changes behavior across versions. Firefox 3 passes acid2 whereas FF2 doesn’t—obviously, the two versions mean something slightly different when they say they’re standards-compliant. Even in the “equal”? world of standards-compliant browsers, some browsers are more equal than others.

    As someone who builds intranet-style web applications (that work cross-browser, thank you very much ;-) I’d love to be able to pin my app down and say “This works with IE7 and Firefox 2 and Safari 3. Browsers, if you can act like any of those, you’ll deliver a good experience to my users.”?

    And I know it’s a good idea to test your web work with every browser you’ll want to support. Are you sure you’ll be in your current job, ready to do that, forever? Are you sure you’ll be able to spare the time to do that testing before users get new browsers?

    Copy & paste the code below to embed this comment.
  9. From what I’ve read (and this isn’t a great deal) this sounds like a good idea and even if only adopted by IE it’ll at least alleviate some headaches.

    But I do have a question about how, as time moves on, older versions of browsers implementing this strategy will handle content targeted at later versions i.e. what will IE-8’s approach be when it encounters content targeted at IE-10:

    I’d assume that in this situation it’ll adopt an ‘I’ll try my best to render’ rather than a ‘this page cannot be displayed as I’m not included’ approach.

    I’d be interested to know what is intended as without this I think there may be issues when accounting for the fact that not all end users adopt new browser updates / versions either quickly or consistently.

    Copy & paste the code below to embed this comment.
  10. I definitely agree with Aaron, targeting a browser version using a meta tag is a great solution to a great problem, it’s simple, practical and at the same time elegant.  I think browser targeting will leave its mark in Internet history, from this moment on it will be easy to completely understand (content + visualization + behavior) targeted web pages.  Previous web pages will always require some archeological effort in order to be understood.  My company, Artinsoft (www.artinsoft.com), has been developing tools to increase web sites’ code general quality and standards compliance (www.aggiorno.com).  One of our tools, the IE8 Compatibility Wizard, automates the compatibility meta tag insertion task.  I am confident that this tool can help several members of your audience and I sympathetically invite you to visit our web site and try our products.
    I look forward to hearing from you.
    Best regards,
    César Muñoz
    www.aggiorno.com
    www.artinsoft.com

    Copy & paste the code below to embed this comment.
  11. Personally, I have to rewrite my sites at least every 3 to 4 years, often parts of some sites and some pages weekly (I want this new logo, I don’t like that color any more:-) ) As long as it is paid for I have no complaint.
    SO, I don’t understand the argument about future/backward compatible pages. I want customers to update their material, and since I use includes I just change one file; update – reload and the site is all done! and I can go back to shoveling snow. 
    I would like for browsers to be standards compliant, I though that was the whole point of having standards in the first place. I think you guys (those who see this as a way out) have just been beat down by the Standards Compliant” struggle and the “meta-code” snippet is an easy way out. The last time I looked (last week?) the IEs were down at 37% and dropping and FF was at at 45% and rising. I look forward to Standards Compliance growing and the continued growth of standards compliant browsers.

    v

    Copy & paste the code below to embed this comment.
  12. This is indeed a nice approach if your application is huge and you want to make it compatible with new version of IE i.e. IE8.
    I am using this with my web application, but I am facing some problem. When I try to open a lightbox that time the window of lightbox is not getting compatible with IE8.I guess the issue is with javascript.So I am not getting how should I make my layout(which is build with javascript at runtime) compatible with IE8. what could be the solution??

    Copy & paste the code below to embed this comment.
  13. I agree this solution (implementation aside) may help solve catastrophe when a new browser is released. However we only need to look at the outcome of other applications where we force specifics in a browser to see where this path will take us. These days I’m pretty sure I only see IE6 running within companies that spent a small fortune on custom software that requires they stay in the IE6 box to function.

    Do we really want to encourage the same type of behavior within basic web development? I work with enough “old school” clients to know that the vast majority would prefer to upgrade their old outdated site in the “HTTP-EQUIV” it was originally written in than redo everything with a new more modern solution. The last thing we want to do is promote locking our clients to a specific(and dated) browser, even if it does prevent a small period of panic.

    Copy & paste the code below to embed this comment.