Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Add an accessible label to the notification-bell icon button (a11y)

Open
#44 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

  • #50 by @lovewave02 — closed without merging

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
next.js, typescript

Research direction

Start with src/components/notification-bell.tsx at the DropdownMenuTrigger, then compare the accessible-name patterns in src/components/theme-toggle.tsx and src/components/mobile-nav.tsx. Check other icon-only controls as requested; done means the bell name and unread count are available to assistive technology, any other gaps are fixed, and pnpm build passes.

Written by the indexing model from the issue text.

Description

good first issue
Good first issue (accessibility)

The notifications trigger in src/components/notification-bell.tsx is an icon-only button (<Bell />) with no accessible name — screen readers announce nothing:

<DropdownMenuTrigger className="relative rounded-full p-1.5 ...">
  <Bell size={18} />
  {unreadCount > 0 && ( <span ...>{unreadCount}</span> )}
</DropdownMenuTrigger>

Our convention: every interactive control has an accessible name (see the a11y note in the component inventory). Other icon buttons already do this — theme-toggle.tsx (aria-label="Toggle theme"), mobile-nav.tsx / sheet.tsx (sr-only text).

What to do
  • Give the trigger an aria-label (e.g. "Notifications").
  • Reflect the unread count for assistive tech — e.g. aria-label={unreadCount > 0 ? \Notifications, ${unreadCount} unread` : "Notifications"}`.
  • While you're here, audit other icon-only controls for the same gap and fix any you find.
Acceptance
  • Notification bell has a meaningful accessible name (verified in the a11y tree / VoiceOver)
  • Unread state is conveyed to screen readers
  • pnpm build passes
Pointers
  • File: src/components/notification-bell.tsx (the DropdownMenuTrigger ~L45)
  • Reference patterns: src/components/theme-toggle.tsx, src/components/mobile-nav.tsx
Dominant language
TypeScript
Stars
3
Forks
6
Avg merge
13h 29m
Merged PRs (30d)
56

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from grasshopper-protocol/grsshppr

All issues in grasshopper-protocol/grsshppr

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.