Not all notifications are equally important for a user all the time.
It makes sense to control the notification volume by starting from a specific instance right from the notification panel (close when the problem is identified). For example, the user getting too many notifications about a discussion page may want to adjust it to keep her informed only when she is directly mentioned.
Considerations
There are several aspects to consider:
Volume levels
There are several ways in which a notification can become les prominent:
- Skip highlighting the notification badge to avoid distractions.
- Mark it as read automatically to skip the list of pending items.
- Hide it from the list of notifications, as if never was received.
- (I.e. For page-based notifications, Keep the page in the watchlist, but don't send any notifications. Similar ideas in T121138)
A single option to "mute" can be supported by any of the above.
What to control
Notifications involve different pieces of information which may make it unclear in advance what are we controlling the volume about. For example, from a thanks notification from Cronopio about a comment in a discussion topic, should the volume options be about (a) the notifications from Cronopio, (b) the thanks notifications, (c) the specific topic.
The "type+page" seems to provide a reasonable level of control without leading to too complex rules.
How to control the volume
We need to define how to activate, deactivate, and check the current volume settings.
For some actions it may be convenient to use the notifications itself as entry point, for others a more general place such as settings may be needed.
Proposed solution
The proposed solution is to use "mark automatically as read" as the way to mute and provide access to this functionality through (a) the notifications, (b) the notification preferences and (c) special blacklist pages.
In this way, unimportant notifications will not distract the users or get in the way of the pending work, but will be still reachable in case it is needed (e.g., to understand why you were not notified about an event or revert the mute decision from the panel).
Prototype: Check this screencast illustrating the idea in action to get a better idea. This is based on this prototype which you can also interact with.
The proposal considers two different entry points for controlling the volume of notifications (which can be implemented at different stages):
Muting from the panel:
- For each notification it is provided an option to mute all notifications of their kind for the current page.
- Once muted, the current and future notifications of the same type for the same page will be marked as read automatically. The notification badge will not become highlighted when new notifications arrive.
- Muted notifications will include a muted icon that helps to visually understand why a notification you have not seen before is now marked as read.
- Muted notifications can be used to undo the muting action for those notifications in the same category for a given page, but only the current notification and new ones will be marked as unread again.
- Muted notifications can still be marked as unread (no longer showing the muted icon on it). This will not affect other notifications, and once the current notification becomes read, the muted icon will be shown again.
Muting from preferences (and blacklists):
- An action menu is provided for each notification category with the option to add pages to be muted.
- If there are muted pages, the control shows the number of pages muted.
- The control provides access to a specific black list where pages to be muted for a given category of notifications can be added to the list.
- A more advanced UI can ce supported for dealing with lists of pages in the future.
Related tickets
- The concept of postponing notifications to be acted on later is described at T88781: Create a Timer based reminder for workflows. Hiding a notification for a while is also related to controlling the volume (showing only the notifications that are relevant), so we can consider it from this perspective.
- T121138: Enable a way for us to choose whether to autowatchlist each new flow topic
- T132981: Allow unwatching a page from a page-linked notification
- T132977: Allow disabling a notification category from within the notifications popup