A menu bar is a graphical control element which contains drop-down menus.
The menu bar's purpose is to supply a common housing for window- or application-specific menus which provide access to such functions as opening files, interacting with an application, or displaying help documentation or manuals.
Menu bars are typically present in graphical user interfaces that display documents and representations of files in windows and windowing systems but menus can be used as well in command line interface programs like text editors or file managers where drop-down menu is activated with a shortcut or combination key.
Implementations
Through the evolution of user interfaces, the menu bar has been implemented in different ways by different user interfaces and application programs.
Macintosh
In the Macintosh operating systems, the menu bar is a horizontal "bar" anchored to the top of the screen.
In macOS, the left side contains the Apple menu, the Application menu (its name will match the name of the current application) and the currently focused application's menus (e.g. File, Edit, View, Window, Help).
On the right side, it contains menu extras (for example the system clock, volume control, and the Fast user switching menu (if enabled) and the Spotlight icon.
All of these menu extras can be moved horizontally by command-clicking and dragging left or right.
If an icon is dragged and dropped vertically it will disappear with a puff of smoke, much like the icons in the dock.
In the Classic Mac OS (versions 7 through 9), the right side contains the application menu, allowing the user to switch between open applications.
In Mac OS 8.5 and later, the menu can be dragged downwards, which would cause it to be represented on screen as a floating palette.
There is only one menu bar, so the application menus displayed are those of the application that is currently focused.
Therefore, for example, if the System Preferences application is focused, its menus are in the menu bar, and if the user clicks on the Desktop which is a part of the Finder application, the menu bar will then display the Finder menus.
Apple experiments in GUI design for the Lisa project initially used multiple menu bars anchored to the bottom of windows, but this was quickly dropped in favor of the current arrangement,http://www.folklore.org/images/Macintosh/polaroids/polaroids.14.jpg as it proved slower to use (in accordance with Fitts's law).
The idea of separate menus in each window or document was later implemented in Microsoft Windows and is the default representation in most Linux desktop environments.
Even before the advent of the Macintosh, the universal graphical menu bar appeared in the Apple Lisa in 1983.
It has been a feature of all versions of the Classic Mac OS since the first Macintosh was released in 1984, and is still used today in macOS.
Microsoft Windows
The menu bar in Microsoft Windows is usually anchored to the top of a window under the title bar; therefore, there can be many menu bars on screen at one time.
Menus in the menu bar can be accessed through shortcuts involving the Alt key and the mnemonic letter that appears underlined in the menu title.
Additionally, pressing Alt or F10 brings the focus on the first menu of the menu bar.
Linux and UNIX
KDE and GNOME allow users to turn Macintosh-style and Windows-style menu bars on and off.
KDE can have both types in use at the same time.
The standard GNOME desktop uses a menu bar at the top of the screen, but this menu bar only contains Applications and System menus and status information (such as the time of day); individual programs have their own menu bars as well.
The Unity desktop shell shipped with Ubuntu Linux from version 11.04 through 17.04 uses a Macintosh-style menu bar; however, it is hidden unless the mouse pointer hovers over it, similar to the Amiga example below.
Starting with 17.10, it defaults to the GNOME desktop environment, using its menu bar.
Other window managers and desktop environments use a similar scheme, where programs have their own menus, but clicking one or more of the mouse buttons on the root window brings up a menu containing, for example, commands to launch various applications or to log out.
Window manager menus in Linux are typically configurable either by editing text files, by using a desktop-environment-specific Control Panel applet, or both.
Amiga
right|frame|The menu bar of AmigaOS 3.1 in its default state, showing the screen title.
Shown here is the Workbench screen, which displays system information in its title.
right|frame|The menu bar of AmigaOS 3.1 in its opened state.
Holding the right mouse button down opens the menus in the menu bar, and releasing the button over a menu item selects that item.
Each application can have its own separate menus.
The Amiga used a menu-bar style similar to that of the Macintosh, with the exception that the machine's custom graphics chips allowed each program to have its own "screen", with its own resolution and colour settings, which could be dragged down to reveal the screens of other programs.
The title/menu bar would typically sit at the top of the screen, and could be accessed by pressing the right mouse button, revealing the names of the various menus.
When the right menu button was not pressed down, the menu/title bar would typically display the name of the program which owned the screen, and some other information such as the amount of memory used.
When accessing menus with right mouse buttons pressed, one could select multiple menu entries by clicking the left mouse button, and when right mouse button was released, all actions selected in the menus would be performed in the order they were selected.
This was known as multiselect.
The Workbench screen title bar would typically display the Workbench version and the amount of free Chip RAM and Fast RAM.
An unusual feature of the Amiga menu system was that the Workbench screen would display a "Workbench" menu instead of a "File" or "Apple" menu, while conforming applications would display "Project" and "Tools" menus (projects and tools being, respectively, the Amiga terms for what in other systems are called files or documents, and programs or applications).
Keyboard shortcuts could be accessed by pressing the "right Amiga" key along with a normal alphanumeric key.
(Some early keyboards had a Commodore key to the left of the spacebar instead of a "left-Amiga" key.)
The filled-in and hollowed-out designs, respectively, of the left- and right-Amiga (or Commodore and Amiga) keys are similar to the closed-Apple and open-Apple keys of Apple II keyboards.
NeXTstep
thumbnail|right|NeXTSTEP's menu implementation The NeXTstep OS for the NeXT machines would display a "menu palette", by default at the top left of the screen.
Clicking on the entries in the menu list would display submenus of the commands in the menu.
The contents of the menu change depending on whether the user is "in" the Workspace Manager or an application.
The menus and the sub-menus can easily be torn off and moved around the screen as individual palette windows.
Power users would often switch off the always-on menu, leaving it to be displayed at the mouse pointer's location when the right mouse button was pressed.
The same implementation is used by GNUstep and conforming apps, though applications written for the host operating system or another toolkit will use the menu scheme appropriate to that OS or toolkit.
Atari TOS
The TOS operating system for the Atari ST would display menu bars at the top of the screen like Mac OS.
Rather than being 'pulled-down' by holding the mouse button, the menu would appear as soon as the pointer was over its heading.
This was done to get around an Apple patent on pull-down menus.
RISC OS
In RISC OS, clicking the middle button displays a menu list at the location of the mouse pointer.
The RISC OS implementation of menus is similar to the context menus of other systems, except that menus will not close if the right mouse button is used to select a menu entry.
This allows the user to implement or try out several settings before closing the menu.
Ease-of-use
In both Microsoft Windows and Apple Macintosh operating systems, in other similar desktop environments and in some applications, common functions are assigned keyboard shortcuts (e.g. Control-C or Command-C copies the current selection).
Microsoft-style bars are physically located in the same window as the content they are associated with.
However, Bruce Tognazzini, former employee of Apple Inc. and Human–computer interaction professional, claims that the Mac OS's menu bars can be accessed up to five times faster due to Fitts's law: because the menu bar lies on a screen edge, it effectively has an infinite height — Mac users can just "throw" their mouse pointers toward the top of the screen with the assurance that it will never overshoot the menu bar and disappear.
This assumes that the desired menu is currently enabled, however.
If another application has "focus", the menu will belong to that application instead, requiring the user to check and see which menu is active before "throwing" the mouse, and often perform an extra step of focusing the desired application before using the menu, which is completely separate from the application it controls.
The effectiveness of this technique is also reduced on larger screens or with low mouse acceleration curves, especially due to the time required to travel back to a target in the window after using the menu.
On systems with multiple displays, the menu bar may either be displayed on a single "main" display, or on all connected displays.
The classic Mac OS, and versions of macOS prior to OS X Mavericks displayed only a single menu bar on the main display; Mavericks added the option to show the bar on all displays.
Some applications, e.g. Microsoft Office 2007, Internet Explorer 7 (by default), and Google Chrome and Mozilla Firefox 4 in Windows and Linux, have effectively removed the menu bar altogether by hiding it until a key is pressed (typically the "alt" key).
These applications present options to the user contextually, typically using hyperlinks to select actions.
See also
IBM Common User Access – the standard that defined several aspects of menu layout commonly used by Windows and several Linux desktop environments today.
Menu button – where a pop-up menu is beneath a button.
References
