On Mac OS X, the Zoom button is the green button in a window title bar that has a “+” sign on it when your mouse approaches the button. If you are new to the Mac, you probably call it the “Maximise” button – that’s what you call it in Windows, and what the behaviour is in Windows. However, this isn’t what it is called on the Mac, and isn’t how it is supposed to behave either.
Apple’s Human Interface Guidelines describe the functionality of this button as follows:
Your application also sets the values for the initial size and position of a window, called the standard state. Don’t assume that the standard state should be as large as possible…
If the user changes a window’s size or location by at least 7 pixels, the new size and location is the user state. The user can toggle between the standard state and the user state by clicking the zoom button. When the user clicks the zoom button of a window in the user state, your application should first determine the appropriate size of the standard state. Move the window as little as possible to make it the standard size, and keep the entire window on the screen. The zoom button should not cause the window to fill the entire screen unless that was the last state the user set.
If you are wondering what all that means, in general terms it is saying that if I am displaying, say, a web page, and I click “zoom”, the window should expand horizontally and vertically just enough to fit the contents of that page without scrolling (if possible).
Try it on Safari, say. Resize this window so a scroll bar appears at the bottom of the screen. Then click Zoom. The window will grow to take up the entire screen vertically, and just enough horizontally so that there is no scroll bar.
Why Zoom, not Maximise?
If you watch a Windows user at work, you’ll find that much of the time they have their applications full screen. The Mac, on the other hand, encourages you to only use as much space as you need. You can have other applications open in the other parts of the window, and you can drag and drop between them. What’s the use of having a 30 inch monitor if your Word Processor takes up the entire screen, with 70% of that screen being white space?
The Zoom feature is actually very clever. When it works as described.
The current problem
The trouble is, the Zoom functionality is inconsistent – even within Apple’s own applications! Here’s a list of some Apple applications, and how they behave when zoomed.
|Maximises the window.|
|Dictionary||Maximises the window regardless of content. Search for “mac” for example, then Zoom the window.|
|Address Book||Sort of works correctly, but often forgets the user state.|
|Finder||Sort of works correctly, but often forgets the user state.|
|Preview||Sort of works correctly, but sometimes moves the window position for no reason|
|iCal||Maximises the window.|
|iTunes||minimises the user state to a mini control window|
The end result is that Windows users who are new to the Mac complain that the “Maximise” button doesn’t maximise, and many seasoned Mac users have stopped even touching the Zoom button because they give up trying to guess what behaviour it will have.
More confusion abounds
Where things get more confusing is determining whether you are currently in a user state, or a standard state. The Zoom button icon is a “+” regardless. And if you don’t know what state you are in, you can’t always be sure what behaviour you’ll get.
Further, the symbol used to represent “Zoom” is a “+”. To most people, that would suggest “expansion”. So when an iTunes window shrinks to a tiny control, you can imagine the confusion that causes.
iTunes window after pressing the Zoom button
Why does this happen?
The trouble is that having intelligent zoom requires the developer to work harder. The default behaviour for the zoom button is simply to expand to fill the screen (Windows style) – you have to do some coding to make it work according to the Human Interface Guidelines. Even my own software maximises instead of zooming – just because it was easier than writing the code to zoom properly (and yes, I’m embarrassed, I should fix this, and promise I will in my next release of any of my products).
But I want Maximise!
Then you should go back to Windows. :-)
Seriously though, because Zoom is not the same as Maximise doesn’t mean it is bad. Most people who want Maximise are just used to it on Windows. You need to try and use Zoom, and make use of that extra window space to do Mac-style drag and drop between applications. Exposé is great for dragging between windows too.
Some applications have attempted to add a Maximise behaviour. For example, OmniWeb correctly implements Zoom, but if you hold the Option key down while clicking the Zoom button, OmniWeb maximise the current window.
However, this behaviour is actually wrong based on what appears to be Apple’s unwritten guidelines for Option-click. If you hold down Option while clicking on any of the window controls (Close, Minimise, Zoom) the application should apply that functionality to ALL windows in that application. So to close all windows, Option-click Close. To minimise all windows, Option-click Minimise. To zoom all windows, Option-click Zoom. So using Option-click for Maximise is not a solution, and developers should not implement it this way.
Apple needs to lead here with a consistent behaviour across all applications. I am not suggesting all applications should maximise like Windows – that is the easy way out, and Zoom when functioning correctly is a superior feature. But if Apple provides a mixed bag as they currently do, it is no surprise that third party developers don’t bother with Zoom, and users get confused or complain about it being “not like Windows”.
The use of a “+” sign for zoom was never a really good idea – but that horse has bolted. I can’t see Apple fixing that, and I’m not sure what simple shape they could use in its place. Showing whether a window is in user state or standard state is also an issue – currently the zoom button does not reflect state – and if it did, would that confuse users?
With Apple improving consistency though with their own applications users will understand that this isn’t “Maximise”. And third party developers will be encouraged to properly implement Zoom functionality.
|This is part #8 of my “Improving Mac OS X” series. For other parts in this series, please click below:
Improving Mac OS X: #1 – Finder Selection