I think the issue with Internet Explorer is its lack of backwards compatibility. People are far less inclined to update software that they have to pay for (such as their operating system) than they are to upgrade free software (such as their web browser). The main reason that the old incompatible versions of IE continue in use is that the more recent versions of IE will not run on the older operating systems.
If IE9 were backwards compatible to Windows 2000 then the time taken to for everyone using IE to upgrade to that version would be many years less than the current situation where those still using Windows 2000 because they can't upgrade past IE6 because even IE7 is incompatible.
Again though, you can't expect to be using decade old technology (or older) and then expect to be able to use the latest software, and even expect to view modern websites without them breaking. You just can't. It's not like that for any other technology. You have to break some backwards compatibility if you want to make progress, there is no other way around it.
Look at MacOS - There was a solid brick wall built between OS9 and OSX - nothing from one will work on the other at all, yet you don't hear people complaining about this, but MS who do their best to make badly coded websites appear OK on their modern browsers get all the flak.
How about with the old technology new software bit. I can run Chrome 10.x on Windows XP. It doesn't have quirks mode and it supports all the new wiz-bang features, acid 3, the works... That's roughly a ten year old OS running perhaps the best browser available :D
As a matter of fact there are many articles around that describe how to get Chrome or Firefox to work with Win2k as well. It's not that the software won't work, it's that it has been designed not to work.
That said, I totally agree with your stand on backwards comaptibility. Apple did a great thing when they dumped Classic Mac OS in light of OSX. Mind you, we are talking about two different things. OSX is a complex operating system that provides the environment for software to run and a browser is a piece of software that runs on top of said OS utilizing a great deal of the OS for support. That aside, it's too bad MS didn't do the same when they updated their browser from IE6 to present day. If they had dumped their broken model and followed standards (that were in place with FF, Opera, Safari, etc...) we wouldn't have 4 versions to deal with. Why is it do you suppose that we don't have this mess with any of the other browser vendors?
Chrome might well run on XP, but I bet it doesn't take advantage of the same hardware acceleration the IE9 probably does. Also, don't forget that the IE engine is quite deeply embedded into the windows core on earlier versions of windows... there are compatibility issues there. I would also argue against it being the best browser ever :D
The reason MS had to maintain backwards compatibility was so that people actually used the new browsers, and in time, the new OS's. Apple was able to break backwards compatibility with OSX because they had such a low market share that they could afford to. Windows/IE cannot.
I think the point of Chrome, FF, Opera, etc... on Windows is that they're fast without the purported hardware acceleration that IE enjoys. As a matter of fact I don't think IE is anywhere close to Chrome when comes to speed. I can't say for IE9 yet though... I've been playing with IE9 beta on Win7 for a while but I still need to uninstall it and put the full version on to see how it feels compared to Firefox/Chrome, etc. No doubt it's a better browser than any IE before it.
I'm not really a Chrome fanboy. I've had it on my everyday machine for testing since it was in beta and added web dev toolbar and firebug. What I've found is, now that it's somewhat hardened, I'll open it for testing and then continue using for some time as I continue to test and develop until I realize I'm not in Firefox anymore. That to me is an indicator that I might switch from FF to Chrome. It's darned fast and I think it might even be leading the challenge of CSS/HTML support (CSS3/HTML5/WebGL). Opera may be in the lead but I've lost track of that sort of thing.
And yes, MS obviously has the greatest market share by a long shot which makes it all that more unfortunate that they chose to continue to try and support bad habits of IE5.5/6 websites. I remember about 7 or 8 years ago a young developer friend of mine (ironically he's a year older than me) came up to me and said that he didn't need to learn how web standards worked because he could mess about in Dreamweaver with nested tables and it looked great in IE. He didn't care about Apple/Linux computers or Netscape 5/6, Mozilla, Opera, etc.... As long as it wokred in IE, he was satisfied. Of course he has long since stopped doing anything for the web but his attitude was enabled by backwards compatibility thinking of making crap code look good. Anyway, I've rambled way off topic by now :blush:
Microsoft's policy of doing this might have made sense when they had 90%+ of the market but, now that IE6, IE7, IE8, and IE9 have barely more users between them to what Firefox has, the policy makes less sense now. They'd have done better to make sure IE9 works the same way as all the other browsers do rather than worrying about backwards compatibility for web sites that hardly anyone will see the way they were intended to look in a couple of years time.
If a bad site is so bad it can't keep up with standards (or at least abuse tables enough) to look good in modern browsers, it likely doesn't have anything worth viewing anyways.
Also, FF, Chrome, etc. don't really need to worry about being backwards compatible because they're largely standards compliant right from the beginning.
Note to all:
Please keep the thread on topic as it seems to have veered away from the original question.
IE9 forces the child page to the same DOCTYPE as the parent page
do we still need a special code for IE 9?
IE is always special...
It's showing the page in "Compatability View," which essentially drops back to what IE7 did. The tip-off (took me a long time to realize this) is the empty vertical scrollbar at the far right (not the scrollbar in the iframe itself).
In IE9, take a look at Tools, Compatability View Settings, and see if my domain is listed there.
Old, old thread, but I've been paying attention to this issue for the last 2+ years. IE10 still had the bug in it - the DOCTYPE of the content of the iframe was ignored. But IE11, mirabile dictu, appears to get it right. Try my demo page in IE11, and I think you'll see that the embedded page renders correctly. With IE9 or IE10, it doesn't.
I wonder if it is a real bug of IE; anyway it is a firm html-error! *)
(and there are more, the html-validator is shouting)
In the page of nbc the <meta http-equiv="X-UA-Compatible" content="IE=5"> is in the wrong place: before the <html> tag, instead of inside the <head>.
If you move the <meta> inside the <head>, IE10 is doing well:
- Test: iframe-quirks-test-1.htm
If you delete the whole <meta> completely, and the document starts with <html> (without doctype), IE10 can handle it also:
- Test: iframe-quirks-test-2.htm
According to Browsershots, IE9 does the same.
Some more info about IE10 and quirks mode: msdn.microsoft.com/en-us/library/ie/hh869300%28v=vs.85%29.aspx
*) Or maybe nbc did it deliberately, against iframe-robbery. ;)
It's very tough to sort out. The MS documentation was very clear that the DOCTYPE of the parent page would be applied to the child page in the iframe, regardless of the explicit DOCTYPE of the child. Perhaps having no DOCTYPE in the child somehow avoids the problem.
I'm just happy that this is something I can file away in the "ignore unless it comes roaring back" file. IE9 is dying fast (in my site stats, it's accounting for fewer visitors than IE8, in fact), and if IE11 is getting pumped out as a regular update, IE10 will vanish equally quickly.
Here's the wonderful diagram I recall encountering when I first ran into this issue. If this doesn't tell you what's Wrong in Redmond©, I don't know what will. ;)
And yet, for all that, they don't really define what they mean by a page that "indicates" quirks mode. "Indicates" how, exactly?