4

We have a requirement in our WPF desktop based application to alert the user about different types of events happening. The events may or may not be related to the user's current activity. We want user to acknowledge each alert individually.

The current implementation we have is to display a top most non-modal Dialog whenever an event has occurred. And, If there are multiple events that need to be acknowledged by the user then all these top most Dialogs will be cascaded (refer to the below mock-up).

All types of Popups Cascaded

One other alternative we came up with is to have a Window for each Alert Type (We may have a maximum of 5 Alert types) and display all the alerts of that type as Cascaded panels in that window.

enter image description here

Are any other better alternatives to present these alerts?

  • Thanks for the question. I'd like to ask for a little more context. Why show an alert in this manner? What's the scenario behind receiving the alert? How can the user receive an alert that is not based on their activity? – Johnny UX Aug 8 '14 at 18:23
6

The 1990's called! Please return its cascading message boxes!

enter image description here

Alerting system are extremely complex and difficult to get right. They require subtlety in one case, while demanding you slap the user in the face the next. If you fail to get it right you either cry wolf every time (your current design is doing this) or hide them in the corner.

You should spend significant resources in analyzing your users' needs for errors and how to best design them. There is no catch-all for alerting; you need to know how your users and their work flows to do right for them.

Better alternatives to display too many Popup/Alert message

Your title tells you your first problem. You have too many alert messages!

What really demands an alert? What is truly so important that the user needs to be interpreted so aggressively?

You may need an audit of your alerts to find out what you really need to be alerting about.

The events may or may not be related to the user's current activity.

If I am working on 'Task A' and something concerning a completely unrelated my current task pops up, what do I do? Do I just confirm it and keep working or do I have to go deal with it?

Your alert presentation implies to me that the alerts are pointless to my current task. When I have 10 alerts I'm clicking "ok" 10 times on completely unrelated items -- there is no way I'm going to be remembering what they all say. With 10 alerts on my screen I have to deal with them to get them off my screen, I'm more concerning with getting them out of my way than readying them.

I think you'll find that a lot of users are just confirming dialogs without reading them.

We want user to acknowledge each alert individually.

Why? Are they so important that they demand you interrupt the user's work flow to have them press an "ok" button on something that possibly has nothing to do with what they're doing?

Is the wing of the plane about to fall off? Yeah, that needs to be dealt with!

Is there an issue I should know about, and deal with... eventually? I don't need to be slapped in the face for that.

The current implementation we have is to display a top most non-modal Dialog whenever an event has occurred.

While your code calls it "non-modal", your users call it obtrusive. These are not non-modal dialogs, you are demanding that the user deal with them now in one manner or another. Your user has two choices:

  1. Acknowledge it.
  2. Move it out of the way so they can keep working... so why not just acknowledge it.

There is no way your user can ignore it and keep working. It is a modal alert box to them, regardless of your code calls it that.

If the user can hide an alert behind the main window there is even more reason not to use a dialog. Just put it in a place the user can deal with it when they are ready.

And, If there are multiple events that need to be acknowledged by the user then all these top most Dialogs will be cascaded (refer to the below mock-up).

Your alerts are holding your users hostage!

enter image description here

You are not allowing your user to complete their task, you're forcing them to click the "ok" button.

One other alternative we came up with is to have a Window for each Alert Type (We may have a maximum of 5 Alert types) and display all the alerts of that type as Cascaded panels in that window.

Let's look at this:

mockup

download bmml source – Wireframes created with Balsamiq Mockups

What is the user working on? I don't know... and your user probably doesn't know either, because you've totally removed them from their work flow and forced them to become a confirmation robot.

Are any other better alternatives to present these alerts?

First, as I mentioned above, you need to really examine your user work flows and understand why you should interrupt them (forcing them to confirm an alert) and when to do it.

Once you know how important the alerts really are you can start to find an appropriate place and an appropriate presentation. Not all alerts necessarily demand the same amount of attention, so your application might have different alert styles.

Notification Area

Look at web apps like Gmail that provide a notification area:

enter image description here

Clicking on the notification icon simply lists out the alerts. The user can dismiss the ones the want to, but perhaps keep others around to remind them to go do something!

mockup

download bmml source

When I have something that I should take note of the bell icon shows a badge, telling me how many alerts I have (I don't have any right now, so it's blank).

If your alerts do not demand action, don't force action. Let the user complete there current task and then address the alerts when they are able to deal with the issue those alerts are telling them about.

Alert Popups

mockup

download bmml source

There are certain things that might demand immediate action! Use a popup for it, but make sure that the user needs to be interrupted by it!

Alert Bar

If you need a little more insight into the alerts than a notification area, but don't need to slap the user in the face, perhaps something along the lines of an alert bar would work:

mockup

download bmml source

At an appropriate place in your application (not necessarily the bottom) you could show the latest alert for each of your five types. Clicking on the alert may bring up a list of other alerts, similar to the notification area, or just confirms that latest and shows the next (if one exists). The appropriate logic is something you need to discover for your use cases.

The bar is not in the users way, but gives a clear view into the state of alerts on the system.

Again, you need to work with your users and really understand why & when you should showing an alert. Don't force the user out of their work flow unless they have to be forced out! Don't cry wolf everything time. Figure out why you have so many alerts in the first place (and how to reduce them)!

|improve this answer|||||
  • 1
    Thanks much for your time and a details answer. We like the alert bar idea and started grouping our alerts into categories, so that we know when to display a popup vs. simply adding it to the alert bar. Thanks again! – sthotakura Aug 12 '14 at 13:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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