A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://msdn.microsoft.com/en-us/library/windows/desktop/dn742472(v=vs.85).aspx below:

Notifications (Design basics) - Win32 apps

Note

This design guide was created for Windows 7 and has not been updated for newer versions of Windows. Much of the guidance still applies in principle, but the presentation and examples do not reflect our current design guidance.

A notification informs users of events that are unrelated to the current user activity, by briefly displaying a balloon from an icon in the notification area. The notification could result from a user action or significant system event, or could offer potentially useful information from Microsoft Windows or an application.

The information in a notification is useful and relevant, but never critical. Consequently, notifications don't require immediate user action and users can freely ignore them.

A typical notification.

In Windows Vista and later, notifications are displayed for a fixed duration of 9 seconds. Notifications aren't displayed immediately when users are inactive or screen savers are running. Windows automatically queues notifications during these times, and displays the queued notifications when the user resumes regular activity. Consequently, you don't have to do anything to handle these special circumstances.

Developers: You can determine when the user is active using the SHQueryUserNotificationState API.

Note: Guidelines related to notification area, taskbar, and balloons are presented in separate articles.

Is this the right user interface?

To decide, consider these questions:

In this example, the Windows Firewall exceptions dialog box is displayed as a direct result of user interaction. A notification wouldn't be appropriate here.

In this example, Outlook displays its connection and synchronization state on its status bar.

Design concepts

Effective notifications that promote a good user experience are:

Unfortunately, there are too many annoying, inappropriate, useless, irrelevant notifications out there. Consider these notifications from the Windows XP Hall of Shame:

In these examples, Windows XP is ostensibly attempting to assist users with their initial configuration. However, these notifications pop up far too often and well after they are useful, so they are little more than unsolicited feature advertisements.

User flow must be maintained

Ideally, users immersed in their work won't see your notifications at all. Rather, they'll see your notifications only when their flow is already broken.

In Flow: The Psychology of Optimal Experience, Mihaly Csikszentmihalyi says that users enter a flow state when they are fully absorbed in activity during which they lose their sense of time and have feelings of great satisfaction.

Effective notifications help users maintain their flow by presenting useful, relevant information that can easily be ignored. The notifications are presented in a low-key, peripheral way, and they don't require interaction.

Don't assume that if notifications are modeless a they can't be an annoying interruption. Notifications don't demand users' attention, but they certainly request it. You can break users flow by:

In Windows 7, users have ultimate control over notifications. If users find that a program's notifications are too annoying, they can choose to suppress all notifications from that program. Make sure users don't do this to your program by presenting useful, relevant information and following these guidelines.

Notifications must be ignorable

Notifications don't require immediate user action and users can freely ignore them.

Developers and designers often want to present their notifications in a way that users can't ignore. This goal completely undermines the primary benefit of notifications because it would break users' flow. If users are distracted by your notifications or feel obligated to read them, your notification design has failed.

If you are concerned that users are ignoring your notifications, consider the following:

Use progressive escalation where applicable

If a notification is used for an event that users can safely ignore at first, but that must addressed eventually, an alternative UI should be used when the situation becomes critical. This technique is known as progressive escalation.

For example, the Windows power management system initially indicates a low battery by simply changing its notification area icon.

In these examples, Windows power management uses the notification area icon to notify users of progressively lower battery power.

As the battery power becomes lower, Windows warns users of weak battery power using a notification.

In this example, Windows power management uses a notification to tell users that their battery power is weak.

This notification appears while users still have several options. Users can plug in, change their power options, wrap up their work and shut down the computer, or ignore the notification and continue working. As the battery power continues to drain, the notification's text and icon reflect the additional urgency. However, once the battery power becomes so low that users must act immediately, Windows power management notifies users using a modal message box.

In this example, Windows power management uses a modal message box to notify users of critically low battery power.

If you do only three things...

  1. Use notifications only if you really need to. When you display a notification, you are potentially interrupting users or even annoying them. Make sure that interruption is justified.
  2. Use notifications for non-critical events or situations that don't require immediate user action. For critical events or situations that require immediate user action, use an alternative UI (such as a modal dialog box).
  3. If you use notifications, make it a good user experience. Don't try to force users to see your notifications. If users are so immersed in their work that they don't see your notifications, your design is good.
Usage patterns

Notifications have several usage patterns:

Label Value Action success
Notifies users when an asynchronous, user initiated action completes successfully.
Correct:

In this example, Windows Update notifies users when their computer has been updated successfully.
Incorrect:

In this example, Microsoft Outlook notifies users when a data file check is complete. What are users supposed to do now? And why warn users about successful completion?
Show when: Upon completion of an asynchronous task. Notify users of successful actions only if they are likely to be waiting for completion, or after recent failures.
Show how: Use the real-time option so that these notifications aren't queued when users are running a full-screen application or aren't actively using their computer.
Show how often: Once.
Annoyance factor: Low if success isn't expected due to recent failures, success is after a critical or highly unusual failure so user needs additional feedback, or user is waiting for completion; high if not.
Alternatives: Give feedback "on demand" by displaying an icon (or changing an existing icon) in the notification area while the operation is being performed; remove the icon (or restore the previous icon) when the operation is complete.
Action failure
Notifies users when an asynchronous, user initiated action fails.
Correct:

In this example, Windows activation notifies users of failure.
Incorrect:

In this example, Microsoft Outlook used to notify users of a failure that they are unlikely to care about.
Show when: Upon failure of an asynchronous task.
Show how often: Once.
Annoyance factor: Low if useful and relevant; high if the problem will immediately resolve itself or users otherwise don't care.
Alternatives: Use a modal dialog box if users must address the failure immediately.
Non-critical system event
Notifies users of significant system events or status that can be safely ignored, at least temporarily.

In this example, Windows warns users of low battery power, but there is still plenty of time before they have take action.
Show when: When an event occurs and the user is active, or a condition continues to exist. If resulting from a problem, remove currently displayed notifications immediately once the problem is resolved. As with action notifications, notify users of successful system events only if users are likely to be waiting for the event, or after recent failures.
Show how often: Once when the event first occurs. If this results from a problem that users need to solve, redisplay once a day.
Annoyance factor: Low, as long as the notification isn't displayed too often.
Alternatives: If users must eventually resolve a problem, use progressive escalation by ultimately displaying a modal dialog box when resolution becomes mandatory.
Optional user task
Notifies users of asynchronous tasks they should perform. Whether optional or required, the task can be safely postponed.

In this example, Windows Update is notifying users of a new security update.
Show when: When the need to perform a task is determined and the user is active.
Show how often: Once a day for a maximum of three times.
Annoyance factor: Low, as long as users consider the task important and the notification isn't displayed too often.
Alternatives: If users must eventually perform the task, use progressive escalation by ultimately displaying a modal dialog box when the task becomes mandatory.
FYI
Notifies users of potentially useful, relevant information. You can notify users of information of marginal relevance if it is optional and users opt in.
Correct:

In this example, users are notified when a new e-mail message is received.
Correct:

In this example, users are notified when contacts come online and they chose to receive this optional information.
Incorrect:

In this example, the information is useful only if the user already has high-speed USB ports installed. Otherwise, the user isn't likely to do anything different as the result of it.
Show when: When the triggering event occurs.
Show how: Use the real-time option so that these notifications aren't queued when users are running a full-screen application or aren't actively using their computer.
Show how often: Once.
Annoyance factor: Medium to high, depending upon users' perception of usefulness and relevance. Not recommended if there is a low probability of user interest.
Alternatives: Don't notify users.
Feature advertisement
Notifies users of newly installed, unused system or application features.
Don't use notifications for feature advertisements! Instead, use another way to make the feature discoverable, such as:
Incorrect:

Don't use notifications for feature advertisements.
Guidelines General What to notify When to notify Pattern When to notify Action success
Upon completion of an asynchronous task. Notify users of successful actions only if they are likely to be waiting for completion, or after recent failures.
Action failure
Upon failure of an asynchronous task.
Non-critical system event
When an event occurs and the user is active, or the condition continues to exist. If this results from a problem, remove the currently displayed notification immediately once the problem is resolved.
Optional user task
When the need to perform a task is determined and the user is active.
FYI
When the triggering event occurs.

Incorrect:

When immediately followed by:

In this example, in Windows Vista the notification of no wireless connectivity is premature because it is often immediately followed by a notification of good connectivity.

How long to notify

In Windows Vista and later, notifications are displayed for a fixed duration of 9 seconds.

How often to notify Pattern How often to notify Action success
Once.
Action failure
Once.
Non-critical system event
Once when the event first occurs. If this results from a problem that users need to solve, redisplay once a day.
Optional user task
Once a day for a maximum of three times.
FYI
Once.
Notification escalation Interaction Icons

In this example, users can quickly comprehend the nature of the notification with a glance at the large icon.

Notification queuing

Note: Notifications are queued whenever they cannot be displayed immediately, such as when another notification is being displayed, the user is running a full-screen application, or the user isn't actively using the computer. Real-time notifications remain in the queue for only 60 seconds.

System integration Text Title text Body text Documentation

When referring to notifications:

Example: When the Critical updates are ready to install notification appears, click the notification to start the process.

When referring to the notification area:


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.3