Editor Menubar Example
    The following example demonstrates using the
    menubar design pattern
    to provide access to sets of actions.
    Each item in the below menubar identifies a category of text formatting actions that can be executed from its submenu.
    The submenus also demonstrate menuitemradio and menuitemcheckbox elements.
  
Similar examples include:
- Navigation Menubar Example: A menubar that presents site navigation menus.
Example
Accessibility Features
- Users of assistive technologies can identify which format settings are selected because they are represented by menu item radio and menu item checkbox elements that have a checked state.
- Disabled menu items are demonstrated in the font size menu, which includes two disabled menuitems .
- The down arrow and checked icons are made compatible with high contrast mode and hidden from screen readers by using the CSS contentproperty to render images.
Keyboard Support
Menubar
| Key | Function | 
|---|---|
| Space Enter | Opens submenu and moves focus to first item in the submenu. | 
| Right Arrow | 
 | 
| Left Arrow | 
 | 
| Down Arrow | Opens submenu and moves focus to first item in the submenu. | 
| Up Arrow | Opens submenu and moves focus to last item in the submenu. | 
| Home | Moves focus to first item in the menubar. | 
| End | Moves focus to last item in the menubar. | 
| Character | 
 | 
Submenu
| Key | Function | 
|---|---|
| Space Enter | Activates menu item, causing action to be executed, e.g., bold text, change font. | 
| Escape | 
 | 
| Right Arrow | 
 | 
| Left Arrow | 
 | 
| Down Arrow | 
 | 
| Up Arrow | 
 | 
| Home | Moves focus to the first item in the submenu. | 
| End | Moves focus to the last item in the submenu. | 
| Character | 
 | 
Role, Property, State, and Tabindex Attributes
Menubar
| Role | Attribute | Element | Usage | 
|---|---|---|---|
| menubar | ul | 
 | |
| aria-label="string"
               | ul | 
 | |
| menuitem | li | 
 | |
| tabindex="-1" | li | Makes the menuitemelement keyboard focusable but
              not part of the Tab sequence of the page. | |
| tabindex="0" | li | 
 | |
| aria-haspopup="true" | li | Indicates that the menuitemhas a submenu. | |
| aria-expanded="true" | li | Indicates the submenu is open. | |
| aria-expanded="false" | li | Indicates the submenu is closed. | 
Submenu
| Role | Attribute | Element | Usage | 
|---|---|---|---|
| menu | ul | 
 | |
| aria-label="string" | ul | Defines an acessible name for the menu. | |
| menuitem | li | 
 | |
| tabindex="-1" | li | Makes the item focusable but not part of the page tab sequence. | |
| aria-disabled="false" | li | Used on the font size "Smaller" and "Larger" options to indicate they are active. | |
| aria-disabled="true" | li | Used on the font size "Smaller" and "Larger" options to indicate one of the options is not active because the largest or smallest font has been selected. | |
| menuitemcheckbox | li | 
 | |
| tabindex="-1" | li | Makes the menuitemcheckbox focusable but not part of the page tab sequence. | |
| aria-checked="true" | li | 
 | |
| aria-checked="false" | li | 
 | |
| group | ul | 
 | |
| menuitemradio | li | 
 | |
| tabindex="-1" | li | Makes the menuitemradio focusable but not part of the page tab sequence. | |
| aria-checked="true" | li | 
 | |
| aria-checked="false" | li | 
 | 
Javascript and CSS Source Code
- CSS: menubarAction.css
- Javascript: MenubarAction.js
- Javascript: MenubarItemAction.js
- Javascript: PopupMenuAction.js
- Javascript: PopupMenuItemAction.js
- Javascript: styleManager.js
HTML Source Code