I'm building an application where a user can be mentioned by another user and they get a notification. Similarly, they can send e-mails and they get a notification when someone replies to that e-mail.

There's a separate page — Notifications — for the user to see all of this. I'm wondering when I should mark these items as read. There are a few options:

a) Mark the item as read as soon as the user sees it — this might be confusing, especially if there are a number of items. You navigate to another page and all those unread items are now gone.

b) Allow them to mark items as read one by one — this seems OK as the action is manual. It's too inefficient though; if there are 100 notifications that you haven't read, marking them read one by one is going to become cumbersome.

One option is to add a 'Mark all as read' button which makes the most sense to me.

Is there a standard practice for this?

  • Worth considering: SE makes the red inbox and green rep icons go away if you close the list while that icon's dropdown is open, but they stay if you move the mouse from that list over to the "list of communities" option before closing the dropdown. Oct 28, 2015 at 18:19
  • That's a good point!
    – swastik
    Oct 29, 2015 at 9:44
  • 1
    @DanHenderson: Looking at the code, though, I'm fairly sure that's not a deliberate feature. (It mostly looks like just a side effect of not wanting to clear all the alert icons as soon as any dropdown is opened.) In any case, I don't think it's clearly documented or advertised anywhere, so it's at best a "hidden feature" for experienced users. It might also just be a bug, or perhaps a misbug. Oct 29, 2015 at 12:46

3 Answers 3


Did you consider the Facebook approach?

Facebook shows all new notifications under one label that shows the amount of new notifications as a number: "34 new notifications", the red label on the globe icon.

As soon as users CLICK the globe, users get to see all of the new notifications, while previous ones are also shown, with the difference of being a little darker, which makes them appear "new" or "unread". The globe label will now show "Zero new notifications" - but whenever you go back to the globe dropdown menu, you will see which ones you read and which ones you did not read.

With this you can confirm that the user actively chose to see the new items, while still providing the difference between "new" and "unread".

Could that be a solution for you?

  • Oh, that's a nice solution! I'll try this—it makes perfect sense.
    – swastik
    Oct 28, 2015 at 16:05
  • I haven't checked recently, but does Facebook still assume you want to block notifications from specific users if you try to remove notifications from the list just to clear out your notifications rather than letting them go away on their own eventually? Because that's a pain.
    – JAB
    Oct 28, 2015 at 17:09
  • @JAB Facebook has a dedicated "Mark as read" button, and a Close button. Hovering over the button has contextual captions like "Show fewer" (my friend posting in a medium-sized study group), "Unsubscribe" (I'm subscribed to my student union's upcoming Facebook events), Turn off (someone posting in an upcoming Facebook event).
    – SimonT
    Oct 28, 2015 at 19:49
  • That reminds me, I should probably remember to click that "mark as read" button the next time I'm on Facebook. :-/ Oct 29, 2015 at 12:48

a) a timer for the mark as read action is good for this too. open+5 seconds or whatever.

b) definitely a manual option for each message

c) I'd include a checkbox next to each message in the list with an option to "mark as read" at the top. you could also include a "select all" feature. the bonus here is that you can also attach bulk operations for delete, etc. using the same checkboxes.

  • Thank you! A timer sounds like a good option. If the user is spending some time on a page, it's safe to assume he's read it.
    – swastik
    Oct 28, 2015 at 16:06
  • 4
    Just offering a single, anecdotal perspective: MS Outlook, by default, marks messages as read after either (1) they've been in the preview pane for > 5 seconds, or (2) they were in the preview pane and you select any other message. I dislike both of these behaviors, as neither necessarily corresponds with my having actually read the message. So I always turn that option off so that my Outlook only marks things read when I explicitly tell it to, or when I double-click a message to open it in a whole new window. Oct 28, 2015 at 18:11
  • That also makes sense. Give the user all the control and make it quick enough to mark anything read instead of guessing when it's read.
    – swastik
    Oct 29, 2015 at 9:45

On an application we are building we have a similar notification board between users. Users work from (long) list of items, and each item may have 1 or more unread comments.
So each item on the list has an unread counter of 0 (neutral color) or more (highlight color).

We decided here to sort of turn the default around:

  • opening notifications view automatically marks all new comments as read.
  • upon users request they can flag individual comments as 'mark unread'.

This setup was conceived when testing this let with users: they liked the flags in the list, but also wanted to use it for todo-like purposes: any item with 1 or more comments means todo. The additional option to keep comments as unread gives user a means to look at comment, and decide to postpone the actual work (for valid reasons also).

In our case this works well.

Your mileage may vary, depending on purpose, content, volume and user preferences in your specific case.

My point here is that (although I do like FB solution), the best approach really depends:
1000 new messages a day, most of which are spam/ "you do not need to do anything but I thought I should share anyway", probably has a best solution that is different from 2 messages/day which are must read/do stuff immediately..

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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