Please, no automatic scrolling to the next item

August 18, 2010

As I was using Thunderbird today, I was unpleasantly reminded of a reasonably common UI idiom that I absolutely hate: having the way you page through a single 'item' (in Thunderbird, using spacebar to go through an email message) also be the way that you advance from one item to the next. The net effect is that you are paging through a message and then suddenly, surprise, you're reading the next email.

This is wrong. In the case of Thunderbird, I can explain succinctly exactly why it is wrong: when I've finished reading one message, going on to the next one is almost never what I want to do next.

Almost always, I want to either delete the message, file the message away, or reply to it. I almost never want to simply leave it sitting there in a read state. Thus, instantly advancing to the next message is 'optimizing' for the extremely uncommon action; in practice, it means that Thunderbird is doing the wrong thing almost all of the time when I hit spacebar at the end of a message.

You might wonder why I keep hitting spacebar at the end of messages. The succinct answer is that the programs are terrible at showing me when I have actually reached the end, for various reasons. That's why I want scrolling to stop and nothing to happen; it's a clear indicator that I've seen all of the message and I can now go on to dispose of it in some way.

Most programs, Thunderbird included, make then this worse with another design decision; the normal 'go back one page' key doesn't undo this, so you can't easily reverse an inadvertent advance. Sometimes it does nothing, but in Thunderbird it does something completely different and you will actually get more disoriented if you try it.

(If I used Thunderbird for more than testing our IMAP server, I think I would put together a personal Thunderbird build with this feature taken out, assuming that I could find it in the Mozilla source code. Sadly, it doesn't appear to be controllable through any configuration options.)

The only time this sort of behavior is even vaguely tolerable is when you really do faithfully simulate an endlessly scrolling display, so that people can scroll back to the previous item just as easily as they've been advanced to the next one. Even then, you should be considering carefully what people will really be doing at the end of messages. If it is not 'skipping on to the next one', maybe this is still the wrong interface.

Sidebar: the end of message problem

One of the reasons that programs are terrible at showing the end of the message is because they they don't don't allow the bottom of the content (the email text, the web page, etc) to go above the bottom of the window.

This needs some elaboration. The easiest way to see what I mean is by comparing the behavior of a GUI browser with that of a pager like less (or even lynx). When you page through something with less and the end does not naturally fall at the bottom of your screen, less advances a full page at the last page and leaves a bunch of blank space at the bottom of your terminal (in the extreme case, all but one line will be blank). When you do the same thing in a browser, the bottom of the content never goes above the bottom of the browser window; when you advance to the last page, the content scrolls by less than a full page. This means that you lack an obvious clear clue that what you are seeing is the end of the message; you have to notice that the content didn't scroll by as much as you were expecting.


Comments on this page:

From 134.95.198.212 at 2010-08-18 06:54:20:

when I’ve finished reading one message, going on to the next one is almost never what I want to do next.

That really depends on your particular use. I am subscribed to a lot of lists that I archive in fully and mostly only read, in which case going on is almost always what I want to do next at the end of a message.

I still don’t like paging to switch messages though. The problem is what it does with read state. If I switch to a message inadvertently, any undoing action needs to restore it to unread state. Typically the user is left to take care of that manually, and I am not sure it is possible to design a behaviour smart enough to always do the right thing, which would means it’s always going to be occasionally irritating.

Aristotle Pagaltzis

From 131.137.219.14 at 2010-08-18 08:42:20:

Which email client do you use?

I like virtual mailboxes in Evolution, but the user interface is a disaster.

Thunderbird is better in many ways, but there are several annoyances in addition to the one you mentioned.

I used Sylpheed and Sylpheed-claws in the past and found both to be crashing wonders. I don't remember the UI being particularly nice.

I keep coming back to mutt but I find it has a harder time dealing with the crappy html emails people insist on sending me, and the generally broken emails sent by the more popular email clients. (like MacOS Mail.app)

By cks at 2010-08-18 09:01:06:

I am sufficiently crazy to still be using MH and exmh. With sufficient hacks, this does a decent job of rendering MIME and HTML emails in both exmh and the command line MH environment.

This is not suitable for anyone who needs to do IMAP, obviously, but I am lucky enough that I don't have to; our email system still allows direct access to /var/mail.

From 71.116.163.154 at 2010-08-21 03:51:09:

I'm using nmh, too, but with mh-e (in Emacs) as my main client. Mh-e has the space to move forward/space to get to the next message feature, but I actually like it for two reasons: (1) I usually read my mail in threaded mode, and (especially for lists) being able to page through each message in a thread is quite nice; and (2) it doesn't automatically advance you to the next message; instead the first time you hit space at the end of a message it pops up a message in the minibuffer to warn you that you've reached the end of the message and that hitting space again will take you to the next message. Maybe (if it was supported) that behavior would work better for you, Chris?

The whole lack of IMAP thing is annoying, though, and I keep thinking I should really try something newer. Thus far, I've been most tempted by the idea of switching front ends from mh-e to Gnus, and once I'm used to Gnus, switching the backend from MH-style folders to IMAP. But I haven't convinced myself it would be worth the time and effort yet.

By cks at 2010-08-23 17:46:53:

I used to make relatively heavy use of mh-e and my memory is that the two spaces thing was not too irritating. I think that part of it is that mh-e scrolls text like less does instead of like common GUI programs do, so you have the extra indication that you've reached the end of the message in the form of blank text at the bottom of the message area.

Written on 18 August 2010.
« The two sorts of Referer spam that I see
Getting Flash to work on my upgraded 64-bit Fedora 13 machine »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Wed Aug 18 02:43:14 2010
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.