Menu

Menus are multi-level navigational components that organize hierarchical data into selectable items.

Accessibility Support

Out of the box, the Telerik and Kendo UI Menu provides extensive accessibility support and enables users with disabilities to acquire complete control over its features.

The Menu is compliant with the Web Content Accessibility Guidelines (WCAG) 2.2 standards and Section 508 requirements, follows the Web Accessibility Initiative - Accessible Rich Internet Applications (WAI-ARIA) best practices for implementing the keyboard navigation for its component role, provides options for managing its focus and is tested against the most popular screen readers.

WAI-ARIA

This section lists the selectors, attributes, and behavior patterns supported by the component and its composite elements, if any.

SelectorAttributeUsage
.k-menu:not(.k-context-menu)role=menubarAnnounces the Menu menubar role
.k-menu.k-menu-verticalaria-orientation=verticalAnnounces the Menu orientation when vertical.
.k-menu-itemrole=menuitemAnnounces the Menu item role.
tabindex=0/-1The focused item has tabindex '0', the rest - '-1'
.k-menu-item[aria-expanded]aria-haspopup=trueIndicates that there is a popup, associated with the item. Applicable to expandable items only.
.k-menu-item[aria-haspopup]aria-controls=ul.k-menu-group idIndicates that there is a popup, associated with the item. Applicable to expandable items only.
.k-menu-item[aria-haspopup]aria-expanded=true/falseIndicates whether the item is expanded.
.k-menu-item.k-disabledaria-disabled=trueInforms assistive technologies that a Menu item is disabled.
.k-menu-expand-arrowaria-hidden=trueThe Menu item expand arrow elements are hidden from the assistive technologies.
.k-menu-popup .k-menu-grouprole=menuThe role of the nested (not root-level) menu displayed in a popup.
idEach nested menu has a deterministic id attribute that is linked to the aria-controls attribute ot its parent.

Managing the Focus

Roving tab index components strategy implemented. Meaning that only one node has tabindex in the menu. Interaction on a menuitem should focus it.

Keyboard Shortcuts

Actions applied to the Horizontal Menu:

ShortcutBehavior
Up Arrow
  • (For root items) Opens the item and focuses the last child.
  • (For child items) Focuses the previous item.
Down Arrow
  • (For root items) Opens the item and focuses the first child.
  • (For child items) Focuses the next item.
Left Arrow
  • (For root items) Focuses the previous item.
  • (For child items) For direct children of a root item, focuses and opens the previous root item. Otherwise, closes and focuses the parent.
Right Arrow
  • (For root items) Focuses the next item.
  • (For child items) If the item has children, opens the item and focuses the first child. Otherwise, focuses and opens the next root item.
HomeFocuses the first item.
EndFocuses the last item.
EnterSelects the focused item. If the item has children, opens the item and focuses the first child. If the item does not have children and has a URL, navigates to the specified URL.
SpaceSelects the focused item. If the item has children, opens the item and focuses the first child. If the item does not have children and has a URL, navigates to the specified URL.
Escape(For child items) Closes and focuses the parent.
Alphanumeric characterFocuses the next item with text starting with the character.

If the Menu is vertical, the arrow keys perform the following actions:

ShortcutBehavior
Up ArrowFocuses the previous item.
Down ArrowFocuses the next item.
Left Arrow
  • (For root items) opens the item and focuses the last child.
  • (For child items) closes and focuses the parent.
Right ArrowIf the item has children, opens the item and focuses the first child. For child items without children, focuses and opens the next root item.

Testing

The Menu has been extensively tested automatically with axe-core and manually with the most popular screen readers.

Screen Readers

The Menu has been tested with the following screen readers and browsers combinations:

EnvironmentTool
FirefoxNVDA
ChromeJAWS
Microsoft EdgeJAWS

Resources

Feedback