Keyboard Support

This document provides information about the requirements to make UIs compliant with the keyboard accessibility guidelines.

The first section of this documents contains a list of "definition of done" checklist items, which developers and designers can reference to make the UI compliant. The second section of this document explains these checklist items in detail.

Checklist

Use these "definition of done" checklists to make the UI compliant with the keyboard accessibility guidelines. Related checklist items are grouped together for easier understanding.

1. Tab Chain

The screen has a “tab chain” and the focus can be moved between elements on the page with keyboard controls.

Checklist
"Page contains “tab chains” and elements can be focused by keyboard controls”
“Elements in the “tab chain” are grouped and these groups can be navigated with keyboard controls”
“Tab chains are expanded with static content for extra accessibility”
"Focus can be moved inside to elements with embedded navigation options by using keyboard controls”
“Focus can be moved inside the elements of a container by using keyboard controls”
“Selection in lists and grids can be made using keyboard controls”
"Complex layouts can be navigated with tab and arrow keys”
"Complex components can be navigated by keyboard controls”

2. Item Actions

Elements can be interacted with using keyboard controls.

Checklist
“Elements with actions can be triggered by keyboard controls”
"Selection inside a grid-like interface is supported by keyboard controls”
“The selected value of list-based inputs can be changed without opening the list, with keyboard controls”
“Expandable-collapsible elements can be opened and closed with keyboard controls”
“Tooltips can be displayed or hidden with keyboard controls”
"Drill down details for an element can be accessed with keyboard controls”
“Contextual menus can be operated with keyboard controls”
“Deletable items can be deleted using keyboard controls”
"List of properties for objects can be edited with keyboard controls”

3. Text Editing

Elements with text editing can be used with keyboard controls

Checklist
"Text cursor can be moved with keyboard controls”
“Editable elements can be edited using only keyboard controls”
“Text editors in the UI support paragraph-navigation with keyboard controls”
"Text inputs that require specific case (uppercase, lowercase) are automatically formatted”

4. Navigation

Pages can be navigated with the keyboard

Checklist
“Multi-step interfaces can be navigated with keyboard controls”
“Dialogs can be cancelled or accepted by keyboard controls”
"Floating elements can be closed with Escape key”
“Pagination component can be interacted with using keyboard controls without moving the focus on it”

5. Scrolling and Zooming

Scrolling, panning, and zooming can be done with keyboard

Checklist
“The layout adapts to resizing and zooming.”
"Scrollable containers can be scrolled using keyboard controls”
"Pages and canvases can be zoomed using keyboard controls”
“Draggable canvases can be navigated with keyboard controls”

6. Special

Miscellaneous use-cases for keyboard controls

Checklist
“Media players support keyboard controls”
"Scrubbing interface can be accessed with keyboard controls"

Details

More detailed explanations of the checklist items.

“Selection in lists and grids can be made using keyboard controls”

Move the focus state of items in lists (e.g. select) and grids (e.g. calendar) with the arrow keys (up, down, left, right), and other navigation keys (home, end)

Key Actions
Left arrow Move focus backwards, to left
Right arrow Move focus backwards, to left
Up arrow Move focus backwards, upward
Down arrow Move focus backwards, downward
Home Move focus to first item
End Move focus to last item
Ctrl + Home Same as Home Advanced
Ctrl + End Same as End Advanced
Ctrl + Left arrow Move focus to previous group Advanced
Ctrl + Right arrow Move focus to next group Advanced

“Complex layouts can be navigated with tab and arrow keys”

Expands classic “tabbable” navigation scheme with arrow keys in certain use cases, e.g. in tile lists, action buttons in a table, cascading menus.

“Tab chains are expanded with static content for extra accessibility”

Making non-interactive items “tabbable” so they can be interacted with using the keyboard. This is good for screen-readers.

“Elements with actions can be triggered by keyboard controls”

Triggering the focused element’s function in the case of buttons, links, menus and menu items, etc.

Keys Actions
Spacebar or Enter Activate UI element
Hold Spacebar Recurring activation
Escape while Spacebar is pressed Cancel activation
Enter Activates the default button in a dialog

Interacting with links:

Mouse Keys Actions
Left click Enter Open link in same window
Shift + left click Shift + Enter Open link in new window
Ctrl + left click Ctrl + Enter Open link in new tab

“Text cursor can be moved with keyboard controls”

Move the cursor in a text box with the Arrow keys, Home and End keys, and Ctrl + Left arrow and Ctrl + Right arrow keystrokes (i.e. word step).

“Pagination component can be interacted with using keyboard controls without moving the focus on it”

Paginate without having to select the pagination controls, e.g. in datagrids.

Keys Actions
Ctrl + PageUp Previous page
Ctrl + PageDown Next page

“Deletable items can be deleted using keyboard controls”

Use cases: Input fields (text input, number input, date input, etc.), Select, Multiselect

Keys Actions
Delete or Numpad Delete Deletes selected items or character after the cursor
Backspace Deletes selected items or character before the cursor

“Drill down details for an element can be accessed with keyboard controls”

Access further options for a focused element, e.g. file lists.

Keys Actions
Double click = F2 Activates UI element action, usually the same as hitting the Enter key
Extra double click = F2F2 On editable cells the first keystroke invokes editing, the second starts underlying functions
Enter start an underlying action / dialog, usually the same as double click, usually first menu item in context menu
Alt + Enter open properties dialog, usually last menu item in context menu

“Floating elements can be closed with Escape key”

Returns to a “safe state” by hitting the Escape key, e.g. cancelling dialogs, closing popover lists and panels.

“Focus can be moved inside to elements with embedded navigation options, using keyboard controls”

Automatically switching the focus when the user navigates into a child element.

  • Window / page: default focus location (if there’s any), or last focus location.
  • Dialog: first interactive element, or the first defined autofocus element.
  • Containers: first interactive element, or the first defined autofocus element.
  • List-like elements: first item.

“Focus can be moved inside the elements of a container by using keyboard controls”

Automatically switching the focus to a child element when the user navigates into a container.

“Editable elements can be edited using only keyboard controls”

Users can apply changes to elements in focus.

Explicit manipulation: the user has to switch to “edit mode” by pressing F2 or Enter before they can edit the content of the element, e.g. datetime picker.

Implicit manipulation: the user can edit the content of the element in focus without switching to an “edit mode”, e.g. text input field.

Accept changes: F2, Enter, Tab.

Revert changes: Escape. Undo and redo should be implemented.

Keys Actions
Enter End inplace editing, accept changes made.
Tab End inplace editing, accept changes made.
Delete Delete character after cursor.
Backspace Delete character before cursor.
Escape End inplace editing, revert changes.
F2 Invoke inplace editing.
Left arrow If the first character, end inplace editing, go to the previous element.
Right arrow If at last character, end inplace editing, go to the next element.

“The layout adapts to resizing and zooming.”

Create layouts which avoid unnecessary scrollbars and create controls that dynamically adapt to a given size by reordering and resizing.

Use cases: Zooming, Resizing, Toggle full screen, Close view, Moving elements

Controls:

  • Click, drag, release (wait, attach)
  • Horizontal scrollability controls: Alt+PageUp, Al+PageDown

Layout rules:

  • Outer size of a component defines the inner size
  • Controls adapt to the given size by using: Truncation, scrolling, panning and zooming
  • Adapt a layout policy for resizing based on constraints or percentages, auto-resizing, min and max size variables, dynamic whitespaces

Rules for resizing:

  • Provide affordance for resizable elements
  • Avoid scrollbars wherever possible, especially horizontally.
  • Retain focus when scrolling
  • Support scrolling or an overflow mechanism for every control
  • Every scrollable control provides scrollability by clicking in the background area

“Media players support keyboard controls”

Use shortcuts to control video and music playback.

Keys Actions
Spacebar or P Play / pause
+ Increase volume
- Decrease volume
Ctrl + Home Jump to beginning of playback
Ctrl + End Jump to end of playback
PageDown Next chapter
PageUp Previous chapter
Left arrow Previous frame
Right arrow Next frame
Alt + Enter or Ctrl + I Switch full screen
M or Ctrl + M Mute / unmute
R or Ctrl + R Cycle thru aspect ratio
C or Ctrl + C Cycle thru clipping configurations
Ctrl + , or Ctrl + P Open preferences for the media playback
Ctrl + I Open properties for the media playback

“Pages can be zoomed using keyboard controls”

Zoom the page using the keyboard. Zoom should follow the cursor when possible (e.g. in AC canvas).

Keys Actions
Ctrl + Numpad Enter or Alt + Ctrl + 0 Default zoom level
-, Ctrl + Numpad -, or Ctrl + - Zoom out one level
+, Ctrl + Numpad +, or Ctrl + + Zoom in one level
Alt + Ctrl + [1-9] Zoom to specific level

“Page contains “tab chains” and elements can be focused by keyboard controls”

Elements are “tabbable”, and a “tab chain” exists on the page. Generally, a “tab chain” should be structured the way we read: from left to right, then the next line.

“Tab chain” modes:

  • Non-accessibility mode: does not contain inactive elements, static elements
  • Accessibility mode: contains inactive elements, description of static elements, images (with alt text)

Tabbing in scrollable containers: Scrollable containers should be automatically scrolled so the elements in focus are visible to the user (i.e. in the viewport).

Keys Actions
Tab Move focus forward
Shift + Tab Move focus backward
Shift + Ctrl + B Move focus to the previous element, even if it’s only accessible in the accessibility mode tab chain Advanced
Shift + Ctrl + N Move focus to the next element, even if it’s only accessible in the accessibility mode tab chain Advanced
Right Alt + Tab Move focus to the next element, which is usually not in the tab chain Advanced

“Complex components can be navigated by keyboard controls”

Make complex components “tabbable”, e.g. calendars, toolbars.

Moving the focus in “composites” is usually directional, so a regular “tab chain” can be applicable within a component.

Controls:

  • Move the focus by using Tab, Shift + Tab, and Arrow keys.

“Contextual menus can be operated with keyboard controls”

Menu with additional contextual functions for an item (where available). These menus are usually accessible by right clicking.

Keys Actions
ContextMenu key Open context menu of focused element
Shift + F10 Open context menu of focused element
Escape Close menu
Enter Open menu
Left arrow, Right arrow Open or close menu
Up arrow, Down arrow Move focus on elements
Enter Activate item in focus
Ctrl + ContextMenu key, Ctrl + Shift + F10 Open expanded context menu, showing additional functionality Advanced
Alt + ContextMenu, Alt + Shift + F10 Open alternate context menu (e.g. context menu of the environment) Advanced
[Any key], Alt + [Any key] Quickly move focus to the matching item label, e.g. hit “P” to select item named “Properties” Advanced

“Dialogs can be cancelled or accepted by keyboard controls”

Closes dialog by either cancelling or accepting its contents.

Keys Actions
Enter Accept and close dialog
Escape Cancels and close dialog
Ctrl + W Cancels if content is unchanged, accept if content is changed. (This probably only works in standalone windows opened by JavaScript, as Ctrl + W is used by the web browser)
Alt + [Shortcut key] The button shortcut is visible to the user in the dialog (e.g. underline shortcut letter in the button label) Advanced

“Expandable elements can be opened and closed with keyboard controls”

Open and close expandable elements, e.g. accordions, tree view.

Keys Actions
Right arrow Expand element and move focus to first child element
+ or Numpad + Expand element. Doesn’t move focus
Left arrow Collapse element and move focus to the parent element
- or Numpad - Collapse element. Doesn’t move focus
Ctrl + Numpad + In table, expand element. Doesn’t move focus. Advanced
Ctrl + Numpad - In table, collapse element. Doesn’t move focus. Advanced
Ctrl + F11 Expand Advanced
Shift + Ctrl + F11 Collapse. Advanced
Numpad * Toggle expand / collapse all tree items beyond the currently focused item. Advanced
Ctrl + F12  Expand all tree items beyond the currently focused item. Advanced
Shift + Ctrl + F12 Collapse all tree items beyond the currently focused item. Advanced

“Selection inside a grid-like interface is supported by keyboard controls”

Select items in a grid, e.g. tables, block editors.

Keys Actions
Ctrl + Space or Alt + Ctrl + Space Select the complete column in which the focus is located
Shift + Space Select the complete row in which the focus is located.
Ctrl + mouse click Select range  Advanced
Ctrl + A, or Shift + Ctrl + A Deselect all selected items. Toggle or explicit keystroke via Shift modifier key  Advanced
Shift + Ctrl + A, or Ctrl + D Deselect all selected items  Advanced
Left Remove the previously defined selection  Advanced
Ctrl + Space Toggle selected row  Advanced
Ctrl + A Select all items  Advanced
Shift + Ctrl + Space, or Ctrl + A Select the whole grid content  Advanced
Shift + Left Select a range of items  Advanced

“Elements in the “tab chain” are grouped and these groups can be navigated with keyboard controls”

Make tabbable groups in the “tab chain”. Groups are collections of contextually similar elements, e.g. “sections” in a form.

Keys Actions
Ctrl + Tab, or F6  Move focus to the next group.
Ctrl + Shift + Tab, or Shift + F6 Move focus to the previous group.
Alt + Home Move focus to first element in group.  Advanced
Alt + End Move focus to last element in group. Advanced

“Tooltips can be displayed or hidden with keyboard controls”

Tooltips can be displayed or hidden with keyboard controls.

Keys Actions
Shift + Ctrl + I Displays the tooltip for the element in focus. Advanced
Shift + Ctrl + I, or Escape Hides the tooltip for the element in focus. Advanced

“Text inputs that require specific case (uppercase, lowercase) are automatically formatted”

Text inputs help users by automatically formatting values in the right case (lowercase or uppercase) as the user types. E.g. serial number text input that requires value in all uppercase.

“Scrollable containers can be scrolled with keyboard control”

Keys Actions
Arrow keys Scrolling in a specific direction
Spacebar, Shift + Spacebar Scrolling up and down

“Lists or groups of graphical elements can be selected or multi-selected and be simultaneously edited.”

Graphic elements can be navigated with keyboard controls, e.g. charts.

Keys Actions
Shift + Tab Focus previous element
Alt + Enter Display properties or view
Arrow keys Move element(s)
Ctrl + Arrow keys Move element(s) one pixel
Tab Focus next element
Shift + Left Reduces or enlarges width
Shift + Ctrl + Left Reduces or enlarges width by one pixel
Shift + Up Reduces or enlarges height
Shift + Ctrl + Up Reduces or enlarges height by one pixel
F2 Inline edit the element
Ctrl + A Select all elements
Escape Get out of inline editing

“Draggable canvases can be navigated with keyboard controls”

Pannable canvases can be navigated with keyboard controls, e.g. AC / RTI canvas, Google Maps embed.

Keys Actions
Arrow keys fast directional scrolling
Alt + Enter, or Ctrl + Enter Scroll back to initial view Advanced
Alt + PageDown Scroll one page right Advanced
Alt + PageUp Scroll one page left Advanced
PageDown Scroll one page down Advanced
PageUp Scroll one page up Advanced
Ctrl + Down Scroll one step or px down Advanced
Ctrl + Up Scroll one step or px up Advanced
Ctrl + Right Scroll one step or px right Advanced
Ctrl + Left Scroll one step or px left Advanced

“Text editors in the UI support paragraph-navigation with keyboard controls”

Jump between paragraphs (, chapters, segments, or clusters). Applicable in text editors.

Keys Actions
Ctrl + Up Arrow Move cursor to previous paragraph.
Ctrl + Down Arrow Move cursor to next paragraph.
Ctrl + Left Arrow Jump to previous visual area. Advanced
Ctrl + Right Arrow Jump to next visual area. Advanced

“List of properties for objects can be edited with keyboard controls”

Edit an attribute in a list of properties for an object, e.g. chart.

Keys Actions
Down Arrow Move focus below.
Up Arrow Move focus above.
Tab Move focus to next property element.
Shift + Tab Move focus to previous property elements.

“Scrubbing interface can be accessed with keyboard controls”

Show preview while pointing to a certain place or index element in a huge set of items e.g. thumbnail in galleries or time lines, preview of items in a long list. The selection can also be triggered with clicking or releasing.

“The selected value of list-based inputs can be changed without opening the list, with keyboard controls”

Sequence quick access enables users to manipulate the selected option in a list-type input (e.g. select) without opening the popover list.

Keys Actions
Left Arrow select previous item
Right Arrow select next item

“Multi-step interfaces can be navigated with keyboard controls”

Wizards (multi-step dialogs and pages, e.g. tactics dialogs, VCE page) can be navigated with keyboard controls.

Page types:

  • Mandatory pages: contain required field.
  • Optional pages: only contain optional fields, these steps can be skipped.
Keys Actions
Enter Navigates to the next page (in a multi-step dialog or in a multi-step form).
Escape Cancels wizard and closes dialog.
Shift + Enter Navigates to the previous page. Advanced
Ctrl + Enter Finish, skipping optional pages. Advanced
Alt + Right Arrow Navigates to the next page. Advanced
Alt + Left Arrow Navigates to the previous page. Advanced