Skip to content

feat: add keyboard shortcuts and accessibility navigation support#811

Open
vikrantkulkarni07 wants to merge 3 commits into
JhaSourav07:mainfrom
vikrantkulkarni07:feature/keyboard-shortcuts
Open

feat: add keyboard shortcuts and accessibility navigation support#811
vikrantkulkarni07 wants to merge 3 commits into
JhaSourav07:mainfrom
vikrantkulkarni07:feature/keyboard-shortcuts

Conversation

@vikrantkulkarni07
Copy link
Copy Markdown

@vikrantkulkarni07 vikrantkulkarni07 commented May 27, 2026

Description

This PR adds keyboard shortcuts and accessibility-focused keyboard navigation support across CommitPulse to improve usability, accessibility, and productivity for keyboard-first users.

Features Added

  • ? / Shift + / → Open keyboard shortcuts help modal
  • Esc → Close active modal/dialog
  • / → Focus search input
  • Ctrl + K → Open quick navigation / command palette
  • g + h → Navigate to Home
  • g + d → Navigate to Dashboard
  • g + r → Navigate to Repositories
  • g + p → Navigate to Profile

Accessibility Improvements

  • Prevent shortcuts while typing inside:

    • input
    • textarea
    • select
    • contenteditable elements
  • Improved modal accessibility using:

    • role="dialog"
    • aria-modal
    • aria-labelledby
  • Added keyboard focus management using refs

  • Added keyboard activation support for interactive custom elements

  • Added accessible labels for icon-only buttons

  • Improved keyboard-first navigation workflows

Technical Improvements

  • Centralized keyboard event handling
  • Lightweight command palette support
  • Accessibility-focused interaction improvements
  • Preserved existing UI/UX architecture and styling

Fixes #803

Pillar

  • 🎨 Pillar 1 — New Theme Design
  • 📐 Pillar 2 — Geometric SVG Improvement
  • 🕐 Pillar 3 — Timezone Logic Optimization
  • 🛠️ Other (Bug fix, refactoring, docs)

Visual Preview

Screenshot (148)

(Add screenshots/GIFs here)

Checklist before requesting a review:

  • I have read the CONTRIBUTING.md file.
  • I have tested these changes locally (localhost:3000/api/streak?user=YOUR_USERNAME).
  • I have run npm run format and npm run lint locally and resolved all errors (CI will fail otherwise).
  • My commits follow the Conventional Commits format (e.g., feat(themes): ..., fix(calculate): ...).
  • I have updated README.md if I added a new theme or URL parameter.
  • I have started the repo.
  • I have made sure that i have only one commit to merge in this PR.
  • The SVG output matches the CommitPulse "premium quality" aesthetic standard (no raw elements, smooth animations, correct fonts).
  • (Recommended) I joined the CommitPulse Discord server for faster collaboration, mentorship, and PR support.

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 27, 2026

@vikrantkulkarni07 is attempting to deploy a commit to the jhasourav07's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions
Copy link
Copy Markdown

👋 Hey @vikrantkulkarni07, welcome to CommitPulse! 🎉

Thanks for opening your first pull request — this is a big deal and we appreciate the effort!

While you wait for a review, please double-check:

  • ✅ You've read the CONTRIBUTING.md checklist
  • npm run lint, npm run format, and npm run test all pass locally
  • ✅ Your PR has a visual preview if it touches any SVG output
  • 💬 You've joined our Discord for faster PR feedback

A maintainer will review your PR shortly. Hang tight! 🚀

@github-actions github-actions Bot added the needs-details This PR is missing required description details. label May 27, 2026
@github-actions
Copy link
Copy Markdown

👋 Hey @vikrantkulkarni07! Thanks for your contribution! 🎉

It looks like this PR isn't linked to any issue yet.

Please edit your PR description and add a closing keyword so we can track this properly, for example:

Fixes #<issue-number>

💡 You can link multiple issues if needed (e.g. Fixes #12, Closes #34).
If you're working on something that doesn't have an issue yet, please open one first and then link it here.

Once you've updated the PR description the check will re-run automatically. 🙌

@github-actions
Copy link
Copy Markdown

👋 Hey @vikrantkulkarni07, it looks like you didn't use our PR template!

The section ## Description is missing from your PR description.

Please update your PR description to include all required sections so we can review this properly:

  • ## Description — What does this PR do? Which issue does it fix?
  • ## Pillar — Which contribution pillar does this fall under?
  • ## Checklist — Have you ticked off the quality checklist?

You can find the full template in CONTRIBUTING.md. Just edit your PR description and the needs-details label will be removed automatically. 🙌

@github-actions github-actions Bot added the status:blocked This PR is blocked due to a failing CI check. label May 27, 2026
@github-actions
Copy link
Copy Markdown

🚨 Hey @vikrantkulkarni07, the CI Pipeline is failing on this PR and it has been marked as status:blocked.

Please fix the issues before this can be reviewed. Here's how:

1. Run checks locally before pushing:

npm run format:check   # Check Prettier formatting
npm run lint           # Run ESLint
npm run typecheck      # TypeScript type check
npm run test           # Run unit tests (Vitest)
npm run build          # Verify production build passes

2. Auto-fix common issues:

npm run format         # Auto-fix formatting with Prettier
npm run lint -- --fix  # Auto-fix lint errors where possible

3. Check the full failure log here:
👉 View CI Run

Once you push a fix and the CI passes, the status:blocked label will be removed automatically. 💪

… enhancements

- Implemented global keyboard shortcuts engine (g+h, ?, Esc, /)
- Added accessible Command Palette (Ctrl+K) with arrow key navigation
- Added KeyboardHelpModal for shortcut discovery
- Enhanced Navbar with search input and global focus listener
- Fixed React hydration mismatches and configured ESLint overrides
- Mocked lucide-react SVGs to resolve Vitest rendering crashes
@vikrantkulkarni07 vikrantkulkarni07 force-pushed the feature/keyboard-shortcuts branch from 45ada1c to fa2af32 Compare May 27, 2026 20:32
@github-actions github-actions Bot removed status:blocked This PR is blocked due to a failing CI check. needs-details This PR is missing required description details. labels May 27, 2026
@vikrantkulkarni07
Copy link
Copy Markdown
Author

Everything is fine now :)

@github-actions github-actions Bot added the type:feature New features, additions, or enhancements label May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:feature New features, additions, or enhancements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add keyboard shortcuts and accessibility navigation support

1 participant