Keyboard
Every key this site listens for. Where the specification asks for a key that is not implemented, it says so rather than listing it as though it worked.
Anywhere
| Tab | Move to the next control. The first stop on every page is a skip link. |
|---|---|
| EnterSpace | Press the focused control. On a stage bar, open or close that stage. |
| Escape | Close the open panel. A second press closes the open stage. |
The machine
The map is the primary object, so this is the key map that matters most. Focusing a part does everything hovering it does: there is no hover-only state anywhere on it.
| Tab | Between the five stage bars. |
|---|---|
| EnterSpace | Open the focused stage, or close it again. |
| Tab | Into the parts of an open stage. |
| Enter | Select a part. Its panel opens beside the map. |
| Escape | Close the panel, then the stage. |
Inside an interaction
Every interaction is reachable and operable, and every one carries a text equivalent that needs no pointer at all. The arrow-key grammar below is implemented in some and specified for the rest.
| LeftRight | Move along the main axis: token, step, item, layer. |
|---|---|
| HomeEnd | Jump to the first or last element. |
| Tab | Into and out of a scrollable pane, so it can be scrolled without a mouse. |
| UpDown | Move along a second axis where one exists. not yet, in most interactions |
| Space | Play or pause a running simulation. not yet, in most interactions |
| R | Reset an interaction to its opening state. not yet, in most interactions |
What this site will not do
- A keyboard trap: every region can be left with Tab or Escape.
- A positive tabindex, which would reorder the page for keyboard users only.
- A suppressed focus ring. A test fails the build if any control loses one.
- An interaction that needs a drag. Every slider is a native range, and every hover has a button that does the same thing.
- A shortcut that collides with a screen reader’s own keys.
Where this is short
The arrow-key grammar is not yet uniform across all twenty-seven interactions, and no session has been run with a screen reader user or a keyboard-only user. Automated checks find violations; only people find the places where a page is technically conformant and still unusable. Until those sessions happen, this page describes an intention as much as a result.