Mac OS X: Making scrolling even more intuitive
Posted by Pierre Igot in: MacintoshAugust 6th, 2004 • 4:01 am
Mac OS X has several features that help make scrolling up or down a document window more intuitive — such as Live Scrolling and Smooth Scrolling.
Live Scrolling is now the default behaviour in most applications and cannot even be turned off. What happens is that, when you grap the scrolling slider in the scroll bar and move it up or down, Mac OS X doesn’t wait until you release the mouse button and “drop” the slider in a location to update the contents of the window accordingly. It updates the contents “live” while you are moving the slider. This lets you preview the contents of your document in the location that you are moving to before you have to make the decision to drop the slider. It’s a bit hard to believe today, but for a long time in the Mac OS we didn’t have this live previewing.
Smooth Scrolling is a more recent feature that is off by default because it’s somewhat resource-intensive and requires a fairly fast machine. It’s a system-wide setting available under “Appearance” in System Preferences. If the option is checked, when you go up or down a page/screen in a window (by using the PageUp/PageDown keys on the keyboard or clicking above or below the scrolling slider in the window’s scroll bar), instead of just jumping from page/screen to page/screen, Mac OS X uses a smooth visual effect that actually makes the page/screen slide down or up. This visual effect makes scrolling more realistic and helps you keep your sense of orientation when you are scrolling up or down a window.
(Interestingly, doing a search in my own blog I found that I had written about such a feature more than a year ago, several months before it was introduced by Apple in Panther. Cool. :-))
Without Smooth Scrolling, there is no visual indication of the direction of the scrolling when jumping from page/screen to page/screen. Mac OS X just replaces one page/screen with another, and you’re supposed to know whether it’s the next or the previous one. Of course, in most situations, you do know whether it’s the next or the previous page/screen that Mac OS X has jumped to, because you know which key you’ve pressed or where you’ve clicked with your mouse. Besides, once the scrolling has taken place, there are other visual indicators — namely the position of the scrolling slider in the window’s scroll bar, which will have moved up or down to reflect your new position in the document, or the actual contents of the document itself, which might give you clues as to where you are in the document.
Yet, there are also situations where keeping track of where you are and which way you are going is not so obvious. Sometimes the problem is related to the imperfections of today’s computing hardware. No matter how fast the hardware is, sometimes it’s not fast enough to keep up with your own speed of thought and action as a user. Sometimes you might hit the Page Down key or click below the slider in the scroll bar with your mouse several times in a row in order to jump several screens down — and it takes a few seconds for the computer to catch up with you. During these few seconds, you might have already self-corrected your own typing/clicking and typed Page Up or clicked above the slider.
If Smooth Scrolling is off, such delays and the speed of your own actions can cause you to temporarily lose track of where you are in the document. You might be forced to read again some part of the document that you’ve already read or been through, in order to remind yourself of where you were in your reading of the document.
Smooth Scrolling helps alleviate the problem somewhat. However, there is at least one fundamental way in which scrolling behaviours could be further improved and scrolling up or down a document window could be made even more intuitive and easier to keep track off.
It’s a problem I’ve already written about, but, now that we have Smooth Scrolling, it really stands out as the last major stumbling block in providing the user with a really smooth scrolling experience.
I am referring to what happens when you reach the bottom of a document. In most cases, the exact length of your document (in pixels) is not a perfect multiple of the height of the visible part of the document in your window. This means that, when you reach the bottom of your document, the last “screen” or “page” will not be a full screen or page. It will only be a fraction of a screen/page, because there’s nothing for Mac OS X to display after the end of the document.
The problem is with what happens when you start hitting Page Up again after having reached the bottom of the document. Instead of jumping back up by the same fraction of a screen/page, in order to take you back to the second-last position you were in before you reached the end of the document, Mac OS X actually jumps back up one full screen/page from the bottom. In most cases, this will not be in the same position as the second-last position that you viewed just before you reached the end of the document. It’ll be slightly higher up.
And this screws up everything. Because if you self-correct while scrolling up/down a document without ever reaching the end of the document, you can keep track of where you are, screen by screen or page by page. But if you self-correct towards the end of the document, you won’t be able to avoid the offset in your vertical position within the document caused by this behaviour at the bottom of the document.
This problem affects many applications, such as Safari (when scrolling down a web page) and Mail (when scrolling down a message or mailbox). Maybe some users find this behaviour “intuitive” — which it is if you start from the very end of the document and just scroll up one screen at a time and expect Mac OS X to jump by one full screen from the very start. But most people I know read their documents from the top to the bottom and, in such a situation, this behaviour is likely to cause disorientation.
I know it does for me, and there’s no point in trying to get used to it… You can’t get used to it, because the value of the offset changes from window to window, depending on the exact length of the document in relation to the height of the window.
I believe there should at least be an option in “Appearance” in System Preferences that lets you turn the default behaviour off and force Mac OS X to jump by the entire screen height every time, even for the last screen in the document. Mac OS X could just display empty space at the bottom of the last screen in order to make it fill the window height (using the same background colour or pattern as for the rest of the window).
This problem with scrolling is fundamental and is not going away. The ball is in Apple’s camp.
August 8th, 2004 at Aug 08, 04 | 7:28 am
I think you idea of adding white space at the bottom of a window just to please the scrollbar is a very bad one. It’s just wrong.
_If_ people wanted improved behaviour, the way to go would be making a page-up command when the window is scrolled to the bottom-most position not scroll upwards a whole page but only as far as it needs to go to reach an integer multiple scrolls from the top of the window. This, of course, would cause irritations in the same way as there currently are.
I believe it’s lose-lose situation. Not hitting page down when you don’t mean to might help, though ;)
August 8th, 2004 at Aug 08, 04 | 7:45 am
I don’t know… Microsoft Word (for once!) does it (add white space at the bottom of a document in Normal view mode) and it works just fine as far as I am concerned. I don’t see it as a source of irritation. Why would this (or your other solution) be a source of irritation?
August 8th, 2004 at Aug 08, 04 | 9:10 am
It’s just wrong.
The windows content is supposed to be just that: the window’s content, not the window’s content plus some amount of space.
Other reasons (just off the cuff)
– scroll bars would give a less precise indication of the amount of content
– bottoms of pages wouldn’t be at the bottom of the window
– scrolling all the way to the bottom would, in the worst case, leave you with a few lines of content and a lot of white space, rendering the ‘End’ key useless
– web pages have bottoms. They’d look silly with white space below.
– how should this work in the terminal?
and so on.
August 8th, 2004 at Aug 08, 04 | 11:06 am
OK, so let’s forget the white space idea :).
What about your idea? i.e. making the first Page Up from the bottom of the document only go up by
Why would this be a source of irritation?
August 8th, 2004 at Aug 08, 04 | 11:21 am
I think it should be a bit more complicated than your suggestion as there’ll usually be some overlap between the pages – but that’s the general idea.
As for the irritation, I’m pretty sure some people’ll be irritated in any case and I find the current one more straightforward to understand.
Personally I’m much more frequently going to the bottom of a page and then scrolling up (e.g. here or on any other page where you want to check for new comments :) than I am accidentally hitting page down once too often. At the end of the day that’ll depend on the individual’s usage pattern.
Perhaps it’d be a neat hack to leave things as they are and only go your way if page up is used within a second of using page down. That might please everyone – but it would make the interface a bit trickier (not that that many people are using these features anyway.)
August 8th, 2004 at Aug 08, 04 | 10:12 pm
First I want to take a bit more time to address the issues you raised regarding the use of white space as a way to make sure that the last page/screen fills the entire height of the window. Most of the issues you raised can be fairly easily avoided:
1) Use a visual aid to clearly differentiate between the window’s content and that white space at the bottom. Word has a small horizontal bar that indicates the end of the document. A more OS X-friendly visual aid would be a drop-shadow-based demarcation that would clearly indicate that the white space below the end of the document is just “background” and not part of the document itself. (Note: We are using “white space” as a generic term here. That space wouldn’t necessarily have to be white, of course.)
2) The scroll bar behaviour could be adjusted to reflect the actual length of the document and not take the extra white space into account. (Word doesn’t use a proportional slider in Normal view, so Microsoft have avoided the issue altogether.)
3) I don’t see any problems with the bottoms of pages not being at the bottom of the window. This happens all the time when you scroll by increments of less than a full page. Users are used to this.
4) A few lines of content and a lot of white space? I don’t see what the problem is. That’s what happens in Word (in such situations) and the benefits (having a Page Up / Page Down behaviour with no unwanted offset at the end of the document) far outweigh the small inconvenience IMO. And I don’t see how that would render the “End” key useless. It could still work the same way as it does now, because when the user wants to jump to the end of the document directly, he doesn’t really care about the offset that concerns us here, since he didn’t get to the end by pressing the Page Down key repeatedly.
5) Web pages have bottoms? Sort of. But they definitely are not “pages” in the traditional sense, since their actual length can be anything. And the “silliness” you mention can be avoided with the visual aid mentioned in 1).
6) As for the Terminal, it’s obviously a special case. I don’t use it often enough to have an opinion on the subject :).
The problem I have with the offset is obviously related to the way that I tend to browse documents. I find your own approach interesting (hit End to go to the bottom and then scroll back up) but strange in that — in the case of the comments on my pages for example — it forces you to go through the document in reverse chronological order, which is not exactly convenient.
The fact of the matter is, most Westerners still read from left to right and from top to bottom :).
I like your “neat hack”. Maybe it would be a good compromise for everyone.
August 9th, 2004 at Aug 09, 04 | 6:39 am
I am sorry I have to say that I think your idea is bad. The whole concept you suggest is completely artificial. Windows are supposed to display their content, not some whitespace and drop shadows to make everything fit into some box.
I appreciate the problem you’re seeing but I don’t think solving it would be worth ruining the perfectly simple concept of windows and scroll bars for.
BTW, when looking for the most recent comment on a web site, going in reverse chronological order is exactly what you want to do :)
August 9th, 2004 at Aug 09, 04 | 6:47 am
I still think your “neat hack” would be a good compromise. It wouldn’t involve any white space or drop shadows, and it wouldn’t “ruin the concept” of windows and scroll bars.
As for the reverse chronological order, there’s a difference between the “Recent Comments” box on the home page, and reading the comments on the actual pages. If there has been a discussion with a fair amount of back and forth, such as this one, unless the reader has been following closely, he’s likely to come for a visit after a few comments have been posted. The “Recent Comments” box will give him an idea of how many comments have been added to the blog item, but he’ll want to start his reading with the first comment in chronological order, not the last one.
August 9th, 2004 at Aug 09, 04 | 6:54 am
I hardly ever visit the home page thanks to NNW :)
As for the hack – I guess this would indeed be possible to do for Cocoa applications if you’re a bit into hacking.