Keep keyboard focus inside open dialogs
Maintainers usually reply within 1 day
@100rabheimer is already working on this.
Since Oct 22, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 88/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, react
- Domain
- accessibility, frontend
Research direction
Start with the Modal component at the top of client/src/pages/Tasks.jsx and inspect its existing Esc key handler and how the New, Edit, and Delete dialogs render their controls. Use the keyboard steps in the issue to check focus on open, Tab and Shift+Tab cycling, and focus return after each close path. Done means all acceptance criteria pass without adding dependencies.
Written by the indexing model from the issue text.
Description
Context
The New Task, Edit Task and Delete Task dialogs close with Esc (#45), but keyboard focus doesn't follow them. When a dialog opens, focus stays on the button behind it. Pressing Tab moves through the page behind the dialog. When it closes, focus is lost instead of going back to the button that opened it.
All three dialogs use the same Modal component, so the fix only needs to happen in one place.
Files likely involved
client/src/pages/Tasks.jsx(theModalcomponent at the top)
Acceptance criteria
- When a dialog opens, focus moves into it: the first field for New/Edit, the Cancel button for Delete.
- Tab and Shift+Tab cycle through the dialog's buttons and fields only, and never reach the page behind it.
- When the dialog closes (×, Cancel, Esc, backdrop or saving), focus goes back to the element that opened it.
- No new dependencies. A
useRefand akeydownhandler next to the existing Esc handler are enough.
How to test
- Using only the keyboard, Tab to New Task and press Enter: the cursor is in the Title field.
- Keep pressing Tab: focus cycles inside the dialog. Shift+Tab goes backwards.
- Press Esc: focus is back on New Task.
- Repeat with a task's Edit and Delete buttons.
New here? 👋 Good first issues are reserved for people making their first few open-source contributions. Comment below to ask to work on this issue, and wait to be assigned. Then follow CONTRIBUTING.md for setup and how to open a pull request. Questions are welcome in the comments or in Discussions.
- Dominant language
- JavaScript
- Stars
- 3
- Forks
- 2
- Avg merge
- 13h 11m
- Merged PRs (30d)
- 43
Getting set up
- No Dockerfile or Docker Compose file
- Has a 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 KEX-03/taskflow
-
Due dates (3/3): highlight overdue tasksPossibly taken @maansi1004 claimed this 9 days ago. Opendifficulty: medium enhancement frontend hacktoberfest help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
KEX-03/taskflow#70 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Warn users when selecting past due datesPossibly taken @the-coder-aadi claimed this 9 days ago. Openenhancement frontend
KEX-03/taskflow#94 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
-
Board view (2/2): move tasks between columnsPossibly taken @damirgros claimed this 4 days ago. Opendifficulty: medium enhancement frontend hacktoberfest help wanted
Difficulty 3/5 1-2 days Newbie friendliness 68/100
KEX-03/taskflow#77 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Board view (1/2): show tasks as a Kanban boardPossibly taken @Korale05 claimed this 6 days ago. Opendifficulty: medium enhancement frontend hacktoberfest help wanted
Difficulty 3/5 1-2 days Newbie friendliness 82/100
KEX-03/taskflow#76 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Light theme (3/3): add a light theme and a theme togglePossibly taken @gracysinngh claimed this 4 days ago. Opendifficulty: medium enhancement frontend hacktoberfest help wanted
Difficulty 4/5 3-5 days Newbie friendliness 56/100
KEX-03/taskflow#73 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
riverqueue/river#1576 ·
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 1/5 Under an hour Newbie friendliness 88/100
modrollstudio/Modroll-Studio-Website#80 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
mafzalkalwardev/mailforge#21 ·
-
good first issue help wanted
Difficulty 1/5 Under an hour Newbie friendliness 82/100