Make the studio fully operable without a mouse
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 68/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- css, html, javascript
- Domain
- accessibility, frontend
Research direction
Start with the listed sections in web/index.html, web/app.mjs, web/app.css, and README.md. Read the existing tab, radiogroup, scene list, layer controls, and global key handler, then run the app and inspect keyboard behavior. Done means the requested keyboard patterns and scene/layer controls work, focus is visible, shortcuts are limited to body or viewer focus, and the README Keys row is updated; run npm test and npm run check.
Written by the indexing model from the issue text.
Description
The README's "Using the studio" table describes several interactions that only work with a pointer, and the global shortcut handler gets in the way of keyboard navigation:
- Scene reorder is drag-and-drop only (
ondragstart/ondropon the<li>). There is no keyboard alternative such as Alt+↑/↓ or move buttons. - Scene length on the timeline is a
pointerdown-only.handle. The Length field in the Scene tab is the only alternative, which is fine, but the handle should be hidden from assistive tech or be a proper slider. - Tabs and the Mode radiogroup have
role="tab"/role="radio"but no arrow-key behaviour, noaria-controls, and no rovingtabindex. - Arrow keys are hijacked. The document
keydownhandler treats ←/→ as frame-step and ↑/↓ as scene change whenever focus isn't in an input or a dialog. With focus on a tab, a radio, a scene card or a button, arrows scrub the playhead instead of moving within the widget. - Scene cards are
tabindex="0"<li>elements, but the:focus-visiblerule only coversbutton,input,selectandtextarea, so a focused card has no visible focus. - Only ↑ (Move up) exists for layers, so moving a layer down takes several up-moves on other layers.
Task:
- implement the WAI-ARIA tabs and radio-group keyboard patterns
- restrict the global ←/→/↑/↓ shortcuts to when focus is on the body or the viewer
- add keyboard scene reordering and a Move down button for layers
- add a focus style for
.scene-card - update the Keys row in the README
Where: web/index.html:33-36, web/index.html:80-87; web/app.mjs:147-168 (renderSceneList), web/app.mjs:181-189 (length handle), web/app.mjs:360 (layer Move up), web/app.mjs:628-632, web/app.mjs:642, web/app.mjs:646-654 (global keydown); web/app.css:37; README.md:141-143.
Getting started: Node 22, no npm install needed: git clone, npm start, open http://127.0.0.1:4520 in Chrome or Edge, and run npm test and npm run check before the PR. Comment here to claim it. Questions → Discord.
- Dominant language
- JavaScript
- Stars
- 42
- Forks
- 6
- Avg merge
- 12h 31m
- Merged PRs (30d)
- 3
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from blixvip/GenMotion
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
accessibility good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
documentation good first issue
Difficulty 1/5 1-3 hours Newbie friendliness 91/100
All issues in blixvip/GenMotion
Similar issues
-
status: ready
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
melodic-software/claude-code-plugins#14389 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Fei2411/DeepSeek-Bot#1194 ·