If you are working with Office 2007 you know the Ribbon. If you don't you are a lucky bastard.
Although Office has many bugs and is a major case of feature bloat, but up to now I always stood up to defend it, because most of the stuff I use works ok, and that is probably more than 90% of the Office Users use. AND alternatives aren't really there yet. Ok there is Open Office but the last time I looked at it, it was horrible, ugly, buggy and IMHO only usable for private use.
But now the ribbon enters the room. At least in the way it is implemented in Office it is the biggest usability road block short of a system crash. But first what is this ribbon thing anyway?
The ribbon is a GUI Component which replaces the menu bar and the toolbar found in so many applications. It looks like this:
(Click on the image for a full size version)
At first sight it looks just like a menu bar + a toolbar with different size icons and other elements in it. But this is a misconception.
- The menu bar is not really a menu bar but tabs, which one uses to switch between different toolbars.
- There is an additional thingy on the top which contains some actions like save, undo and redo called the Qick Access Toolbar:
- The is a big ugly bubble like icon which is actually a button, which is more or less the file menu:
If you are a developer there is also a document for you which describes, how you are supposed to use the ribbon component in the applications you create.
So what is wrong with all this?
LetÂ´s start with the minor annoyances:
The more important commands in the Ribbon should get larger icons. Great. Just nobody asked me what is important for me. For example the different layouts you can view a word document with are NOT important for me. For me the whole concept of different layouts for viewing cut go away. I wouldn't miss it. It actually would be an improvement, because it would stop word from opening documents 'for full screen reading'.
Who had the weird idea that a two column menu (like the windows start button or the ribbon application button) is a good idea? It is probably the same guy that came up with the idea to add two buttons and a weird extra panel to the menu. Why there aren't just three more menu items labeled 'Recent Documents', 'Options' and 'Exit'? I have no idea.
But now it is getting serious, at least for me. For me toolbars and menus had two very distinct purposes: Toolbars where for quickly accessing stuff. Since I mostly use keyboard stuff for thing I need often. I don't use toolbars to much. Menus are for looking up commands that I know are somewhere, but I don't know the shortcut. In this case I look at the available menus, pick the one that sounds promising, and scan all the items in it. This approach completely fails with the ribbon!
Microsoft completely messed up the grouping of commands.
The design guide says explicitly:
Avoid arbitrary command placement. Suppose that you think you have a good tab and group design, but discover that several commands just don't fit in. Chances are, your tab and group design isn't as good as you think it is, and you need to continue to refine it. Don't solve this problem by putting those commands where they don't belong. If you do, users likely will have to inspect every tab to find themâ€”then promptly forget where they are.
Yet every single office app has a 'home' tab which is just a glorified 'other stuff' which contains arbitrary stuff. But even within the proper tabs things are of: What has recording macros to do with 'view'? Why is stuff named '... layout' not in the 'Page Layout'?
Even when the grouping of commands would have been done properly Microsoft did a great job at making searching the commands hard. With menus searching all items in the menus was really easy: Start with the first menu, go through it item by item. If an item is a submenu, continue with that submenu. When you finish a menu, go to the next menu. If you finish with a submenu, continue with the next item of the parent menu.
For the Ribbon the whole thing got way more difficult. First you scan the application menu. Don't forget the two buttons in the application menu. Then iterate through the tabs scanning each toolbar within that tab, carefully checking the buttons for tiny triangles, which denote some combo box like control which hides even more commands. Ok scanning the cluttered toolbars, with text, icons in two sizes and all kinds of other controls is way slower than a nice list of commands/submenus but that isn't too bad, isn't it. Well it would be if we hadn't missed 50% of the commands. Have a look at this partial screenshot.
Below the buttons and stuff is another grouping. It is completely useless since your eyes are coming from the tabs and get stuck between the buttons and controls before they notice, after a long search, that their search might have been easier if they had noticed the groups below first. What is more important is the tiny square with an arrow which is in some of the groups. It opens another dialog which sometimes looks like a menu and many actions are hidden in there.
So this is it, my rant about the Microsoft Ribbon Component. I actually don't like rants. I like my blog posts to contain some useful stuff. So what are my recommendations?
If you plan to include a Ribbon in your next application think twice. It will look modern, but it will annoy users like me. You could make them happy with an option to replace the Ribbon with a more traditional UI. If you want to make users like me really happy make your menus searchable. In Java you can do that really easy with the substance look and feel it creates a search box for searching the menus all on its own ... really nice.
Wan't to meet me in person to tell me how stupid I am? You can find me at the following events:
- Spring Data JDBC - New Kid on the block.
- Softwaredevelopment in the 21st century.
- Domain Driven Design mit Relationalen Datenbanken und Spring Data JDBC.
- Kerbal Space Program, Glücksspiel und Psychologie und was das mit dem (Berufs)leben zu tun hat.
- Javaland Freeletics
- Domain Driven Design mit relationalen Datenbanken und Spring Data JDBC
- The New Kid on the Block: Spring Data JDBC