The Problem Isn’t IE6 — It’s You
This post is going to upset a lot of people, I’m sure, but what I have to say needs to be said, if only to remind members of our community to behave themselves.
Is Internet Explorer 6 an old, outdated, hanger-on of a browser? Yes, absolutely. Does it require the use code hacks in order to achieve semi-parity with more modern browsers? Yes, it does. Should this be such a problem for web professionals? No, it shouldn’t.
Thanks, Tracy Apps!
For a moment, forget about all of IE6’s issues, security, how much you dislike Microsoft, or whatever baggage you’re carrying around. Instead, think about IE6 as an unknown browser — perhaps as a random blip in your browser stats, or maybe as an interesting piece of tech you’ve seen on a blog or at a conference. You don’t know much about that browser or how your site is going to work on it, so what do you? You code it using web standards goodness: you create a base with semantic markup (and any server-side tech for forms), add on design via CSS, then layer on client-side interactivity with JavaScript and Ajax-y goodness — et voilà, you have a lovely, robust web experience.
Now, with some new or unknown browser, you hope for the best. But with IE6, we know what the issues are. If you’re using PNGs with alpha-transparency in your design, you’ll need an alternate solution. If you’re adding horizontal margins to floats, you know you’ll run in to a double-margin bug. If you’re trying to clear floats within a parent, you know you need to set height. You’ll need to plan for handling unsupported CSS selectors. And when it comes to JavaScript, you may not even know what to plan for (unless you spend most of your days working with JS).
But again, you’re a web professional. You know your craft. You know this platform and its issues. (If you don’t, you need to know your craft better. No, I don’t buy “newness” to the field as an excuse — this is still a present concern, so you need to understand it! Why not start with my CSS tips for IE6.) While some venting may be in order, I find the outright hatred for this browser (and other versions of IE, also bashed on a regular basis) to be downright unprofessional. Here’s why:
- IE is still #1. While recent reports cite that its market share is shrinking, IE (all versions combined) is still the number one browser in use worldwide. The snide comments I’ve seen people make about IE (which I won’t link to) often extend to remarks about IE users, which is just about the uncoolest thing I’ve witnessed. Respect the user, regardless of browser!
- IE6 use is shrinking. With the growing number of sites proactively messaging that support is being discontinued for IE6, its share should continue to shrink, which will lessen your burden over time. (You do have an actively managed browser support policy, to help you identify when you don’t have to support it any longer, right?) Celebrate that people are upgrading instead of harping on the stragglers.
- Promote the best experience. Instead of complaining about having to make a fancy widget work perfectly on IE6, engage with the client/product/design team to explain how you can deliver the best possible experience to every user by honoring only what each browser is truly capable of, rather than let one browser hold you back. You now have plenty of real world examples (Google Apps, Digg, Facebook, YouTube, etc.) to back you up on this!
- Help prepare for the future. Remind those in decision-making roles that the more time you spend looking backwards at the old, the less time you have to prepare for the new. Since I haven’t met a business owner (small, corporate, or otherwise) who doesn’t like “new”, this should snap them back to their primary focus of strategies that save money and provide for the future.
- Don’t make yourself look like an ass. If I’m one of those poor souls still stuck supporting (or, perhaps worse, using) IE6 and I’m trying to hire someone, do you think I’m going to hire the person who’s been hating on that browser all over the interwebs? Umm, no.
I know folks are going to jump in with all sorts of comments about me not thinking about Ajax-y web apps or super beautiful design-y sites. The thing is, I do work on and continue to lead a team which works on these types of sites and apps, and yes, we’re supporting IE6 in all cases. No, it’s not to pixel perfection. No, the functionality we build for a new browser isn’t 100% replicated. But these sites aren’t as far off as you might think* — and in the cases where I’m using hacks or JS shims to get IE6 into compliance, I also have easy code management techniques for dropping support.
*In fact, very recently, after preparing business and design teams to accept far less functionality in IE6, my team delivered a cool animated design-y thing that worked perfectly in that browser! (It’s not live yet, but I’ll update this when it is.)
So take the time to inform and to educate about browser differences and support strategies. Enthusiastically suggest alternatives to your team. Track your browser metrics and get happy about those numbers changing. Say a small thank you to those at Microsoft who are working to improve IE. Get inside the IE6 user’s head and present their story, not your own tale of woe. If you need help, ask for it.
Seriously, it’ll save you from looking like an ass.
Comments
Ashley Myers left this comment on :
Thank you Kimberly for your coolheaded and professional approach to IE6 and IE’s existence. While I’m all for other browsers (the one that provides me with the most screen real estate while showing the address bar and handles enlarging text the best wins), folks who rant about IE rub me the wrong way. As interesting as I found Google dropping IE6 support (since my mom works for a non-profit healthcare system where some of their apps still require IE6 and upgrading everything takes a long time due to money and the complexity of the system), I didn’t mind their explanation: they want to do things not possible in IE6. Folks who rant don’t sound like their willing to compromise, which may be fine by them, but I don’t think that helps the situation. IE has come a long way in terms of standards, as has Microsoft since the next release of SharePoint which is web based is to work on IE, Firefox, and Safari. (Thank goodness, since that being limited to IE was more than a little irritating.)
Michael Kozakewich left this comment on :
Also, consider that all major internet applications work with IE6. It’s not hard to get something reasonable working in it.
(As an aside, your tab order separates the Name, E-mail, URL, and “Notify me…” inputs from the Comments and Submit inputs.)
Marco Jardim left this comment on :
I don’t know whether it’s due to experience, or sheer luck, but lately I’ve been finding myself removing hacks, if anything, from the latest sites I developed.
The last website I made, which had a pretty complex CSS ended up with only one IE specific CSS rule, which had to be set due to Cufon.
As long as you realize IE6 and 7’s limitations, it usually isn’t very hard to work around them. It won’t add more or less rules to your stylesheets, they will simply be different.
Helga left this comment on :
The Link to CSS tips for IE6 is broken :(
Obi-Wan Kimberly replied on :
Whoops! Thanks for telling me, Helga. It’s fixed above, and here it is again: http://presentations.kimberlyblessing.com/2009/CSS_Summit/Troubleshooting_IE6.pdf
Dylan left this comment on :
Great Article.
From an html/css perspective I don’t have very many issues at all with IE6 in general (unless we go back to 5). I was around when it came out, learned it’s faults, learned the tricks to get around them – with no hacks – and its been so much easier on my brain.
It’s really astounding what float:left; display:inline; overflow:hidden; height:auto will do to the rendered page. Setting attributes globally at the start has eliminated so many would be headaches it’s amazing. And if you’re thinking woah… floats… just add a width, issue solved.
With IE6 i’ve found that you have to change the way you think about the flow of structure and really use the definition of Cascading from css. It’s almost like using div’s but thinking the div’s are tables (its hard to explain).
Up until about 9 months ago, my QA standards dept required us to build (visually) a pixel perfect layout in all browsers, with no hacks. This really gets your brain flowing with respect to workarounds let me tell ya!
Cheers.
D.