Team Task Board
1Views0Likes0Comments
Submitted review
script.js:45 - The task count is not a unique ID. Delete any task except the last one, then add a task: the new ID can duplicate a remaining card’s ID. Menu actions use that ID, so moving or deleting one card can affect both. Keep a separate increasing ID or derive one above the current maximum.
script.js:92 - The overflow trigger is a div with only a click handler. Keyboard users cannot tab to it or open it with Enter/Space, and assistive technology gets no button name or expanded state. Render a labeled button and expose whether its menu is open.
script.js:111 - The Move and Delete choices are also divs, so even if someone could open the menu with a keyboard, they could not tab to or activate an action. Use real buttons for these choices (or implement complete menu keyboard behavior) so Enter and Space work and the actions are announced.
script.js:159 - Clicking outside a card menu sets openMenuCardId to null but leaves the menu in the DOM. It stays visible and its Move/Delete actions still work, so the menu never actually dismisses until another render. Re-render or remove the menu here.
script.js:165 - This keeps a reference to the original tasks array. Moving or deleting a task replaces tasks with a new array, but the assignee handler still filters this one. After a move or delete, changing Assignee can bring back an old card or show it in its former column. Read the current tasks when the filter changes.
script.js:174 - These delayed renders can finish out of order. Select Ana and then Jon quickly, and Ana’s cards can reappear while Jon remains selected. Guard pending renders across both filter handlers, or recompute from current state before rendering.
script.js:225 - When either filter is active, getVisibleTasks() returns a filtered copy, so this push never adds the task to tasks. The new card appears immediately even if it does not match the filter, then disappears on the next render. Add it to the canonical tasks array and render a fresh filtered view.
Comments
0 comments
No comments yet
Start the discussion for this solution.