🎨 Palette: Keyboard Accessibility for Interactive Cards#32
Conversation
Co-authored-by: Dev22603 <92785712+Dev22603@users.noreply.github.com>
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
✅ Deploy Preview for dev-bachani ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
💡 What
Added proper keyboard accessibility to the clickable
ProjectCardandExperienceCardcomponents.🎯 Why
These components use
motion.divand act as clickable items (buttons) leading to modals or external links, but they were missing keyboard interactivity. Without this, users navigating via keyboard or assistive technologies could not select or interact with these items.♿ Accessibility
role="button"andtabIndex={0}so the elements receive keyboard focus in the tab order.onKeyDownhandlers to trigger the click action when pressing theEnterorSpacekey (and prevented default scrolling behavior onSpace).focus-visible:ring-2 focus-visible:ring-teal-400 focus-visible:outline-noneTailwind styling to clearly indicate focus state to sighted keyboard users.📸 Before/After
Before: Navigating with Tab skipped over projects and experience cards entirely, making them completely inaccessible to keyboard users.
After: Tab navigation stops at each card, clearly highlighting it with a teal ring. Pressing 'Enter' or 'Space' successfully opens the relevant links/modals. (Screenshots captured via visual verification are attached to the CI).
PR created automatically by Jules for task 4928272095794555580 started by @Dev22603