delete.me.uk: The home page of Paul Sowden
20th January 2004
As I mentioned yesterday, status bars in Apple’s OS X applications are different heights, but it now seems like the inconsistency stretches further than just the height, the status bars are just plain inconsistent.
I’m going to look at the behaviour of the status bars in 4 of Apple’s applications; Mail, Xcode, Finder and Keychain. These are the 4 applications shipping with OS X that display a pinstripe status bar underneath the toolbar.
It’s actually quite impressive how they (presumably completely unintentionally) seem to differ on almost every single aspect of their design. Also, these are just the applications that have similar status bars, there is no standard way of presenting status information in OS X applications, with different methods in most applications.
The screen capture shows the status bar in the collapsed (pinstripe) view of the Finder (the view all of my Finder windows assume). It is mostly used to indicate the number of children a folder has, disk space and occasionally shows a couple of icons on the left (e.g. a grid appears when the window is set to snap to grid and a trash can is displayed in the trash folder).
The screen capture shows the standard status bar in Xcode’s project window. Similar status bars appear in most of Xcode’s windows, including (but not limited to) the editor, debug and run windows. In this instance the project windows displays the number of files in a group along with the number currently selected. The status bar is also used to display compile status during a compile, indexing status when indexing amongst other things.
The screen capture shows the status bar on a message box viewer, the status bar doesn’t feature on message windows. The bar shows the number of message in the current mailbox in it’s idle state. When talking to the server (sending/receiving messages) it displays the current stage in the communication as well as indexing status when indexing along with other pieces of information at different stages.
The screen capture shows the status bar from a keychain window in it’s idle state, displaying the number of keys in the selected chain. I’m not sure what other pieces of information it displays, I’ve mostly only seen this with no change.
Below I’ll outline the areas that occurred to me, mostly influenced by the fact the applications differ in these areas. There could be areas which the applications actually agree on (maybe the fact they’re all pinstripe) but none leap out at me.
Also, I’d like to point out I have little experience in UI design. I am writing my own applications, and when I have questions I usually consult Apple’s HIG, although they are very thin on the topic of status bars as it is not considered a standard widget, which is probably causing the variation I have observed.
In my previous post on this subject I was comparing the height of the various applications status bars. The height actually differs for every application, which is quite impressive. While the difference between Finder, Xcode and Mail is not immediately obvious, the status bar in Keychain is clearly taller then the others.
The actual height, measured in pixels, is shown in the table below.
| Application | Height (in pixels) |
|---|---|
| 18 | |
| Finder | 19 |
| Xcode | 20 |
| Keychain | 25 |
The status bars in Xcode, Mail and Keychain have the same colour pinstripes as a standard window body, while the status bar in Finder has lighter colour, the same as that in window’s toolbars.
The text in Mail, Xcode and Keychain is always aligned on the left. Xcode also uses the right hand side of the status bar for some messages, although not in it’s idle state. Mail places a throbber on it’s right hand side when it is busy. On the other hand Finder has it’s text centred in the standard view and uses the left hand side to place select icons.
The text in Finder, Xcode and Keychain is indented 7 pixels from the left (well, the left aligned icon in Finder), but in Mail it is indented 12 pixels.
While it is fair to say the wording and information can differ between applications, I would expect similar wording for similar status information. In this case I will only consider the information regarding the number of items displayed.
The different applications have different words for their items, which is expected. Mail refers to “messages” and Finder and Keychain refer to “items”, but Xcode doesn’t have a state where it names it’s contents.
All applications show the total number of items contained within, Mail, Finder and Keychain in the form “n items” and Xcode in the form “m of n selected”.
Even though all the applications allow multipe selections, Finder and Xcode are the only two that display information pertaining to the number of selected items, both in the form “m of n selected”.
While the status bars show information from different contexts and such, I believe it is fair to say the basic information outlined above should be consistently reported.
Finder’s status bar behaves like the toolbar when it is hidden/unhidden, the whole window decreases in height when hiding and increases in height when unhiding. This is consistent with it’s toolbar colour.
On the other hand Mail, Xcode and Keychain resize the height of the window contents, leaving the window’s height constant. The behaviour is buggy in Keychain, but I guess this shouldn’t factor.
When multiple windows are open, Finder’s toggle applies to all windows, you can’t have one window with the status bar on and another with the status bar off, they’re all on or off. Xcode, Mail and Keychain all offer independent toggling by window.
Finder, Xcode and Mail all refer to the widget as a “status bar”, whereas Keychain calls it a “status line”.
Mail and Keychain have the toggling of the status bar tied to the Command-Option-S shortcut, whereas Xcode and Finder have no keyboard shortcut to toggle the display.
The text in the status bar of Keychain is selectable, whereas the text in Finder, Xcode and Mail cannot be selected. Why you would want to select the text (especially in Keychain) is beyond me.
I’ve covered pretty much every area I can think of. There seems to be a large amount of variation between the applications with them all differing from each other in at least one of the tests, which I find amazing.
The Finder application seems to want to emulate the toolbar a little, by being peripheral to the window’s contents, which I think is the Right Way™ to go.
I think the way to go from here is for Apple to acknowledge that this is becoming a standard widget and either add a Cocoa class to handle the behaviour, or at least outline the conventions in the HIG so as to ensure consistency throughout applications. Although first they clearly need to decide on a standard way and use it.
So which style should I use in my application? Should I pick an application and emulate that exactly, or choose which properties I like from each? If I do pick one application to emulate, which one? Or should I acknowledge the clear way to go is to think different and come up with my own style?
At the moment I don’t know which way to go, but I’m leaning towards Finder’s style, which I will probably copy all the way.