Repository navigation
Conversation
Screen readers had no way to know whether a task was done or not done because the dashboard task toggle buttons lacked a pressed-state attribute. Adding aria-pressed conveys the toggle state so assistive technology announces "pressed" for completed tasks and "not pressed" for active ones. Co-Authored-By: AgenticDiego <noreply@carvallo.io> Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S5GHKuA6Hp6fjoG9R7pWt9
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Owner
Author
|
Vercel deployment failure is not caused by this PR. The Vercel All GitHub Actions checks that have completed are green (Build ✅, Type Check ✅, Lint & Format ✅). Unit Tests and Playwright E2E are still running. The Vercel failure appears to be an environment-level issue pre-dating this PR. No fix is available on this PR's side. Generated by Claude Code |
Contributor
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Daily Product Improvement
📝 TLDR
Add
aria-pressedto dashboard task toggle buttons so screen readers can announce task completion state.📝 Description
Daily product improvement run. This PR implements one targeted Small improvement identified during a full codebase review.
Screen reader users navigating the dashboard task list had no way to know whether a given task was completed or not. Each task row renders as a
<button>that visually toggles a custom checkbox, but the button lacked any pressed-state ARIA attribute. Assistive technology would announce only the button text content ("Book the string quartet, Vendor, Feb 15") with no indication of done/not-done state.Adding
aria-pressed={task.done}tells screen readers this is a toggle button and whether it is currently pressed (task complete) or not pressed (task active).This Change
aria-pressed={task.done}to the task toggle button inTaskListItemRecommendations Reviewed
Area: Dashboard > TaskListItem (
planning-overview/task-list-item.tsx)Issue: Task toggle button has no
aria-pressed, so screen readers cannot convey done/not-done stateRecommendation: Add
aria-pressed={task.done}to the toggle buttonType: UX/UI (Accessibility)
Priority: Medium
Effort: Small
Status: ✅ Selected and implemented
Area: Dashboard >
planning-overview.tsxIssue:
MiniStatsandRsvpCardboth independently compute the same RSVP summary fromdashboardData.events, with slightly inconsistent naming (confirmedvsattendingfor the same field)Recommendation: Extract shared
computeRsvpSummaryhelper to eliminate duplicationType: Frontend cleanup
Priority: Low
Effort: Small
Status: Not selected (low priority, no user-visible impact)
Area: Vendor >
VendorDetailPanelIssue: Scratchpad textarea has no unsaved-changes indicator; edits are silently discarded when the panel is closed without saving
Recommendation: Track dirty state and show an "Unsaved changes" badge near the Save button, consistent with the guest drawer pattern
Type: UX/UI
Priority: Medium
Effort: Small-Medium
Status: Not selected (PR #291 is open on this file; would conflict)
Area: Checklist >
checklist-page-client.tsxIssue: Task bucket collapse buttons have
aria-labelbut noaria-expanded, so screen readers cannot tell if a bucket is expanded or collapsedRecommendation: Add
aria-expanded={!collapsedBuckets.has(bucket.key)}to the bucket header buttonType: UX/UI (Accessibility)
Priority: Medium
Effort: Small
Status: Not selected (PR #261 is open in this area; risk of conflict)
Area: Dead code >
src/app/_components/dashboard/sidebar-panel.tsxIssue: File is exported but never imported anywhere in the codebase — pure dead code
Recommendation: Delete the file
Type: Frontend cleanup
Priority: Low
Effort: Small
Status: Not selected (low priority; no user impact)
Selected Improvement
Add
aria-pressed={task.done}to the dashboard planning-overviewTaskListItemtoggle button.Why This Was Selected
aria-pressedis a real accessibility gap — without it, screen readers announce no completion state<Checkbox>component with correct semantics; the dashboard should be equally accessibleChanges Made
aria-pressed={task.done}to the<button>inTaskListItemBaseFiles Changed
src/components/dashboard/planning-overview/task-list-item.tsx🧪 Testing
biome checkon the changed file — no errorstsc --noEmit— no new errors (pre-existingbaseUrldeprecation warning is unrelated)aria-pressedis a standard boolean ARIA attribute on<button>— no DOM conflicts🧪 How to test as a user
aria-pressed="false"(incomplete) oraria-pressed="true"(complete)Future Recommendations
Scratchpad unsaved-changes indicator in VendorDetailPanel
vendor-detail-panel.tsx; would conflictExtract shared RSVP summary computation in
planning-overview.tsxMiniStatsandRsvpCardboth compute nearly identical RSVP summaries independently; extract to a shared helperAdd
aria-expandedto checklist bucket collapse buttonsaria-expandedto the task bucket header buttons so screen readers convey expanded/collapsed stateRemove dead file
src/app/_components/dashboard/sidebar-panel.tsxGitHub Issues Created or Proposed
No GitHub issues created. The scratchpad unsaved-changes indicator (VendorDetailPanel) is the strongest candidate for a standalone issue, but it is blocked by PR #291 and will be re-evaluated once that PR merges.
🤖 Generated with Claude Code
https://claude.ai/code/session_01S5GHKuA6Hp6fjoG9R7pWt9
Generated by Claude Code