UI Dilemma

I have a UI dilemma.

Say you have some toolbar buttons which are part of the UI in a product. These buttons have an obvious function – denoted by their icon and text. This function is applicable at all relevant times. The buttons work and do the right thing in most cases, but in some defined cases it is not technically possible to make them do what a user would expect them to do. The user can perform the operation they would expect the button to trigger – it just requires opening another window, and clicking an identical button in that window instead.

The buttons cannot be disabled, either permanently or just in the problematic cases. The buttons cannot be removed. Which of the following is worse, when you click the button in a problematic case?

  • it just
    silently does nothing

  • it puts up a popup saying something like “to achieve what you want to do, click the same UI in another window”

Popups are really irritating, particularly “well, why didn’t you do that for me, then?” popups – but is UI which looks working but silently fails even more irritating?

22 thoughts on “UI Dilemma

  1. Silently doing nothing is worse. The best solution, in my opinion, would be a popup saying something like “To achieve what you want to do, [Program] will have to open another window. Proceed? / [x] Remember my answer / [OK] [Cancel]”

    That way if the user is bothered with a popup they can at least save the step of first dismissing the popup and then carrying out the action.

  2. I like you better when you pretend to be a cognitive psychologist. :)

    Seriously, though, I think some kind of notification would be the better option here. Perhaps something less obtrusive than a popup, akin to the missing plugin notification that Firefox uses (with a “don’t display again checkbox)? Better to offer a solution to the user’s problem than to just stay quiet and create the impression that app simply doesn’t function.

  3. Howdy Gerv,

    I run into a simular pop-up in a cad package and I really, really hate it.

    In your app, is there a way to print a text message in a tool bar or control window (even if you have to add one) that explains they need to go to a different window? That is what I wish my cad package does. If not, what about changing the color of the window, or outline, or the other window or something like that? How about changing the mouse to a text message?

    As much as I hate to say it, silent is probably worse than the pop-up. It will make people think the app is buggy or unreliable (or that they have a problem with their computer/window system).

    BTW, wouldn’t a better message be “click the same BUTTON in another window”?


  4. Could you give an example? It’s more than a bit vague right now.

    Why not: The button does its appropriate action in the other window (with/without warning)?

  5. Having a button silently fail would drive me insane. Since it can’t be hidden or greyed out when it can not function, I would definitely go with some kind of popup or error window

  6. Yeah, silently doing nothing is very bad. A pop-up is annoying, but at least the user has the sense that the software is complete.

    The only other compromise I can think of is that the button, in that context, does something that makes less sense but still is at least semi-reasonable.

  7. Of the two alternatives, doing nothing is almost certainly worse. An alert dialogue at least tells the user what’s wrong and what they can do about it.

    Of course, I’d also be looking at the design decisions that got you in to such a situation.

  8. “The buttons cannot be disabled”

    For technical or requirements reasons?

  9. Why not just do some animation on the button showing that it failed? Maybe like putting a red-cross over it one the situation happens and clearing it in a second or so. Maybe even have a sound event triggered too. Would that be less obtrusive than an informational pop up? The problem with this is that the user will have an idea that the program knows it is not doing what it is supposed to do but the user has no clue as to why.

  10. Simply explain the situation, in all of it’s gory details, with text, near the button.

  11. Along the lines of Marc Randolph’s suggestion, you could soften the impact of the popup by putting the error text in a status bar or some non-interactive notification area.

    Sounds like the Mac version of Firefox. If you have the Extension Manager or Download window focused, clicking on the items in the menubar does nothing, but they are all enabled.

    Good luck..

  12. I’m having problems understanding where this scenario would apply. A more concrete example would help here to understand it better.

    Anyway, UI that doesn’t work (silently does nothing) is one of the worst kind of UI there is. It’s much better informing the user that it isn’t working, but nothing’s saying it has to be done in a popup. There are often other methods that are more effective, such as a visual clue, a sound, or perhaps the baloon tips in Windows.

  13. Everyone: thanks for the ideas. I’ll investigate and see if there’s a less obtrusive way to put up the message. Perhaps a large multiline tooltip-like thing.

    I can’t really make the example more concrete, much as I’d like to. :-(

    Matthew: the button can’t be disabled for technical reasons.

    Alex: you are right. Unfortunately, fixing this properly requires big changes to the design that we can’t make at this stage of the project. Yes, it certainly isn’t ideal.

  14. why tell the user to open another window an press another button? why don’t you just call the second button action?

  15. Hmm… What if the button had a dropdown button appear when it can not do what the user thinks it will do, and have there be an option to either (a)perform that action or (b) launch a new window AND do the operation, so it’s a bit less trobule.

  16. I’m with Jonathan in thinking that something like the IE/Firefox notification bar would be best in this case. Popups are *extremely* irritating, and I think the notification bar can be made almost as obvious.

  17. Whatever you’re doing, it’s wrong. It doesn’t matter how much work you’ve already put in or what the consequences are, it’s shit, and you’ve done it wrong. Throw it away and do it better. That is all.

  18. If these are indeed toolbar buttons, and not the menubar items that Kevin Gerich suggested, how about changing the icon slightly to indicate that it opens in a new window – something like a little window badge or sparkle. I haven’t used a Mac for ages, so I wouldn’t know how well this suggestion would fit into the overall UI.

  19. Foo: I don’t think throwing it away is an option. Imagine you’re two weeks away from the release of a commercial piece of software and you find out that a button doesn’t work right in a few cases. Everything else works fine though. Do you scrap your release date, annoy any customers waiting for the software and lose your revenue stream, or do you do the best fix possible in the time?

    Any major software will have architecture problems that in the long term need to be rewritten, but in the short term need to be worked around.

  20. I sometimes ran into this situation when it was just too time-consuming to calculate the enabled state of a button. This happens, e.g., when a server request is necessary to check if the action is possible. Usually this applies to context menus that have to be created in a reasonable timespan.

    To quote the Eclipse UI Guideline (I’m sure there will be similar guidelines for the platform, you are using) (http://www.eclipse.org/articles/Article-UI-Guidelines/Contents.html):

    Guideline 3.5

    Command enablement should be quick. If command enablement cannot be quick, enable the command optimistically and display an appropriate message if the command is invoked, but cannot be completed.