Anatomy of AI

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.