There’s a common but mistaken belief that proper user interface design requires lots of pictures and icons. In fact, it doesn’t. Many concepts and actions can be fully and best conveyed by text. While standard icons for directories and disks and the like can be helpful, custom icons for an application’s unique actions rarely are. The fact is, most icons are not self-explanatory; and if they’re not common enough to be standardized, they’re not common enough to be learned easily.
Nonetheless, many applications persist in creating pointless, incomprehensible toolbars. Icon design is hard. It is not something that just any art school graduate with mad Photoshop skills can accomplish. Icon design is about conveying an idea with pictures. not merely making a 32×32 bitmap look pretty. It’s hard enough coming up with a good icon for basic actions like cut and paste. Now try imagining one for “Analyze Module Dependencies” or “View Breakpoints”. There’s a reason Susan Kare gets the big bucks.
Lately, this trend seems to have seeped into menus, where text used to rule supreme. For instance, look at this File menu from IntelliJ IDEA 6.0:
Not only do the icons add nothing to the menu items. They actually make the menu harder to scan and read because the items are no longer left aligned.
By contrast consider this File menu from Firefox:
Notice how much cleaner and easier to read it is? The eye can scan straight down the left hand side looking for the item it wants. There’s a reason books, newspapers, and websites all use left aligned columns.1
Swing is partially to blame here. The
Action interface encourages programmers to add icons to every action, and then displays those icons in the menus and the toolbars. However icons only belong in toolbars, not menus. Swing should be configured to never show icons in menus. I suspect Swing is merely trying to support a bad user interface design from Windows and Linux. I could be wrong, but off the top of my head I don’t think I’ve ever seen a native Mac app make this particular mistake.2 However, on Windows and Linux/Gnome it’s endemic.3
Windows gets this right too, and properly aligns the text even when some menu items have icons and some don’t. Java apps are really the odd ones out here.
But really, icons don’t belong in menus and never have. Menus are for text. Toolbars are for icons, and you shouldn’t mix the two.
1 Assuming a left to right language such as English or French, of course.
2 The Finder actually does display icons in some of its optional menus: Script, Input, and Accounts. The Input menu at least has the excuse that a potential user may not be able to read the text but can pick a flag. However the Script menu has no excuse. In all three cases, the Finder misaligns the menu items.
3 I don’t use KDE, so I don’t know if it shows up there too. Anyone happen to know?