Skip to content
This repository has been archived by the owner on May 24, 2024. It is now read-only.

[spike] Keyboard usage in Terra #283

Open
ryanthemanuel opened this issue Jul 9, 2020 · 0 comments
Open

[spike] Keyboard usage in Terra #283

ryanthemanuel opened this issue Jul 9, 2020 · 0 comments

Comments

@ryanthemanuel
Copy link
Contributor

ryanthemanuel commented Jul 9, 2020

Overview

The purpose of this spike is to clearly document discussions about keyboard usage within Terra. The output of this will be documentation on the terra-ui site.

Definitions

  • keyboard accessibility - usage of the keyboard within and and amongst components to navigate and interact with the application solely via the use of a keyboard. See this for more reading but this includes things like:
    • focus indicators
    • navigation order
    • ensuring all components can be navigated to
    • interacting with components using standard shortcuts (e.g. tab for navigation, enter for pressing a button, spacebar for selecting a checkbox, escape to close a modal, etc.)
    • standard browser, OS, and screen reader shortcuts
  • keyboard shortcuts - super user custom shortcuts that allow quick access to certain actions or components. Examples include things like:
    • ctrl-a to add an allergy
    • ctrl-s to save a document
    • ctrl-d to discontinue an order

Discussions

Keyboard Accessibility

Terra will support keyboard accessibility in its components. All components are designed to have intuitive navigation order with tabs. For components where we need to intervene above and beyond browser defaults, we also support the standard shortcuts that can be used to interact with an element (e.g. spaces for checkboxes, escaping out of modals, etc.). We currently have a few gaps that we are aware of listed here (this is not meant to be an exhaustive list but rather meant to demonstrate that we flag things as we discover them):

Keyboard Shortcuts

Terra and the typical consumers at Cerner create components that are highly modular across and within multiple applications. Thus, it would be impossible for Terra to guarantee that if a short cut key is used in one component for one action it is not used for something else in a different component. In addition there are already baked in shortcuts for screen readers, operating systems, and browsers that can't be conflicted with. Due to these complexities, Terra does not provide a first class mechanism for creating custom shortcuts. We will, however, support standard shortcuts for browsers, operating systems, and screen readers.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.