Thoughts on Notifications

There has been much talk lately about notifications in GNOME. Here are my thoughts. Basically there are different kinds of notifications:

  1. Notifications that need attention soon. This includes things like notebook battery running low, a phone call, an IM chat request, or an appointment. Generally these kinds of notifications need to draw attention to themselves without being distracting. While they need to taken care of, you normally want to finish the current sentence in the letter you are writing, read the current paragraph on the web page you are visiting, or quickly jot down your thoughts so they don’t get lost.Generally these kinds of notifications should only disappear when one of the following happens:
    • The user explicitly dismissed them (“I know that the battery is running low.”) or handles them (picks up the phone). Normally the notification itself should offer an easy way to do both.
    • The condition for the notification goes away. For example, a notebook running low on battery was reconnected to the power grid or a caller has hung up. The latter kind of notifications can then often be replaced by a type 2 notification.
    • The condition for the notification has become irrelevant. For example, a meeting is over according to the timetracking application, but the user has not taken action.

    In general such a notification should not go away automatically, since the situation has to be taken care off, even if the user is not currently at his computer. For example, a user has taken a coffee break and forgotten about a meeting. In the meantime the computer pops up a notification about it. If the notification would automatically disappear after a few minutes, the user might never notice that it had been there in the first place. If it stays, he will notice it and can still go to his meeting (better late than missing it completely).

    I think for this kind of notifications, popups are the best approach.

  2. Notifications about events that the user will want to check often, but that are not time critical. These kinds of notifications must be handled at some point, though. The poster child of this kind of notifications is of course e-mail. Such a notification should also provide the ability to quickly access the object the notification is about, for example open your inbox folder. Generally these kinds of notifications don’t go away, as long as the condition is true. If there is new e-mail, there is new e-mail.The best approach to these kinds of notifications is in my opinion icons in the panel, possibly using the notification applet. Icons are unobstrusive and can be checked quickly.
  3. Finally there is a group of things that aren’t notifications at all, but more information that the user wants to process from time to time. There is no harm if you miss a notification. Examples are news feeds or when somebody else added an appointment to your calendar. In the latter case, you would notice this appointment either when you are checking your calendar, or when the appointment is due.

The classification of many kinds of notifications are highly user-specific though. A user should be able to configure them, even though the fact that he is configuring the “notification level” can often be hidden. For example, a mail programm could have folder with differing flags: an “urgent” folder would generate notifications of the first kind, while a mailing list folder would generate generate no notifications. Normal e-mail generates type 2 notifications.

Finally, I will discuss some specific application and how they relate to the categories above, in my opinion:

As described above, e-mail would normally generate notifications of type 2. A user can glance towards the notification area from time to time and if there is new mail, there will be a mail icon. This icon could even be varied to indicate which folder the mail is in, e.g. if it’s private or work related mail etc. Also, the may be urgent folder that generate notifications of type 1 or bulk mail folders that wouldn’t generate any notifications.
music player
In my opinion a music player should generate no notifications. It is quite obvious when a new track starts, because – well – the music changes. If you really want to know what the current song is, you can hover your pointer over the music player’s applet icon and it should show a popup with the current song title, artist, etc.
instant messaging
When someone is trying to contact you, a type 1 notification should be generated. You can choose whether to accept the talk request, or to reject it. (Though the latter does not necessarily mean that the other person needs to learns that you actively rejected their talk request.) If you just ignore the talk request, it would go away after 5 minutes and replaced by a type 2 notifcation that shows an icon in the notification bar. This indicated that there is an IM message waiting for you.

Joins and leaves are normally a type 3 notification, i.e. not something that usually appears on the screen. Of course a user should be able to flag some buddies specially, so that they would generate a type 2 notification if they join. This is useful if you are waiting for someone.

phone ringing
This works quite similar to the IM case. As long as someone is calling, there is type 1 notification that allows to to pick up the phone or to ignore the call. When the caller gives up, the type 1 notification is replaced by a type 2 notification. “XYZ tried to call you. They left the following message on the voice box: …”
news aggregators
New aggregators should usually generate type 3 notifications. Normally new news items are not immediatly interesting and people will just want to check the news from time to time. Of course it is possible that there are more important news that could get a type 2 or even a type 1 notification.
weather applet
This should usually not generate any notifications. It’s just something a user glances up to when they want to know the current temperature and conditions. There is an exception though: If there is a weather warning, the weather applet should show a type 1 notification that will go away when it’s either dismissed or the weather conditions changed again.
battery charge
This should generate a type 1 notification if the battery is running low. The notification will go away when it’s either dismissed or power is restored.
network stuff
Network switching This is also something that should happen automatically. Why bother the user with something that is mostly irrelevant? The same is true for connect/disconnect messages. As someone pointed out, just show an error when someone tries to initiate an action that requires a network connection and none is available.
new devices
No notification needed. Devices that were plugged in should just do the right thing: USB sticks should appear on the desktop, cameras should open an image storage program etc. pp.
Appointments should generate a type 1 notification. They need active dismissal and only go away automatically when the appointment is over. The latter case could also generate a “missed appointment” type 2 notification.