My website’s broken!

By John Faulds

A furore has erupted over the past couple of days within a section of the web development community over a decision by Microsoft to require web developers to add a meta tag to their pages to define what version of Internet Explorer a site has been designed for. I'm not going to go into the pros and cons of this decision as it's been comprehensively covered elsewhere.

What I'd like to discuss is what this decision means for the average site owner and what they can expect when IE8 comes out (no firm date yet, but some time in the first half of this year).

A little history

But first, a little background:

In 1999, Internet Explorer version 5 (IE5) was released which boasted the best support for web technology specifications as laid down by the World Wide Web Consortium (W3C) of any browser currently on the market. IE5.5 followed in 2000 and IE6 in 2001 by which time Internet Explorer was already the dominant web browser due to it being shipped with Windows operating systems and for the majority of computer users, the only way they knew how to access the Internet. By 2002, IE held about 96% of the browser market. It was this dominance which led to no major development being carried out on Internet Explorer for another five years.

The problem was, although IE had been one of the front-runners when it came to implementing W3C standards (which Microsoft had also helped to develop) at that time, the way they'd implemented these specifications had often been incorrect.

In the intervening years between IE6 and the next version, IE7, other browser makers – Firefox, Safari, Opera, Konqueror – appeared and produced browsers with much better support of the standards and emerging technologies.

Web developers began coding their pages to follow the W3C standards because it meant that their pages would work as intended in current and future versions of the more modern browsers, and could take advantage of the latest features and technologies which provided site visitors with an enhanced experience.

Workarounds were usually required to get pages to work in IE6 due to that browser's 'buggy' implementation of the standards. After peaking in usage in 2002, Microsoft found that the newer browsers were gaining more and more popularity and so began efforts to bring IE7 closer in line with the way other browsers rendered web pages.

IE7 was released in late 2006, fixing many of the bugs that had been present in IE6. Unfortunately, because IE had been the dominant browser for so long, the majority of websites were created with code based on how these bugs worked. Because these bugs were fixed in IE7, a lot of websites 'broke'.

Even though IE7 fixed many of the bugs that had been around for more than five years, when it was released, it still had the worst support for the standards of any new browser on the market. Which is why with IE8 Microsoft plan on extending their efforts even further to bring it in line with all the W3C specifications and other major browsers.

But what does it mean for me?

At present, Microsoft's plans are that if nothing is done to a website prior to IE8 coming out, it will actually display the pages as if the browser was IE7. This is done intentionally by Microsoft to avoid too many pages breaking when the new browser is released. However, it will mean that people using IE8 to view a site which has not had the necessary changes to make it IE8-compliant may as well still be using IE7.

If a site is to be made IE8-compatible you'll need your developers to add certain code to your pages. If the site broke when IE7 came out, there's a chance it may break again in IE8. How much time and effort will be required to effect these changes will be unique to each site.

If your site broke badly last time, there's probably two approaches your web developers might have taken to fix the problems:

  1. they did a large-scale rework of the code; or
  2. they did a patch job.

If they did a patch job, it's quite likely they'll need to add patches to their patches for IE8. If they did a large-scale rework, hopefully if they did their job properly, the adverse effects will be minimised and any new problems will be easily fixed. It's impossible to say at this stage because no-one really knows what IE8 will render web pages like.

If your site didn't break too badly or at all when IE7 came out, it probably means one of two things:

  1. The site was designed quite a long time before developing with web standards became common.
  2. The site was designed by developers who knew what they were doing with regards the standards and knew how to minimise the effects of the changes in IE7.

If your site didn't break at all when IE7 came out, it's probable that it won't when making it IE8-compatible either, but if it was designed quite a long time ago, it may look quite dated or not meet your requirements anymore. It's also unlikely to be able to take advantage of the latest technologies which creater a richer user-experience for your visitors.

If it did break, but not too badly, it's likely to be possibility 2 and again, the breakage in IE8 is likely to be minor (if there is any at all) with the problems easily and quickly fixed.

(For all the scenarios above, I'm assuming the problems would have first been noticed when IE7 was released as a beta for developers to test in and not when the final product was actually released and available for the general public to use. There were several months between pre-release versions and the final version being released, so if your website was still broken when IE7 was finally released, and you have some sort of ongoing maintenance contract with your developer, you should definitely consider finding a new team before IE8 comes out.)

Of course, if you're not concerned that IE8 actually treats your pages as IE8 but rather as IE7 instead then, theoretically, you don't have to do anything. But as there is still a way to go before IE8 and the current Microsoft proposals become a reality, it's worth waiting to see what the final outcome will be.

Who's to blame?

If you were one of those unfortunate enough to have to go through this process when IE7 was released, you're probably justifiably annoyed at the possibility of having to go through it again. So who's to blame: the team who made your website or the team who make Internet Explorer? Again, I think the answer falls into two parts:

  1. If your site broke badly, a large part of the blame is likely to rest with your web developers for employing old, outdated practices and not keeping abreast of the latest developments, not only in web standards and technologies, but also in what the browser makers are up to.
  2. In the above situation, and in all others, Microsoft has to shoulder the blame for
    1. the errors they built into their browsers originally; and
    2. leaving it so long to work on these errors meaning that ways to work around these errors have become ingrained into so many web pages, which in turn means every time they release a new version which fixes more earlier errors, it ends up breaking pages somewhere.

Is there a solution?

Well Microsoft think their latest proposal will enable them to develop new versions of Internet Explorer without having to repeat the process of pages breaking every time. Whether it does or not still remains to be seen.

So at the moment, it seems that site owners may have to reach into their pockets to pay for fixes every time a new version of Internet Explorer is released.

"But shouldn't that be covered when I first bought my website?"

Unless your developers state in their contract that they'll agree to support future browser versions, then no. Web developers can't possibly be expected to know what new versions of browsers will behave like and I doubt you'll find many who would include such a clause.

If your site is an intranet and you can control which browser people use, you might consider switching everyone over from IE to Firefox, Opera or Safari. Because these browsers have all been built to render pages much more closely to the W3C specifications right from the outset, the release of each new version means that there is very little disruption to pages, and even when there is, the problem is often fixed very quickly with a new version release.

If your website is for consumption by the general public you unfortunately don't have that luxury as you don't have any control over what people use to browse the Internet. So if you want your site to be viewable by as many people as possible, you'll just have to bite the bullet and do whatever is required to fix any problems new versions of IE introduce.