18 December 2007

Browser support

This is an issue which crops up in one form or another on almost every project I have ever worked on. Its normally the project manager who will approach me and say in a sometimes off-handed way something like "I assume we will support this list of browsers (which someone gave me back in 2001)."

My usual answer is "No. We will support this standard support matrix."

I then proceed to hand the project manager something which at the time of writing includes the following:
  • Internet Explorer 6+
  • Firefox 1.5+ (all platforms)
  • Safari 2+ (all platforms)
  • Opera 9+ (all platforms)
This is all well and good, but the real purpose of this kind of browser support matrix is actually to fulfill some sort of contractual requirements with a client and to appease the project manager.

I also consider this matrix to be a testing guide for the testers of the website. Most testers are not completely familiar with ID concepts, and they need some help. I have seen testers using up to 20 different browsers and raising bugs if they are not all perfect. This is obviously very costly on the project - testing takes a long time and fixing the bugs is extremely tedious and often not really possible.

To get around this issues (and to help with dealing with the client who still happens to be using Ie5 on Windows 98) I normally talk in terms of graded support. At the time of writing, I use 2 level of support:

Level 1
All features of the website are fully functional. All content is available. The web pages will match the designs provided completely. The web pages will look the same across all browsers at this level.

Level 2
All features of the website are functional if only in a fall back manner. All content is available. The web pages will largely match provided designs. The web pages may look slightly different between browsers at this level and those at other levels.

This provides a sensible testing structure as well as fulfilling all other requirements. If an awkward browser (such as IE 5.5) absolutely must be supported, we have the option of only offering level 2 support - the key here is that all content will be available.

In reality, browser support only matters for the visual and enhanced behavior of the website. If the website is built using the principles of progressive enhancement, then all user agents, all browsers should be able to access the website in some form or another. It is the content of the website which is most important, and using well structured, semantic HTML should ensure that this content is available to all.

The message here is that agreeing a sensible browser support matrix is very important in both a business sense and for testing. It is also imperative to adhere to the agreed support levels, but the principles of progressive enhancement, particularly starting with well formed, semantic HTML will ensure the widest possible support even if that is with a degraded experience.


Neil Mosafi said...

Another good post there, and some very sensible suggestions.

Actually, I usually find it's the client who wants us to support every browser under the sun (maybe we just have good project managers where I work ;-)! We usually push saying which browsers we will support, but levelled support is not usually agreed.

Would you consider any browsers actually below level 2? Also, if the client is testing on IE5.5, how do you ever pass UAT?

James Norton said...

Thanks for the questions there. In an attempt to answer them, I would say that having more than 2 levels of support tends to lead to confusion. How different can levels 2 and 3 really be? In practice, 2 levels is all I find I can think of at a time.

It is rare now to have to support a web browser as old as IE 5.5 however, by only offering level 2 support, it is possible to provide that support without too much extra effort.

Having said that, I would prefer to educate the client and ask them to upgrade to a somewhat more modern browser. I would always ask a client to perform UAT on a level 1 supported browser.