Keyboard
Everything here works from the keyboard, with or without JavaScript. Nothing needs a mouse, nothing needs a drag, and no shortcut overrides Tab, the arrow keys, or the keys a screen reader uses to move around a page.
The basics
- Tab and Shift + Tab move between controls, in the order they appear.
- The first Tab on any page reveals a Skip to the cap table link.
- Enter in any text field recalculates. It never deletes a row.
- The results table is a scroll region you can tab into and scroll with the arrow keys.
The vim layer
Every row in the editor starts with a handle — the button. While focus is on one of those handles, and only then, these shortcuts are live. That is the whole safety argument: a page that captured single letters at the document level would swallow the single-letter navigation screen readers rely on, whereas a shortcut that is active on focus cannot.
Press Tab from a handle and you are in the row's fields, where every key types what you would expect.
- j / k
- Next and previous row.
- gg / G
- First and last row.
- o
- Add a row below the current one.
- dd
- Remove the current row. Always undoable.
- u
- Undo.
- ?
- Show this list in a dialog.
The layer never acts while the caret is in a text field, while a modifier key is held, or while an input method is composing, and it never repeats a destructive key that is being held down. Every action it takes moves focus somewhere real and says what happened, so pressing dd is never silent.