Skip to content

Enhancement: Comprehensive Accessibility (a11y) & Keyboard Navigation Improvements#1549

Open
ArshVermaGit wants to merge 1 commit into
Priyanshu-byte-coder:mainfrom
ArshVermaGit:main_6
Open

Enhancement: Comprehensive Accessibility (a11y) & Keyboard Navigation Improvements#1549
ArshVermaGit wants to merge 1 commit into
Priyanshu-byte-coder:mainfrom
ArshVermaGit:main_6

Conversation

@ArshVermaGit
Copy link
Copy Markdown

Description

This PR addresses widespread accessibility issues across the dashboard and widgets to ensure a 100% WCAG-compliant experience for keyboard and screen reader users. The ESLint accessibility plugin (eslint-plugin-jsx-a11y) was upgraded to strict mode to catch structural errors, and the entire src/components tree was audited and patched.

Resolved Issue

Resolves #1548

Changes Included

  • Icon-Only Buttons: Added descriptive aria-label attributes to 70+ interactive buttons utilizing Lucide React icons (e.g., Theme toggles, close buttons, modal controls).
  • Focus Rings: Globally replaced focus:outline-none and focus:ring utility classes with focus-visible:outline-none focus-visible:ring. This ensures keyboard navigators receive clear visual focus states without polluting the UI for mouse users.
  • Form Controls: Fixed strict label-has-associated-control errors in ProjectMetrics.tsx, GoalTracker.tsx, and settings/page.tsx by linking labels via htmlFor/id and adding <span className="sr-only"> to custom visual toggles.
  • Modals & Backdrops: Appended aria-hidden="true" to modal overlay backdrops to resolve click-events-have-key-events and no-static-element-interactions violations.
  • Images: Audited all raw <img> and Next.js <Image> tags to guarantee meaningful alt text is present.

Testing & Verification

  • Tested full keyboard navigation (Tab / Shift+Tab / Enter / Escape) across dashboard panels, modals, and settings.
  • Verified high-contrast focus rings appear appropriately.
  • npm run lint now passes with 0 accessibility warnings/errors.

@vercel
Copy link
Copy Markdown

vercel Bot commented May 29, 2026

@ArshVermaGit is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:accessibility GSSoC type bonus: accessibility (+15 pts) labels May 29, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

Copy link
Copy Markdown
Author

@ArshVermaGit ArshVermaGit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Priyanshu-byte-coder ! Issue #1548 has been resolved. Please review the PR and merge it under GSSoC. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gssoc26 GSSoC 2026 contribution type:accessibility GSSoC type bonus: accessibility (+15 pts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Enhancement]: Improve Accessibility (a11y) Across Interactive Elements and Widgets

1 participant