asyncapi / asyncapi/website

[A11Y]: Improve keyboard navigation and screen reader support for Roadmap section

Open
#5,101 2 comments 0 reactions 0 assignees View on GitHub
area/typescript triaged
Dominant language
TypeScript
Stars
716
Forks
1.2k
Avg merge
1d 12h
Merged PRs (30d)
35

Description

### What changes are you proposing?
Improve accessibility of the Roadmap page (`/roadmap`) so it works correctly with keyboard and screen readers.

- Replace clickable `div` elements with proper `` elements in `components/roadmap/RoadmapPill.tsx`
- Add visible keyboard focus styles (focus ring)
- Add basic ARIA attributes for expandable items (`aria-expanded`, `aria-controls`, `aria-label`)

### Why do we need this improvement?
The current Roadmap implementation is not accessible.

- Roadmap items cannot be focused using the keyboard
- There is no visible focus ring when navigating with `Tab`
- Screen readers do not announce whether a section is open or closed

This makes the page difficult to use for users relying on assistive technology.

### How will this change help?
- Keyboard users can navigate and interact with roadmap items
- Screen reader users get clear state information
- Improves overall usability and accessibility of the page

### How could it be implemented?
- Update `RoadmapItem.tsx` and `RoadmapPill.tsx`
- Use standard `` elements instead of `div`
- Use `React.useId()` for unique IDs
- Add Tailwind focus styles such as `focus:ring`

### Screenshots
**Current behavior (no focus ring when using keyboard):**

No focus ring on roadmap items

### Breaking changes
No.

### Checklist
- [x] I have checked for similar issues
- [x] I have read the Contributing Guidelines

### Would you like to help fix this issue?
- [x] Yes, I am interested in working on this
- [ ] No, I am just reporting the issue

cc @asyncapi/maintainers

Contributor guide

Open the contributing guide

Research direction

Start at the /roadmap page and read components/roadmap/RoadmapItem.tsx and components/roadmap/RoadmapPill.tsx to trace the expandable items. Verify keyboard focus, button semantics, React.useId()-based relationships, ARIA state announcements, and Tailwind focus styles. Done means roadmap items are keyboard-operable and their expanded state is clear to screen readers.

Written by the indexing model from the issue text.

Assessment

Tech stack
nextjs, react, tailwindcss, typescript
Domain
accessibility, frontend, web-dev
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.