Should I bother supporting IE6?
It completely depends on your user base. In my line of work we support local councils so we have to maintain IE6 support as their computers are generally out of date and won't be upgraded for some time. If you are developing for a cutting edge audience however, then IE6 support will be less necessary.
It is advised to make the website usable in IE6 by letting it degrade certain "unsupported" features gracefully. Just remember, dropping IE6 support will affect someone out there... it just depends whether you care or not.
The serious answer is to evaluate your users and customers for what they use, and the traffic and usage patterns for MSIE6 in that. You also need to decide how many is enough, can you make your site work "good enough" for IE6, or do things break down functionally for them. You can consider IE conditional comments for cosmetic things. For functionality problems, you may give your users a warning about when you will shut down IE6 access. You might also use something like ie6-upgrade-warning to give them some alternatives. Be mindful though, that some corporate users won't have enough permission to download and install a new browser, so being a jerk about "get out there and upgrade you lazy bum! your browser is 8 years old!" may turn off your users.
If you're working on a contract or freelance basis, this is entirely up to you. I use a version of the Internet Explorer 6 Contract Adendum by Jonathan Christopher of Monday By Noon.
As described by the Author:
This contract addendum acts as a notification to clients regarding your (limited) support of Internet Explorer. It is released under a Creative Commons Attribution-Share Alike 3.0 United States License. This document is currently at version 1.0 and will more than likely be updated quite often until version 2.0 is reached.
I have not seen it updated since I found it, but that's really not important since it was the concept and the basic language that I used before tweaking it. Essentially in the form presented on the site it says that you will create a version of the site for IE6 that presents the info that needs presenting, though not necessarily using the approved design. Also that you reserve the right to feed them motivation to upgrade their browser.
Depending on the client and the project, you can just have it say that IE6 will not be supported, that you will deliver support for IE6 as a second-phase deliverable, at extra cost, or offer complete support.
If you choose to support IE6 you can mitigate some of the issues with lack of feature support using the following resources:
- html5shiv: a JavaScript shiv for IE to recognize and style the HTML5 elements.
- CSS3 Pie: an IE attached behavior (an
.htc
file) that makes Internet Explorer 6-8 capable of rendering several of the most useful CSS3 decoration features. When applied to an element, it allows IE to recognize and displayborder-radius
,box-shadow
,border-image
, multiple background images, andlinear-gradient
as background image. - Modernizr: a Javascript library that uses feature detection to test the current browser against upcoming CSS3/HTML5 features, adding classes to the element for those which are supported. Also creates a self-titled global JavaScript object which contains a boolean property for each feature,
true
if supported andfalse
if not. Adds support for styling and printing HTML5 elements so you can use elements such as<section>
,<header>
and<nav>
. - DD_belatedPNG: a Javascript library that adds PNG image support to IE6. You can use PNGs as the
src
of an<img />
element or as abackground-image
property in CSS. UnlikeAlphaImageLoader
,background-position
andbackground-repeat
work as intended, and elements will respond to thea:hover
pseudo-class. - TwinHelix IE PNG Fix: an IE attached behavior (an
.htc
file) that adds PNG support with alpha opacity to IE 6. Full CSS background positioning and repeat are supporting (including CSS sprites) with additional (included) JavaScript. - Whatever:hover: an IE attached behavior (an
.htc
file) that automatically patches :hover, :active and :focus for IE6, IE7 and IE8 quirks, letting you use them like you would in any other browser. Includes AJAX support, meaning that any html that gets inserted into the document via javascript will also trigger:hover
,:active
and:focus
styles in IE.
Interesting to note that DD_belatedPNG solves both issues addressed by Whatever:hover and TwinHelix's IE PNG Fix with pure JavaScript, while Whatever:hover and TwinHelix's IE PNG Fix use a combination of JavaScript and IE attached behaviors (.htc files
).
And a few resources identifying IE rendering issues you're most likely to encounter, along with their most common fixes:
- 9 Most Common IE Bugs and How to Fix Them
- Ultimate IE6 Cheatsheet: How To Fix 25+ Internet Explorer 6 Bugs