We web developers have been waiting a long time. Internet Explorer 6 has all kinds of weird flaws that make our lives miserable. It doesn't understand the box model corectly. It only supports extremely basic css selectors. It is keeping the web ugly since it can't handle transparent PNGs.

Web develpers are ready to be done with IE6.

Some have gone so far as to join the IE Death March, pulling the plug on IE6 support by March. In our opinion, this is an acceptable decision for web applications, but not for web sites. We have already dropped IE6 support in our content management software as the benefits far outweighed the disadvantages. We can produce substantially more bug-free functionality at a much faster rate by simply ignoring IE6.

While this is a great policy for an application, it is a terrible policy for websites. A very large portion of the world still uses IE6. The graph below shows it best:

Internet Explorer is still in charge of the browser market and IE6 is hanging on. Even though Microsoft has pushed IE7 as hard as it can, many users still have IE6. In corporate environments, where internal applications have been written specifically with IE6 in mind, the upgrade process will be slow. Even if a website doesn't have any interest in corporations, it cannot afford to ignore 20% of the market, especially when the site's target market may be browsing at work.

Don't forget about IE6 - Some Resources

So if you are a web developer (or having a site developed!), support for IE6 is a must. If this support isn't a part of the development process you use, it will be much more challenging. Below are some resources that can be helpful in keeping IE6 support.

Tools for Browser Testing:

VMware Fusion: Run Windows on your Mac

IE6 Standalone: Run IE6 alongside IE7. (Handly but has some reliability issues. It also reports itself as IE7 so browser specific stylesheets can be a challenge.)

Cross Browser Testing: Get 5 minutes free using a virtual instances of the OS and browser of your choice.

Things to Look out for:

Box Model: Specifying a width or heigh on an element along with a padding or border in the same dimension will render differently in IE6.

Double Margin Float: Just add "display: inline;" to the floated element

Default Header Sizes: This varies from browser to browser, use a CSS Reset.

PNG Transparency: Use an alpha loader.

:hover psudoselector: By default it only works on anchor elements.

How to proceed blindly:

ie7.js: Javascript file that makes IE6 behave like a standards compliant browser.

jQuery, prototype, mooTools: JS libraries that abstract cross-browser incompatibilities

There are certainly many other things that can be done to make developing IE6 easier. If you know some more that I should include please let me know in the comments.