Skip to content

Enhancement: Add keyboard navigation support across the app for accessibility #631

@vibeetroot

Description

@vibeetroot

Problem:
GitHub Tracker is a developer-focused tool, yet the core user flows — searching for a GitHub user, navigating between profile tabs, and interacting with stat cards — currently have no keyboard navigation support. Users who rely on keyboard-only navigation (developers using tools like Vimium, users with motor disabilities, or power users who prefer not to use a mouse) cannot fully use the app. This is especially notable since the maintainer is already applying type:accessibility labels to merged PRs, indicating accessibility is a priority.
Proposed Solution
Add proper keyboard navigation support across the app:

Search input should auto-focus on page load so users can start typing immediately without clicking
Tab order should flow logically: search → results → profile tabs → stat cards
All interactive elements (tabs, cards, buttons) should be reachable and activatable via Enter / Space
Active/focused elements should have a clearly visible focus ring (not suppressed by outline: none)
Escape key should clear the search input and return focus to it

Acceptance Criteria

Search input is auto-focused on page load
All interactive UI elements are reachable via Tab / Shift+Tab
Enter activates focused buttons and tabs
Escape clears the search input
Focus indicators are visible and consistent with the existing TailwindCSS theme
No existing functionality is broken

Files Likely Affected

src/components/ — add tabIndex, onKeyDown handlers, and autoFocus where needed
src/pages/ — ensure page-level focus management on route change
tailwind.config.js — ensure outline / ring focus styles are not globally suppressed

Environment

Browser: All (Chrome, Firefox, Edge)
Device: Desktop keyboard users

Screenshots
Currently, tabbing through the app produces no visible focus state — elements are silently focused with no visual feedback, making keyboard-only navigation impossible to follow.
Suggested Labels: gssoc26, enhancement, type:accessibility, level:intermediate

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions