IE 8, shooting browsers and what to do
A topic that just can’t be discussed enough is Microsoft and how some of their decisions affect us Web Developers, end users and, consequently, the entire world.
Jeremy Keith recently wrote an article for A List Apart, entitled They Shoot Browsers, Don’t They?, where he discusses the Internet Explorer team’s suggested approach with version targeting. What the talks about, though, isn’t necessarily if we need version targeting, but rather how Microsoft wants to implement it and that IE 8 will behave exactly like IE 7, unless told otherwise.
It’s a recommended read, Jeremy’s a smart and eloquent man. I do think it’s vital that we try to convince the IE team why we definitely don’t want that. My suggested solution for Microsoft is described in Version Targeting In IE 8, And An Alternative Path For Microsoft.
Is it just about principles?
Ok, so we’ve established that I, and many others, don’t find this to be the best solution. But given that IE 8 actually does what it’s supposed to in its standard mode, as opposed to its predecessors, and that it still supports conditional comments for when it doesn’t, is it as bad as we say?
How does this affect us in practice? How hard is it to put in an extra
meta tag and the problem is gone? Our code will still validate, and then we can get the rendering we want.
Getting around the
For those who want to use an HTML 5 DOCTYPE, it will render according to the standards mode even without the
meta (more about this in John’s HTML5 DOCTYPE).
But, and here’s the wonderful irony, concluded from Chris’ comment: IE 8 will not render its content with the standards mode if it doesn’t have the made-up
meta tag. However, it will deliver the content with standards mode if the DOCTYPE isn’t recognized (like HTML 5) or not widely used.
Anyone care to explain the logic in that for me? Shouldn’t unknown DOCTYPES, just as documents without DOCTYPE, render according to quirks mode? Does this mean that if I refrain from having a DOCTYPE, that’s an option instead of the
Breaking, or holding back?
Chris Wilson, and the IE team, has expressed the need of being backwards compatible and for new versions to work, with the statement:
Don’t break the web
The problem, though, is if they deliver a product that behaves exactly like the previous version, it sounds like the statement should actually read:
Don’t let the web evolve
I do understand that lots and lots of web sites are based on invalid and far-from-perfect code. But I can’t see why a document with a strict DOCTYPE can’t render as strict as its web browser environment allows it. All those web sites with legacy code from six years or more back in the past need to be updated anyway if they are supposed to be publicly accessible to people across the web (as opposed to accessible to people with Windows, Internet Explorer and not a trace of any disability).
If we’re talking about intranets, needed to work for a company to function as an organization, deliver a stand-alone version of Internet Explorer to them. Supporting web sites for a bunch of web browsers that actually evolve, and then spend an extra 25% of time to hack things around in Internet Explorer, will reach a point in time where it’s not possible to financially motivate this. The result is that web sites will stop working in IE (since it will just continue to behave like version 7 as default) and people will move on to delivering quality web sites and applications, instead of wasting time, money and lives on ensuring compatibility with an outdated an faulty product.
Microsoft, let’s make a deal
But let’s put all of the above aside. I’ll throw away my principles, and the fact that I don’t condone of the version targeting solution. Let’s try and meet in the middle and compromise here. I will add the
meta tag to my documents to make them IE 8 compatible, given that you promise, you guarantee, to work out these bugs and flaws:
Betas and who to listen too
For those who haven’t read it yet, it’s an absolute must to go through IE and the Demise of Borgzilla, written by Al Billings, who was formerly working with the Internet Explorer team. To summarize, Microsoft just have to open up for more and regular builds and having an open feedback site regarding Internet Explorer.
From my perspective, it seems like the IE team only listens to a Web Developer if he’s a member of WaSP (like, if any member of WaSP approve, the rest of the world will get down on their knees and pray). I, for one, think it’s about time they listen to a broader developer base, take part in constructive discussions run in people’s blogs, express their opinion in context. The company’s full of Evangelists; how about an objective one in an open forum? If so many people disapprove with the proposed
meta-tag solution, think outside the box; open up your minds for an alternate solution.
Time for them to show and act like they’re one of us, instead of someone wanting to tame us.
I agree with your assessment. What MS is actually saying is "don't reduce our market share" and "don't allow the web to be fixed." The problem is not that proper rendering breaks the web, it simply forces the authors/maintainers of poorly coded sites to actually update their pages. We need more education rather than a penalty for doing things right.
I am extremely reluctant to accept their proposal for IE8's default behaviour, but at the same time, I cannot help being excited about it. If the default behaviour of IEx is IE7, then there's absolutely nothing to stop them from fully adhering to web standards in super-standards-compliance mode.
I'm with you on this one. I think I'll take it, but only if the first IE8 beta will blow me away. Considering it's supposed to pass ACID2, I am actually really looking forward to it 🙂
Really, Microsoft doesn't care one bit about what developers need. Why should they? They are a business, which has to make a profit and please their customers. That's their priority. They don't want their customers to ask "Why should my site break when I upgrade my browser?", because from a software makers <abbr title="point of view">POV</abbr>, that really isn't user friendly and doesn't keep people around for customer loyalty. So <abbr title="Microsoft">MS</abbr> wants to release a product that will be technically an upgrade, but that will not affect their customers in any way.
Us developers aren't looking at it from a business <abbr title="point of view">POV</abbr>, we're all looking at the good of the web…interoperability & stuff like that. The real question is….how do we get the <abbr title="Internet Explorer">IE</abbr> team to find a way to please their customers while helping the web? That's what we all have to figure out. Until we help them find the answer to that, <abbr title="Microsoft">MS</abbr> probably won't listen.
Devon, I am very much looking at IE from a business perspective … and the facts are that IE is costing me and my clients a lot of money. As the web progresses forwards, and IE is falling farther and farther behind, those costs just rise.
As a developer, I am now basing my business entirely on non-Microsoft products, as I've had enough of their stupid licensing rules, inability to fix even the smallest of issues, and their unwillingness to open up dialogue with the developers, who should be their best ambassadors in the market.
If Microsoft can't or won't see the big picture here, then it's their loss.
I wonder how IE8 will check for this, though, given that IE6 and 7 just do substring matches of the doctype (for "dtd html 4.", "dtd html 4", "transitional//", and so forth).
If the browser knows about HTML n, then HTML n+1 is likely using a doctype that is unknown to the browser. Therefore, using the best-effort rendering mode for unknown doctypes makes sense and is what other browsers do, too.
No — no doctype is not an unknown doctype, and no doctype has to trigger quirks mode for compat.
Roger Johansson's post yesterday about an alternative idea. Why not keep the doctype switching and just change it a bit?
"The idea is to keep using the doctype to switch modes, but require a strict doctype with a full URL for standards mode" is interesting. I like that idea too.
That idea sits comfortably with me, too.
As for stretching the use of a STRICT doctype as a mode-switch – getting the response: "This Page Is Valid -//W3C//DTD XHTML 100.0 Strict//EN!" and having browsers confirm they're rendering in 'standard compliance mode', makes it pretty clear how browsers and the validator handles some "unknown" doctypes.
Not recommended, but it isn't like we're out of options here.
Thanks for your comments!
Like Morgan, I see it from a business perspective as well. I work as a consultant, and if every web site I build will take longer, i.e. cost more for the customer, because of shortcomings and flaws in Internet Explorer everyone loses.
I also believe in delivering in a good solid web browser and educating people. Just people have done things wrong doesn't mean we have to adapt what's incorrect forever.
In my world, at least, if something unknown comes along, it seems like madness to offer it the most strict rendering, while a DOCTYPE truly asking for standards mode (such asn HTML 4 or XHTML Strict DOCTYPE) won't get it, unless it also has a <code>meta</code> tag.
Yes, at a first glance it sounds like a good idea. I really need to ponder it a bit more, though.
I agree with you about meeting MS in the middle. If IE8 is as standards compliant as the other browsers (maybe not 100%, but close), I'll use the meta tag.
But, if IE8 is still full of bugs and misinterpretations, I will not use the switch and op out of IE8. I am not going to invest more time in learning new workarounds and hacks. This switch makes it easy to ignore any future buggy IEx. And that 's a good thing.
Yes, they better make things right and consistent in IE 8. Otherwise it's just a waste learning bout even more bugs and workarounds.
[…] IE 8, shooting browsers and what to do – Robert’s talk – Web development and Internet … […]