2 Nov 2015

Respectful Notifications

We have too many notifications and interruptions. I’ve turned off all notifications, including for SMS and email. Most SMSs I get are automated, and few of the rest are urgent. And in that rare case, the sender can call me.


App and web sites often ask for permission to send me notifications without giving me a solid reason. “Get updates from NDTV!” doesn’t count. I immediately say no, and I lose some trust in the company. Asking to send notifications without giving me a reason is like someone asking you your bank account number without giving you a reason. Many app developers somehow haven’t learnt this basic etiquette.

In our personal interactions, we think about whether we are disturbing someone before we make contact in a certain way. For example, you wouldn’t call someone at 10PM unless it’s urgent. Developers need to learn and follow the same etiquette. More so since a single line of code in a popular app may disturb hundreds of millions of people.

The OS as the cop

Since many app developers are demanding rather than respectful, it falls to the OS to get these bad actors under control. Some OSs are better at this than others. iOS [1] and the web don’t let apps send notifications unless you first give permission. Android and OS X aren’t so good — apps can and do invite themselves to bother you. Of the two, Android is better, because you can mute notifications for a misbehaving app, preventing it from bothering you in the future. OS X doesn’t even let you do that [2].

Android offers a different solution, which is Do Not Disturb: it mutes all notifications, either till you turn it off, or for a specified duration.

With either the iOS or the Android approach, when I say that it falls to the OS to get apps under control, it ultimately falls to the user. This is a bad state of affairs. Apps shouldn’t have to be blocked to get them to stop bothering you, any more than you should have to block my number to get me to understand not to call you at 11PM.

Might it wake the user up?

Permission control needs to be more granular than yes or no. An important question about notifications is, “Might it wake the user up?” The answer is yes if it plays a sound, vibrates the phone, or turns on the notification LED (if your phone has one). I was woken up one night because the phone was next to my pillow, face up, and the notification LED was in my face, and very bright in the dark room.

Android, for example, gives developers the ability to turn the vibration, sound or LED off. Developers should consider using this API every single time they write code to put up a notification.

Granular Permissions

Since I would be more willing to grant permission to an app to show me non-intrusive notifications, OSs could have a permission level for that. An app should be able to ask permission to show me notifications that won’t wake me up, and I should be able to grant it that access. If it’s all or nothing, I’ll just say no. And others may say yes and later be unhappy at being woken up to learn that someone has uploaded a video to Youtube.

iOS has a precedent for fine-grained permissions, with location settings: an app can ask for access your location while you use the app, or even in the background. And, if you grant permission, but later change your mind, you can then downgrade the access to foreground only.

Similarly, there should be two permission levels for notifications, one that can wake you up, and the other being silent, which means no sound, vibration or LED. Apps should be able to ask for the access they need.

And in settings, I should be able to see a list of apps that can wake me up, and turn them off.

Per-Notification Control

Not all notifications generated by an app are equally important. As I wrote above, apps should use the appropriate notification level for each notification. Just because I grant an app the ability to wake me up doesn’t mean that it should, any more than the fact that you haven’t blocked me means that I’m free to call you at 11PM. Each notification generated by an app should have an appropriate level: Skype may show a notification with sound when someone calls me, but should show me a silent notification if my credit is getting deactivated in a week.

This extends to user-initiated actions as well: when I SMS or WhatsApp someone at an odd hour, I want to tick a box saying not to wake them up. Absent that ability, I feel I have to instead mail them so as not to disturb them.

As another example, Inbox lets you set a reminder for a certain time. And you get a notification then, with sound and vibration to draw your attention. But not all reminders are time-sensitive. If I have a reminder at 4 PM to clean my washing machine, Inbox shouldn’t interrupt me — the task can be done just as well at 5 or 6 PM. So, reminders need to have a notification level: silent or not.

OS-level controls are not granular enough, since they can’t distinguish between different messages in WhatsApp or different reminders in Inbox. Apps need to provide this level of control with each reminder or message.


Some things are even more time-sensitive, like a doctor’s appointment when someone is sick. In such cases, I’d want the phone to play a sound continuously until I acknowledge it. Notifications can be missed. I’ve missed a meeting in the past because I was on a noisy road, and the sound or vibration weren’t noticeable. Or a phone may be a different room and you may not hear it.

The fact that notifications can be missed means that they are not good enough for time-critical things, like leaving for the airport at a certain time. I end up using alarms for such things. One drawback of alarms is having to use different apps for the same purpose, like Inbox for some reminders and alarms for others. Another drawback is that I can’t set them from my computer, like I can with Inbox notifications. This is a step back in the age of the cloud.

To fix this, Inbox should have three levels of notifications:
- Ring and vibrate continuously.
- Play a sound and vibrate once.
- Silent — no sound, vibration or LED.

I’d use the continuous option very rarely, like leaving to the airport or leaving for a doctor’s appointment when someone is sick. But these rare cases are very important. Just because something happens rarely doesn’t mean you can ignore it. In fact, we need our tools to work reliably at these critical times. When they do, it builds trust in them. When they let us down, we lose trust in them.

Most notifications are currently at the middle level. It makes for simpler product and UX design to have just one type of notifications, but it doesn’t correspond well to the real world, or to human interactions and expectations. I know when to interrupt someone to tell them something, and when not to. I expect my apps to be similarly well-behaved.

Not having three levels of notifications means that I miss important events (an international flight) or I get woken up or interrupted over trivia. Neither is acceptable. A tool that works that way is defective.

In summary, app developers need to understand and follow etiquette, not waking the user up with sound, vibration or the LED unless it’s appropriate. Since many don’t, it falls to the OS and ultimately the user to police them. Apps should be able to ask permission to show me silent notifications, which I’m more likely to approve since they won’t wake me up. In addition to silent notifications, we need the opposite, which is notifications that play a sound continuously, like an alarm, to be used for critical events, like leaving for the airport. And the the right notification level is different for different reminders in Inbox or messages in WhatsApp, so it can’t be controlled at the OS level.

[1] iOS doesn’t make it easy to see that your notifications, or even that you have one. That defeats the point of notifications.

[2] Notifications on OS X come in many forms: an overlay banner, an entry in Notification Center, a bouncing dock icon (the most irritating kind), a ‘ding’ sound… Why can’t OS X show notification icons as menu bar extras, next to the Wifi and battery and Bluetooth and other icons? There’s no need to add more complexity to the OS by adding yet another place in the operating system’s UI. Besides, notification icons are almost always visible, while the Notification Center is offscreen all the time, so putting entries there defeats the point of notifications. OS X should just present notifications in the menu bar, like Android does. So should iOS, for that matter.

No comments:

Post a Comment