653

The Last Browser Testing Advice You’ll Ever Need

Everyone knows the basics, you have to support the current version of IE, Firefox, and Safari. On top of that, you have to make sure it functions/looks ok in IE6, Opera and Google Chrome, if your browser stats warrant. In this post I discuss A-Grade browsers, my personal testing process, and graceful degradation vs. progessive enhancement. Read on, my friend, and become an expert on browser testing.

In no particular order

In no particular order


My Coding and Testing Process

I prefer to test in IE 7, Firefox 3 and Safari 3 while I am actually coding the HTML and CSS. I basically keep my HTML open in these browsers and test as I code. When I feel I have it working well in those browsers, that’s when I start checking it out and making fixes in other browsers like IE6 (blech), Chrome and Opera. If I’m working on a project that requires multiple templates for various pages and modules, I like to get a valid template to work from that works with all the major browsers, then branch off and build the rest of the templates for whatever project I’m working on. When I have the templates coded, I will log into a couple different machines (mac and windows), test IE7, IE6, Firefox 3, Firefox 2, Safari 3, Chrome, and Opera. If changes are needed, I go back, make the changes, and start the testing process again. Sometimes I will use BrowserShots.org to get a high-level overview of how things look, but never depend on it for a definitive picture of how it will look.

The Major, Current Browser Versions

Obviously, you need to make it look and function pretty close to the same for IE7, Firefox, and Safari. Like I said, Opera and Chrome should be optional, though they do have a fairly large set of users. I’m not going to quote percentages from sites that only gather data from their own website. Instead, you should always consider  your own website (or client’s website) analytics for those numbers. Bottom line, if any minor browser is over 4% of your total visitors, you need to make sure everything at least works.

Avoid CSS Hacks Wherever Possible

IE 7, Firefox 3 and Safari 3 have gotten to the point where you can get them all to look and function very similarly without CSS hacks. The problem with hacks (aside from them not being standards-compliant), is that browser vendors are eliminating these hacks as new versions are released, leaving you (or the person that is hired after you) questioning (months/years later) which versions those hacks work for and why they were added in the first place.

It’s best to write your code as if hacks do not exist until you have exasperated all options. If you still can’t get it quite right, you need ask the following questions about the problem: “Will this issue A. cause confusion for users, B. prevent users from navigating the site properly, or C. affect the company’s brand?” If the answer is yes to any of those questions and a hack exists for the problem you are trying to solve, make sure you separate the hack out of your standard stylesheet and put it in a browser-specific stylesheet like ie6.css and if necessary, pull it into your page inside conditional comments, when applicable.

Progressive Enhancement vs. Graceful Degradation

Graceful degradation asks the question, what features should be unavailable to this set of users? Progressive Enhancement asks the question, what features should be made available to this set of users? You need to have a solid understanding of which user segment you are targeting, then decide whether to add features for more advanced users/browsers or remove features for less advanced users/browsers. These decisions heavily impact the way you code and cause you to start thinking about how to target specific browsers and certain types of users that may or may not care for additional features.

Is there a master list of A-Grade browsers?

Funny you should ask, why yes there is, from the Yahoo! User Interface development team, here. This list isn’t necessarily for browser testing, but it gives you an idea which browsers they feel should be supported for their products. I think it is a good table for our purposes as well. And here they are (updated as of the date of this post):

Win 2000 Win XP Win Vista Mac 10.4 Mac 10.5
Firefox 3.† A-grade A-grade A-grade A-grade A-grade
Firefox 2.† A-grade A-grade
IE 7.0 A-grade A-grade
IE 6.0 A-grade A-grade
Opera 9.5† A-grade A-grade
Safari 3.1† A-grade A-grade

As you can see, IE6 is still on the list, and of course it is, with the number of people still using it. It is a major browser version and will continue to be until corporate campuses begin upgrading machines to IE7 and IE8. Until then, my advice is this: Make it work for IE6. It doesn’t have to be amazing, it just has to work. Another thing to note, Chrome is not on this list. Yet.

What is your browser testing process?

If you have a frickin’ sweet process for browser testing, please feel free to comment below.

Comments have been disabled for this post.
Sort: Newest | Oldest

Great post. Thanks for posting. I've used Browser Shots and second your recommendation. I found it to be very quick and easy to use. Your suggestions for avoiding trouble are great.

Tools like Browser Shots are very good at letting users see what a web site looks like in different browsers. A more challenging goal in testing web apps is to test out functionality in different browsers and asnwer questions like: "If I'm using Google Chrome, will the change credit card feature work at the very end of the purchasing process on Expedia?" (My recent experience suggests the answer is unfortunately no, but I digress).

Shameless plug for a related test design tool to help address this problem of cross-browser testing of functions within web apps: My company has created a tool that will help testers identify a small subset of test cases that can be run on different internet browsers. It is the Hexawise test design tool. It is starting to receive some pretty encouraging feedback from early users. As shown in one of the sample test plans included in the tool, for example, it will help users identify 35 test cases to be executed in 6 different browsers (down from 72 billion possible use case scenarios) that would be very effective at finding defects in the Google Maps get directions web app, for example. The tool automatically selects the minimum number of test cases that would be required to match (among other things) every single browser type tested against every single function tested (e.g,. example functions in Google Maps would include: get driving directions or get walking directions or "zoom in all the way" or "show photos" or "drag the blue line marking the route," etc.)

Hexawise is a new tool, offered as a software as a service. We have both a permanently free version as well as a reasonably-priced commercial version. For now, we're making even the fully-featured commercial version freely available to help encourage adoption. Similar tools are offered for licensing packages that start at $6,000. All I'd ask is that if you like it, that you tell your friends about your experience or consider posting a tweet or a quick blog post. If not, I'd welcome your suggestions on how to improve it. / End of plug.

Thanks.

- Justin
____________________
Justin Hunter, Founder
Hexawise
http://www.hexawise.com/users/new
"More coverage. Fewer tests."

That commenter above me is a puss! It's better for your eyes and brain to have a darker background (although I'm not designing my current website that way!) There's less light being reflected in your eyeball with a dark background, so less fatigue and strain...

Anyway, thank you for the blog. I have added browsershot.com to my toolbox.

I actually use lots of browsers, depending on what it is that I am trying to do. Of course, I'm surrounded several computers of different architectures - because I am a total geek! Not everyone has that "luxury!"

I like Opera, too. In fact, I'm in it right now while I post this. I like its built in mouse gestures!!

Answering Kai - I use VmWare Fussion. I have two VM's... XP(ie6) and an XP with ie8. I only use them for testing, so I made them pretty small. I also do my web development on an Ubuntu VM... then upload to my production machine. VMWARE rocks!

Speaking of development... I try to create my sites be happy in all the latest browsers, but also go back and make sure ie6 looks ok... but as time goes on, I will care less and less what IE6 thinks!! In fact, even now some of the design issues I'm having, I look and ask myself if I can live with it... "Oh, that looks good enough!" Then I say F**k it and move on to the next bug! LOL... who wants to waste countless hours on bugs in a browser that the world is putting behind themselves!!?!??!

As for all the other "little guys" out there... well they need to grow up! :) They have to start somewhere... so eventually they will be able to do all the same things the "big guys" already do. It's just survival of the fittest... and Firefox is in damn good shape!

the content is good practice.
BUT: the dark layout is hurting my eyes, after i switch to another light webpage i got really dizzy.

Mac users can install IE without VMWare via the WINE project. This is a really good site. I wonder why so many other bloggers have a hard time posting field-tested knowledge like this.

Firefox is the easiest browser to design websites for. Usually sites display the way you want in Firefox. Opera isn't far behind though I have found a few issues lately with tables in Opera not displaying as they should in terms of width etc.

When designing for Internet Explorer, I find there is usually something that still needs tweaked, even after everything is looking great in Firefox.

Firefox is far better than Internet Explorer. Internet Explorer only has the largest number of users because it is shipped with Windows.

The Multiple IE installer is useful for installing different versions of Internet Explorer on the same machine.

Another site similar to Browsershots is Browser Cam:

http://www.browsercam.com/

Great Advice...

I have bookmarked this page...

A-Grade table listing is useful...

I'm already using ie6.css method... :)

Try yahoo's reset.css method... its also useful...

Yes, I typically install a standalone version of IE6 (and even 5.5 sometimes) or try to have a second machine on hand to test IE6. The problem with a standalone version is that while you can use the rendering engine of IE6, the user-agent is typically recognized as whatever version of IE you've updated to on that particular machine.

I honestly wouldn't even bother with IE 5.01 and earlier. That's just being cruel to yourself. :)

I dev for Firefox, make sure it works in IE, then I'm good :)

Great post Chris. Specially on the "hack" part.

I've been using Firefox, Chrome, and IE6 for testing. Frustration comes when you can't work things properly on IE6...THAT's WHEN THE HACKING COMES IN...
Anyway, I already installed IE7 and have the rest of the IE versions installed too... using this (tada!...) MULTIPLE IE INSTALLER.

It's quite amazing because my major problem of not shifting to IE7 is because of the IE6 update...
YES, you can't go back to IE6 after update. Anyway the tool is simple and easy to install.

Really great points Chris. Looking forward to more useful posts! :)

Could everyone that uses a Mac for developing websites please answer one question: how do you debug/test all your different IE versions?
I only recently switched to Mac and to be honest, it's not very good for web development. I've got VMware installed but it's not the same as developing on a Win machine.

So, how do you develop and test your websites in IE6, IE7, IE8 with only using Macs? Or does being a web developer on Mac always mean that you have to run a second (Win) machine on the side? That sux!

I would also like to push for testing in Opera:
1) Generally you won't have problems. BUT that is a reason TO test, NOT to not test, as:
2) Occaisionally one little thing won’t work in Opera. This ticks off the solid 1% of the Internet who is very loyal to Opera. They will complain.
3) You know all the posts saying “speed matters”? It does. If 150ms can turn away 1% of your visitors and and that matters, breaking in Opera will turn away 1% of your visitors and so it matters just as much.
4) Opera users are underreported due to aggressive caching and the ability to mask useragent as IE.

(My own personal confession of love for Opera is at http://alanhogan.com/opera.)

@Kro The rationale is that it's typically a simple task to make things work in Safari if you've got them working in IE7 and Firefox 3.

I agree that IE6 should be supported when your browser stats warrant. As mentioned in the article, my minimum browser share is at least 4% to be supported, and IE6 is generally much higher than that.

What's the rationale for supporting Safari before IE6? Safari has 9% penetration, and IE6 still has about 20%. It's harder to do, but that doesn't make it less necessary.

Excellent post. I agree that one shouldn't depend on browsershots.org, but I will save it's saved my but a couple of times - and it's free.

I'll check everything in Firefox as I go then do the eagerly awaited cross browser test at the end :)

Parallels is fired up and I test in IE6 and IE8. Have never actually tested in Opera and IE is a bollocks. Just the other day I assumed a site worked on IE7 since it worked on IE6 and IE8. But, of course, it didn't.

Very good advice, I needed this information for my next blog re-design. Especially with the slow transition into CSS3...I need all the browser testing advice I can get.

thanks for this awesome piece of advice.. I'm gonna bookmark this post so that I can return to it and read it again if I forgot something.. :)

and oh.. I've rated this post and gave it 5/5 :D

For testing websites I am using an old IE version with XP. Although browsershots seems like a nice way to test websites on several platforms. For browsing I use Safari on Mac or FireFox on WinXP (working on both platforms from time to time)

Good article. It motivated me to write down some tips to better support multiple browsers. Let me know if you have any additions.

http://www.matthewsmith.com/2009/01/18/tips-for-bu...

@Nick I rarely have issues in Opera. Typically, it's IE6, then Safari 2 that I tend to have problems with.

Good advice.

I find it funny that Opera isn't really paid much attention to, because usually if you can get it to work fine in Safari/Firefox/Chrome, it looks the same in Opera.

But, I may be biased since I use Opera. :P