Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

Say your app works well on modern browsers, but has features that don't work so well on older browsers (e.g. IE). How do you handle this?

I see three possibilities:

  • Ask IE 6-8 users to download Google Chrome Frame, if it fixes the problem
  • Don't allow access to the app and tell users to upgrade their browser
  • If it doesn't break the program, turn off features that don't work and display a notice to upgrade their browsers

What is a good way to handle this?

share|improve this question
4  
Progressive enhancement is the preferred method; users generally don't bother to change their browsers for one app. If they can't use the site at all you'll have to look at what % of potential users you're losing to consider other options. –  Ben Brocka Dec 17 '11 at 21:16
add comment

5 Answers

up vote 5 down vote accepted

Graceful degradation is the way to go, but you need to analyse your user base and determine how far you need to go based on the numbers.

If only 2% of your users are still on IE6 then it's probably not worth your while implementing the features needed to get the site working (after a fashion) for them and you could get away with just displaying a page which lists the supported browsers.

However, if 20% of your users still use IE6 then that's a different matter. You need to spend more time and effort getting the site to work for them as they are a significant proportion of your market. You should offer encouragement to them to upgrade (assuming they're not locked to IE6 of course) by providing links to the latest download pages for more "modern" browsers.

share|improve this answer
    
Unless you specify that you want to keep it, IE 6 will be old news in a matter of a couple weeks. See my answer below. –  Matt Rockwell Dec 19 '11 at 16:32
    
@MattRockwell - You can bet that some corporations will opt out of this, especially if they have in house intranet applications running on IE that they haven't updated. –  ChrisF Dec 19 '11 at 17:16
    
If some corporations decide to opt out of this update, they will do so with an understanding that they will get a less than optimal, or ever potentially broken web experience outside of their "company bubble." –  Matt Rockwell Dec 20 '11 at 18:02
add comment

You should add at least one extra possibility to your list of three:

  • Upgrade your app to support older browsers

Now, what you consider "older" is up to you of course. Personally, I consider IE7/IE8 "older" and IE6 "ancient" :). However, the final choice depends on your intended audience. From your question it's not clear what the audience will be.

You may also want to take a look at Yahoo's Graded Browser Support, which I believe is updated regularly. Definitely have a look at the conclusion, with a great quote related to your own options.

As a more direct answer to the question, if the above (full support) is not an option, I'd think graceful degradation is the best way to handle things, having disabling options (or -eeek- even the entire site) for older browsers as a last resort.

share|improve this answer
    
Thanks. You're right in that you should strive to support as many browsers as possible. What I'm referring to is a situation where a feature cannot be replicated in older browsers for one reason or another. The quote was discussing websites, which mainly serve to display information. In that case, for older browsers a different way of displaying the information is the solution. For applications, I'm referring to actual functions not working in older browsers, or working extremely sluggishly (e.g. multi DOM element fades). –  Mirov Dec 17 '11 at 19:37
    
Ah fair 'nuff. Added a short bit to my answer (on graceful degradation) to make it more into an "answer", although I unfortunately have no new references to add next to the already provided Yahoo GDS. –  Jeroen Dec 17 '11 at 19:47
    
That's actually a really good page. I've never read it, but will be sure to. Thanks –  Mirov Dec 17 '11 at 19:58
    
Kudo's go to this fine JS book which is where I read about it. –  Jeroen Dec 17 '11 at 20:56
    
But don't call it 'upgrade'. I'd call it 'hacking' or 'mashing with a hammer'. ;) –  DA01 Dec 19 '11 at 16:22
add comment

Good news: IE 6 and 7 are going to a thing of the past! They are rolling out automatic updates to kill off these versions, unless a you specifically decide to opt out.

This should solve a majority of compatibility issues.

If some corporations decide to opt out of this update, they will do so with an understanding that they will get a less than optimal, or ever potentially broken web experience outside of their "company bubble."

share|improve this answer
add comment

There is no 'good' way, really. They all have drawbacks. There are more pragmatic options than others, of course. In general, methods to consider individually or in part:

  • graceful degradation (Site can still mostly function on older browsers, though some features may break and layout may not be as nice)

  • require certain browsers for entry (can't use the site unless you upgrade)

  • fork the presentation layer (create a separate, stripped down acceptable version for the legacy browsers)

The first is preferred by most users, as they have to do nothing on their end. This can obviously be a drawback though, if the intent of the application is to push forward with newer technologies.

The second is preferred by most development teams, as they can focus on the standards and newer technologies without the burden of endless bug testing and hacking of the older technologies. In general, it can make dev and maintenance a lot easier, quicker and cheaper for the organization.

The 3rd is sometimes a useful option when option 1 becomes too complex but option 2 isn't viable. This allows the dev teams to still maintain a more pristine code base for the modern users, with a separate altered code base for legacy. It does split dev efforts, of course, but can sometimes be less time and effort than combining the code base into one monolithic mess.

share|improve this answer
add comment

I always think that this is far too late to be asking this question. At the start of a project - or early on at least - you should ask the question "what browsers does this need to be supported on?". And associated with this is "what should we do if the browser is not supported?". The answers should - for a public site - take some time to get, because they involve ascertaining the likely user base, what browsers are in use by them, and in what proportions.

Once you have this, you can make your decisions about how you build your app, and how you provide graceful degradation. Or not. For example, if your app is an internal company app, then graceful degradation may not be an issue - the chances are that the browsers available will be defined. OTOH, if you are writing for a public site, with 1-2% on IE6 ( for example ) then graceful degradation for unsupported features is probably the right way to go, as long as you can do it easily.

In other words, there are no clear answers, but asking early makes more options available. Asking late - when the app is up and working - makes some of your options far more expensive, and so may make some options impractical.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.