Bug: Thunderbird marks my message as read even if it hasn't been continuously displayed
Status: RESOLVED
Priority: --
Resolution: INCOMPLETE
Created: 2020-04-02 03:15:55+00:00
Resolved: 2020-11-29 16:54:30+00:00

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0

Steps to reproduce:

1. Ensure that Thunderbird setting Edit > Preferences > Display > Automatically mark messages as read is checked. Set "After displaying for" to a reasonably long time. I used 60 seconds.

2. Open the inbox of any email

3. Look for any unread messages

4. Click on the subject of the message, and let the message load. Before the time set above (e.g. 60 seconds in my case) has elapsed, switch to another message. I do this so that while I'm researching the unread message, it doesn't get marked as read before I've truly read the message.


Actual results:

After the elapsed time, the unread message gets marked as read even if a different message was highlighted before time was up.


Expected results:

The setting in question indicates that the message should only be read "After displaying for 60 seconds". Thus, the expected behavior should be that the message doesn't get marked as read unless it is still highlighted at the end of the elapsed time. Instead, even if the user immediately switched to a different message upon opening the unread one, the unread message will still be marked as read. Thus, the behavior does not conform to the description of the "After displaying for" setting.

But the problem is not just that the setting's description is wrong. If you're reading a message that requires more than a few seconds to investigate, you may not want the message to be marked as read automatically; otherwise, if you have to do something else, you may return to find the message marked as read when in fact it hasn't been fully processed yet. The behavior of marking a non-highlighted message as read deprives the user of control over when messages are marked as read.

For now, I've worked around the problem by turning off the "Automatically mark messages as read" feature. A different workaround may involve setting the time to a very low amount (say, 1 second or "immediately upon display"), then manually remarking a message as read. Both workarounds involve the user being physically present to manually change messages back to "unread" status.

But using this workaround essentially renders the "After displaying for" setting meaningless. Presumably, the purpose of having that timer is to give the user more time to read a message before it is definitively marked as read. However, the function of the timer at the moment is just to deprive the user of control over whether a message is marked as read or unread; if you try to avoid the timer by highlighting a different message and leave the computer, you won't be around to correct a message that was erroneously marked as read. This doesn't seem to be the purpose for which the timer was designed.

The problem can be fixed simply by ensuring that messages are only marked as read if at the end of the specified duration ("After displaying for"), the message is still highlighted/selected. If a different message has been selected, then the user either didn't spend up to their specified time reading the message or switched to another message on purpose to avoid having the message marked as read.