Skip to content

Move questions by keyboard, menu and drag (BITS-282 part c) - #275

Closed
PhilReinking wants to merge 11 commits into
feat/bits-282b-outline-phonefrom
feat/bits-282c-keyboard-move
Closed

PhilReinking wants to merge 11 commits into
feat/bits-282b-outline-phonefrom
feat/bits-282c-keyboard-move

Conversation

@PhilReinking

Copy link
Copy Markdown
Contributor

Part c of the form document: move questions by keyboard, menu and drag. Stacked on #272, so this PR shows only part c.

Part of BITS-282

  • Alt+Up/Down moves the focused question or group; a live region says "Moved to position 3 of 32". Focus stays put.
  • A question steps into a group next to it and out at its ends: the keyboard and phone way into a group. Designer, please check.
  • Menu: Move up and Move down, off at the very top and bottom. The phone's way to move (no grip below 640 px).
  • Escape closes the open question, focus goes back to its row. Alt+Up/Down also moves a choice.
  • The outline scrolls to the open question.
  • Fix: tooltips took the focus, so a card opening under the mouse lost the cursor in its text.

Tested: vitest, lint, vue-tsc, build locally (no CI, stacked); new tests fail without the change. By hand at 1440, 1024, 390, 360, incl. drag with auto-scroll.

Not tested: a screen reader, Safari, Firefox, a real phone.

🤖 Generated with Claude Code

PhilReinking and others added 10 commits October 13, 2026 02:23
A question steps into a group next to it and out at its ends; a group
steps over a whole block. A polite live region says the new position.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…h Escape

Escape gives focus back to the question's row. A key a select or menu
inside the card already handled stays theirs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The way to move on a phone, where there is no grip, and for anyone who
can't drag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Also when the outline opens as a panel on a tablet or phone.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Focus stays on the moved choice and the live region says its new place.
The question around it doesn't move as well.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
floating-vue focuses every popper it shows. A card that opens under the
mouse showed a toolbar tooltip, which took the cursor out of the
question text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ProseMirror cancels every Escape, so the card took it as handled.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@PhilReinking PhilReinking left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK at c457846. No CI (stacked): Vitest 317, lint, vue-tsc and the build pass locally. 9 new tests fail on 711992e.

In a browser, a question moved into and out of a group, a group and a choice all kept their order after a reload, also with 6 fast Alt+Down presses. Moves send the same order as a drag. Esc right after typing saves the text. Esc in a select closes only the select.

@PhilReinking PhilReinking left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK at 794c36a (part b merged in). No CI (stacked), local runs: Vitest 356, lint, vue-tsc, build. The diff without CHANGELOG.md differs from the reviewed one only in context lines next to part a's delete step.

@PhilReinking

Copy link
Copy Markdown
Contributor Author

Landed in main with #282 (the editor rebuild as one PR); this PR's commits are part of it.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant