Access Keys:
Skip to content (Access Key - 0)
Home (Access Key - 1)
All spaces... (Access Key - 3)
Log in (Access Key - 5)
Sign up (Access Key - 6)
Toggle Sidebar

News from Jan 24, 2008

blog entry  2008/01/24

Microsoft have devised a new way to prevent open standards from taking over the Internet...

If don't know what the fuss is about, read Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8.

In this post I refer to the meta tag as "hack tag" because that's exactly what it is, and also for reasons that will become apparent later in this post.

A friendly alternative to get started...

If you've read the article and are sat there thinking Hey, that's a good idea!, please humour me and think of an amicable alternative...

Why don't they make IE8 be standards-compliant by default (it's not caused problems with all the other browsers, has it?) and have a hack tag that says "run as IE7" for bug-dependant sites?

A great number of sites that work on IE7 will already work on IE8 and therefore not need the tag at all. Some might need subtle CSS changes and the really bad offenders can beg for IE7 with the hack tag.

This would:

  • reduce the number of sites that need the hack tag, as I dare say the vast majority will just continue to work
  • clearly flag bug-dependant websites for all browsers, allowing all browsers to be standards-compliant by default
  • let the site owner know that they are falling behind the rest of the world, but give them plenty of time to address that issue

I think free software would appear very quickly to add the "beg for IE7 hack tag" to all HTML files in a folder structure and any form of CMS can very quickly be tweaked to add it in as well.

There are a finite number of existing web pages on the internet. There are an infinite number of future web pages that will appear for the rest of time. Why is the hack tag being imposed on the latter when it would only be needed on a fraction of the former?

Ok, now let's get on to the more contentious issues...

Let's clear some stuff up...

The article posted on A List Apart makes some very misleading as John Resig points out in his blog:

...the pretense of cooperation and generally applicability needs to be dropped. It doesn't exist, it's a complete lie, and any indication of general use is a sham.
– John Resig, jQuery founder

What is he referring to?

  • The article states that Microsoft worked with the Web Standards Project - misleading
  • The article gives the impression that other browsers are somehow taking part in this madness - unlikely

Make no mistake, this is a Microsoft only feature designed to generate Internet Explorer lock-in and disadvantage other browsers, but I'll discuss that in more detail later.

Worse still, Microsoft also try and pin the blame for this on to existing web developers, as isolani points out:

The answer is that developers of many sites had worked around many of the shortcomings or outright errors in IE6, and now expected IE7 to work just like IE6. Web developers expected us, for example, to maintain our model for how content overflows its box, even in "standards mode," even though it didn't follow the specification - because they'd already made their content work with our model.
Chris Wilson, Microsoft

Ok, so it's us web developers who've been crying out for standards compliance in Internet Explorer for years that are to blame? I think not! If IE wasn't utterly broken from the outset, the problem would never have existed in the first place!

But there is some truth in Chris's statement...

How did we get to this sorry state?

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.

We start by developing websites and online applications based around open standards. Then, about 60% of our project time is spent trying to make them work on Internet Exploder - a process that mandates adding all kinds of hacks and cludges in to our markup, style sheets and code.

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

We've created a rod for our own back. A self-fulfilling prophecy of doom and despair. As web developers, we have to accept some of the responsibility for these problems.

But then again, every single web developer I know develops for standards-compliance first and foremost. We are only forced to add cludgy and crufy hacks because Internet Explorer still has the dominant market share (because it's installed by default on the dominant operating system, Windows).

Imagine for a minute...

If we all stopped supporting browsers with bugs, across the board, guess what will happen...

If the browser used to view the site is broken, then the person using that broken browser will be seeing lots of "broken" sites. They're quickly going to realise it's not the sites that are broken, but their browser. That's going to be a rather good incentive to upgrade to a browser that isn't 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.

This creates a positive feedback cycle: Users switch to standards-compliant browsers, more sites become standards-compliant, more users make the switch to standards-compliant browsers...

Do you take the blue pill or the red pill?

So, Microsoft have been raving about standards-compliance in Internet Explorer 8... It's strange, then, that Microsoft would do all that work at great expense and then by default run the browser in non-standard mode.

Why would anyone do that? There must be a reason...

You take the blue pill and the story ends. You wake in your bed and believe whatever you want to believe. You take the red pill and you stay in Wonderland and I show you how deep the rabbit-hole goes.
– Morpheus, The Matrix

So which pill do you think Microsoft took?

Do you take the blue pill?
(opt-in standards-compliance)

Prolong the life of bug-dependant, browser-dependant sites forcing browser developers to deal with the problems caused by that.

Prolong the life of buggy web browsers which will still be usable due to all the prolonged-life bug-dependant sites, therefore prolonging the pain faced by web developers.

In short: A nail in the coffin for standards.

Or the red pill?
(standards compliance by default)

Some sites will break. Fix them or watch them fade to obscurity. Fewer bug-dependant sites for browser developers to worry about.

People with buggy browsers will experience bugs and either upgrade their browser or stop browsing. Fewer broken browsers to worry about, therefore more standards-compliant sites.

In short: Positive feedback loop for standards.

Why would you take the blue pill? It's obviously the wrong option. Well, as with so many "wrong options" that get taken, there's ulterior motives behind it.

You see, Internet Explorer is losing market share because all the other browsers are innovating at an ever increasing pace. That's bad for Microsoft.

But what if Microsoft could slow down the adoption rate of other browsers? Perhaps they can – if they can keep the internet filled with bug-dependant sites that don't adhere to the open standards...

With practically all web developers now utterly sold on the idea of standards-compliance and semantic markup, there needs to be some incentive to make them do things that they don't want to do?

Enter the hack tag - the nemesis of standards-compliant nirvana.

This tag does three key things:

  • it allows Microsoft to say they have a standards-compliant browser (when in reality, 99% of sites won't have the meta tag and therefore still be viewed in the buggy IE7 mode),
  • it allows Microsoft to assure worried business men that their existing web pages will still work (when in reality, most of those sites will still work in IE8 regardless), and most importantly of all...
  • it promotes the retention of bug-dependant web pages long past their sell-by date, thus calming the desire to promote standards-based design and hindering progress of competing browsers which thrive on standards.

Oh, there's actually a couple more things:

  • you'll only be able to view those bug-dependant websites using Internet Explorer
  • most sites won't use the tag, and therefore run in "buggy" mode, but you can bet that all the Microsoft platforms use it - then you'll start hearing how you have to use Microsoft technologies like .net and ASP, etc., to make reliable sites

I'm starting to see why Microsoft took the blue pill. It works out great for them and real bad for everyone else.

Some show-stoppers

Here's just a brief summary of the blatantly obvious nightmares that are going to ensue should Microsoft actually include the opt-in standards support:

From John Resig...

  • Cross-document issues - you can get multiple rendering engines running in a single web page
  • Script Versioning - you could request a specific version of JavaScript, but get an ancient version instead
  • Minor Versions and Security Fixes - the proposal doesn't cover minor versions, and how do you do security fixes if the whole point is to freeze a rendering engine to a specific point in time?

From Robert O'Callahan...

  • Footprint - if a browser has to include all previous rendering engines, it's going to get bloaty
  • Cross-version interactions - what happens when IE7 talks to IE8 in the same browser window, which implementation is correct?
  • Maintenance burden - yay, now you've got to maintain dozens of versions of IE, not just one or two
  • Attack surface - why expose just one browser to hackers when you can bundle multiple browsers, all with their own exploits

We are not amused

As you'll see from the vast amounts of comments on the article (and indeed practically everywhere else on the web that discusses the proposal new proprietary standard Microsoft is forcing on us), web developers are less than amused by the idea.

As a web developer, I'm not prepared to keep wasting 60% of each major project on "making it work in IE" and I'm sure as hell not going to implement anything that prolongs the existence of broken sites and broken browsers.

This is a blatant divide and conquer technique from Microsoft. They are actively going to screw up the Internet in a bid to reclaim their once total monopoly on the browser market.

The entire web development community needs to come together and say:

enough is enough, make IE standards compliant by default, even if it breaks some crappy sites which in turn will get fixed by their owners or be doomed to obscurity, or we're no longer going to support IE, even if it has the market share!

What can you do to help?

Simple...

For developers:

  • Avoid using the hack tag in your sites, instead use the HTML5 DOCTYPE (which Microsoft tell us is dead, but then quietly confirm is alive and kicking)
  • Develop your sites for standards-compliant browsers. Only change things if people complain - and when they do, ask them to try a modern browser and see if that helps.

For end-users:

  • Stop using Internet Exploder NOW! Use Firefox, Opera, Safari, Konqueror or any other standards compliant browser.
  • When you see a site that only works in IE, complain to the site administrator
Posted at 24 Jan @ 5:48 AM by user Guy Fraser | comment 2 comments
Toggle Sidebar

Adaptavist Theme Builder Powered by Atlassian Confluence