An application I'm working on has a toolbar that doesn't have all of the buttons as commands inside the menus in the application. For me this feels quite awkward.

The Java Look and Feel Design Guidelines mention:

  • Include commonly used menu items as buttons or components in your toolbar.
  • Make special provisions for toolbar accessibility if your window does not have menus.

However they don't explicitly say that all items in the toolbar should be contained in a menu.

I'm looking for solid grounds to back my point with the developer team, can you provide any guidance?

So far, my only argument would be that you can list the keyboard shortcut for a specific command in the menu/toolbar explicitly.

  • Wow; I haven't seen a menu that looks like that in any new apps for a long time.
    – Matt
    Jul 17 '12 at 3:45
  • I hear you. That's why this question isn't about whether it's good practice, but how to back my point... :)
    – edgarator
    Jul 17 '12 at 3:47

Just had the exact same issue as you very recently.

The conclusion of our team (based on the guidelines you mentioned and some examples of many other applications) was that the menu should contain all the functionality of your application, and the toolbar only a sub-set (the most used functionality).

Having the toolbar containing a different set or just an overlapping set of functionality would make things harder to find for a user, because there would not be a single place to look in for the user to be sure to find what the right command. And the user might also think that the functionality might be in some "yet another" place (for example, a context menu).

Also, most-common toolbar buttons do not have text. Only an icon. So in order to know what the buttons are used for, the user would need to wait for the tooltip to appear (what can slow down the user), or just click the toolbar buttons (but he might be "afraid" of doing so because he just doesn't know what he is going to get). So it may be better if the toolbar is not the only place where some functionality is accessible.

Finally, another reason to see the toolbar as only a support to the menu (quicker access to functionality from the menu) comes when icons are used. When looking for some functionality for the first time, the user may first look the menu (showing the menu items with some icons where applicable), the place he is sure to find what he is looking for. Seeing the icon of the menu items, the user can later quickly recognize the same icons in the toolbar, and then can use the toolbar directly the next time he needs the same functionality. You may refer to the chapter "Recognition is easy, recall is hard" from the book "Designing with the mind in mind" from Jeff Johnson.

So I would suggest having everything accessible through the menu, and the most used functionality also accessible through the toolbar (and of course, keeping consistency of icons and terms between the menu items and the toolbar buttons and the tooltips).


As you noted, the Java guidelines call for toolbars to be a subset of menus. Apple seems to agree; from their UX guidelines:

Make app commands available in menus. The menu bar is the first place people tend to look for commands, especially when they’re new to an app. It’s a good idea to list all important commands in the appropriate app menus so that people can find them easily. It can be appropriate to omit infrequently used or power-user commands from your app’s menus (instead making them available in a contextual menu, for example), but you should be wary of doing this too often. Even experienced users can fail to find commands that are essentially hidden in this way. To learn more about providing menus in your app, see “UI Element Guidelines: Menus.”

While a toolbar doesn't hide functionality (so maybe the last two sentences don't apply), to a menu-user it does by removing the context. Imagine if you were looking on the "Edit" menu for copy, cut, and paste, and they weren't there -- wouldn't that be disorienting?

Microsoft seems to be more willing to remove menu functionality (and maybe this is part of why so many people hate the ribbon). The "hiding menu bars" section of their guidelines includes:

Generally, toolbars work great together with menu bars: good toolbars provide efficiency and good menu bars provide comprehensiveness. Having both menu bars and toolbars allows each to focus on its strengths without compromise. [...] To eliminate this redundancy, many simple programs in Windows Vista® focus on providing commands solely through the toolbar, and hiding the menu bar by default. Such programs include Windows Explorer, Windows® Internet Explorer®, Windows Media® Player, and Windows Photo Gallery.

Speaking personally, I think toolbars (if present) should be a subset of the menus, not an overlapping (or totally different) set. In addition to the fact that experienced users walk the menus to find application functionality, consider the accessibility of your toolbar: some users won't be able to make out your icons at 16x16px, and even if they can, the icons you chose might not be as intuitive as you thought. If understanding your icon is the only way to use that functionality, some of your users won't be able to.

  • I like this part: "good toolbars provide efficiency and good menu bars provide comprehensiveness"
    – JOG
    Dec 19 '12 at 13:13

I'm looking for solid grounds to argue my point with the developer team, can you provide any guidance?

Assuming people on this site agree with you, which I don't.

I think that the functionality that your application delivers, should be accessible via the menu. That is the entire point of a menu.

A toolbar is just a subset of the most used functions in your system for easy access.

  • I also agree with the team, for accessibility reasons.
    – jezmck
    Jul 17 '12 at 13:41
  • 1
    I'm actually saying that all items in the toolbar should live also in the menu... why don't you agree?
    – edgarator
    Jul 18 '12 at 0:09
  • Your question reads as if you want to have commands on the toolbar that are not accessible in the menu, which is the opposite of what you meant. If you want to convince the team, just use the argument about the purpose of a menu and toolbar. Do they have a reason not to agree with you?
    – Jeroen
    Jul 18 '12 at 7:32

Your Answer

