[Pierre Igot][igot]’s post about [Adobe’s use of a new cursor in CS5][cs5] draws attention to how Adobe is continuing to fail to adhere to Macintosh user interface conventions.
But I disagree that the correct cursor to use for a blocking task that cannot be cancelled is the spinning beachball of death. That cursor after all is the cursor automatically provided by the operating system when an application is _not responding to input events_. As such when I see the beachball I associate it with a stuck application, one that may need to be forcibly quit.
Previous versions of Photoshop showed the watch cursor for actions which took a significant length of time. Showing the watch cursor is friendlier than showing the beachball of death because it indicates that the application is busy, too busy to handle your clicks but everything is hunky dory and the train _will_ arrive at the station.
There is no watch cursor listed in [Apple’s documentation on cursors][cursors]. However the cursor is still present in the system and can be found in the headers for the carbon appearance manager:
kThemeWatchCursor = 7, /* Can Animate */
If you have Xcode 3.2.2 installed you can find this in `/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Appearance.h`, line 634.
I don’t know enough about Macintosh programming to say whether it is possible to employ this cursor from a Cocoa-based application.
[igot]: http://www.betalogue.com
[cs5]: http://www.betalogue.com/2010/05/18/cs5-cursor/
[cursors]: http://developer.apple.com/mac/library/documentation/Cocoa/Reference/ApplicationKit/Classes/NSCursor_Class/Reference/Reference.html
As far as I’m concerned, the right way to handle this is by never changing the mouse cursor and by showing the spinner — I’m sorry, indeterminate progress indicator — in a contextually informative or consistent location.
The spinner is a control, not a cursor. The reason there’s no spinner cursor by default is the reason the watch cursor didn’t make the move to Cocoa’s NSCursor — it’s not the way you’re supposed to indicate that things are happening. Things are supposed to happen asynchronously. As is usually the case in Photoshop, the things that take time may well actually block progress until they’re done, but you should be free to feel like you can cancel progress (and a cursor without a pointed hotspot doesn’t indicate well enough that you can click something) or dick around in Preferences.
And to drive home another related point more explicitly: yes, the watch cursor may feel more friendly than the beachball. That’s because of conditioning: the watch in OS 9 appeared everywhere, including when things were quite alright, while the beachball is designed to only show up to indicate that something may actually have gone awry.
Because this upsets me, I’ll point out once again how the spinner as a cursor is a way of snatching defeat from the jaws of victory. The spinner stands for a responsive UI while the things that have to go away and do some work do that; that Adobe feels it’s comfortable to adopt the look, but not the feel or work of recent (as in “early last decade”) advancements speaks a bit too well to their selective brilliance. There’s a clear, well-defined alternative, established with users, providing actual benefits and with ample precedent, and they go make shit up.
@Jesper well… I am not convinced by my own argument that the watch cursor is a better choice. The other approach Adobe could take when an action will take a significant length of time would be to display a modal dialog with a (possibly indeterminate) progress bar and just use the regular arrow cursor.
Apple’s guidelines recommend just that , but I wonder whether users would perceive Photoshop CS5 as much slower (even if it was as fast or faster) just because this hypothetical new version has started belching progress meters all over the place.
And so one comes back to wanting to use a cursor which indicates progress…
Doesn’t Photoshop already “belch progress meters all over the place”, though?
When did the spinning beachball of death ever communicate excellent user feedback? When’s the last time you saw SBBOD and though “OK good. Everything is working fine?”.
If an improvement is a break from convention I’m not going to discount it from being an improvement.
I’d argue that a wait indicator I notice is better than a wait indicator I don’t. A wait indicator that only appears when a process is going A-OK is better that a wait indicator that tells me that s%$@ may or may not hit the fan.
@Jesper
You could say that Photoshop gives the user feedback indicators frequently. If you wanted to spin that to make that sound like a bad thing you could call it “belching”. Sure.
@Matt Lundstrom there is certainly an argument for another cursor that indicates a long-running task that cannot be interrupted but Adobe’s choice of the grey petal pinwheel is odd, and so I argued that the watch cursor would make more sense. As for belching, @Jesper was just quoting my earlier comment where I was suggesting that if Photoshop frequently showed a progress meter it would quickly become irritating.