HTML & CSS - - By Alex Walker

PNG32 hacks and IE6. Is it worth it?

Last year you might remember me running through what I thought were the under-appreciated qualities of an image file format that seems to slip under the radar — the PNG8.

Namely:

  1. Small files sizes
  2. Graded alpha-transparency in all current browsers
  3. No requirement for potentially brittle hacks requiring JavaScript, ActiveX and/or other proprietary technologies.

Although, admittedly, you had to be prepared to slightly lower your expectations of the render in IE6, we considered the trade-off generally worthwhile — particularly as you begin to hone your skill for producing PNG8 images that degrade nicely in IE6. Personally I haven’t ruled out using PNG32 in certain situations, but PNG8 is certainly my weapon of choice.

Bearing this in mind, it was great to read a really interesting post on PNG32 hacks and IE6 by George Reilly on the new Cozi Tech Blog. For a little background, George spent seven years working on IIS at Microsoft, and as such has two things most of us can’t claim:

  1. an array of hard won Microsoft ninja debugging skills
  2. a black book of Microsoft contacts to quiz about nonsensical IE6 voodoo

Nevertheless after deploying the time-honored IE6 PNG32 hack in a project, they spent the following months battling consistently inconsistent browser hangs.

The problem went away for several weeks, but in late October, it came back with a vengeance, recurring multiple times a day. Some machines seemed immune, some could repro it with almost 100% success. There was no obvious commonality; it reproed on several builds of IE6. It had to be fixed: we could not ship a web application that sometimes hung IE6 hard.

This has to be almost the ultimate debugging nightmare: An issue serious enough to wreck the application — i.e. enough to make the user force kill their browser — but one that appears to choose its victims either via tea leaves or the daily horoscope column.

Even Microsoft’s own attempted solution — preloading the images via JavaScript — was of no use in context of their particular application. In the end, George and his team decided enough was enough.

We have since decided that we will no longer make heroic efforts to get our web application looking just as good on IE6 as it does in modern browsers. Quite apart from the extraordinary amount of pain we endured in the Affair of the Transparent PNGs, fighting with IE6 has been a huge timesink for us, especially when it comes to working around its CSS bugs.

When you consider that many of us may have been building this kind of problem into sites without ever knowing it — hey, a bug report comes in, you shrug and explain it’s probably something they installed — it has to make you think twice about using PNG32 while IE6 is still a consideration.

Sponsors