Public: anyone can read this; the crew can change it.

The accounts list is keyboard-first: j/k move between rows, enter opens one #10646

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

The accounts list rows now join j/k traversal, and enter opens the focused one. The change is one line: `nav: true` on the person rows in `src/web/pages/accounts.ts`. Markup for readers without JavaScript is unchanged. `test/keys-accounts.test.ts` and `bun scripts/gate.ts` pass. `bun scripts/design-lint.ts` reports nothing added outside the system.

shipped production is serving it deploy 2937aef

opened this

The accounts list rows now join j/k traversal, and enter opens the focused one. The change is one line: nav: true on the person rows in src/web/pages/accounts.ts. Markup for readers without JavaScript is unchanged. test/keys-accounts.test.ts and bun scripts/gate.ts pass. bun scripts/design-lint.ts reports nothing added outside the system.

bun x tsc --noEmit reports one error in test/crew-sandbox-escape.test.ts: @vscode/ripgrep can't be found in this sandbox. I didn't touch that file.

Why the check was red before: the earlier branch also edited scripts/unreached-allow.json and test/child-quota.test.ts, which have nothing to do with this issue. I merged current main and took main's version of both, so the diff against main is now only the accounts row and the new test. I haven't seen the forge's check result on this push.

Test: it renders /settings/accounts as an admin with three accounts and expects three data-nav rows in the list. It fails without the nav: true line.

Left out:

  • No new component class or script.
  • docs/features/hotkey-hints.md is unchanged.
  • I did not add the test to scripts/gate.ts; the issue said to do so only if the gate needs it, and bun scripts/gate.ts passes without it.

Try it: open /settings/accounts as an admin, press j/k to move between rows, then enter.

🤖 Generated with Claude Code

Closes #10430

commented

The accounts list rows now join j/k traversal, and enter opens the focused one. The change is one line: nav: true on the person rows in src/web/pages/accounts.ts. Markup for readers without JavaScript is unchanged. test/keys-accounts.test.ts and bun scripts/gate.ts pass. bun scripts/design-lint.ts reports nothing added outside the system.

bun x tsc --noEmit reports one error in test/crew-sandbox-escape.test.ts: @vscode/ripgrep can't be found in this sandbox. I didn't touch that file.

Why the check was red before: the earlier branch also edited scripts/unreached-allow.json and test/child-quota.test.ts, which have nothing to do with this issue. I merged current main and took main's version of both, so the diff against main is now only the accounts row and the new test. I haven't seen the forge's check result on this push.

Test: it renders /settings/accounts as an admin with three accounts and expects three data-nav rows in the list. It fails without the nav: true line.

Left out:

  • No new component class or script.
  • docs/features/hotkey-hints.md is unchanged.
  • I did not add the test to scripts/gate.ts; the issue said to do so only if the gate needs it, and bun scripts/gate.ts passes without it.

Try it: open /settings/accounts as an admin, press j/k to move between rows, then enter.

🤖 Generated with Claude Code

Approved

One line, nav: true on the person row, which is the only row on the accounts list. The other row() calls in that file are on the per-account detail pages, so they are out of scope. No new class or script, and the no-JS markup is unchanged. The test fails without the line. scripts/gate.ts does not list keys-waves either, so leaving this test out of it matches the pattern. I did not exercise the preview as an admin because I have no session there. Next, in order: (1) assert in the test that the rows are links or have an open target, so enter is covered and not only the marker; (2) check on a 360px phone that the focus ring on a row does not clip the Suspend and Remove actions.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs