Skip to content

feat: add notification_bell with a11y compliance and validation alerts (Closes #320, #324) - #348

Open
Max-Owolabi wants to merge 2 commits into
Goldii-locks:mainfrom
Max-Owolabi:feat/notification-bell-validation-a11y
Open

feat: add notification_bell with a11y compliance and validation alerts (Closes #320, #324)#348
Max-Owolabi wants to merge 2 commits into
Goldii-locks:mainfrom
Max-Owolabi:feat/notification-bell-validation-a11y

Conversation

@Max-Owolabi

Copy link
Copy Markdown

Summary

Adds the notification_bell (navbar alert bell badge) component, addressing two requirements in a single component since both target the same module that did not yet exist:

Resolves #320
Resolves #324

Changes

  • app/components/notification_bell.tsx — new component:
    • A11y (Ensure a11y ARIA attribute compliance for notification_bell #320): native <button> (keyboard navigable), aria-label accessible name, aria-haspopup/aria-expanded/aria-controls disclosure wiring, aria-live announcement regions, role="alert" for errors, aria-hidden on decorative glyphs/badge count (with visually-hidden duplicate count), focus-visible rings, and design-token colors that meet contrast.
    • Validation alerts (Render validation messages and alerts inside notification_bell #324): accepts validation field configs; fields with an error render a role="alert" message wired via aria-describedby and counted toward the unread badge. Error text toggles as validation triggers (fields without an error render clean/valid).
    • Renders notifications with error/success/warning/info alert/status roles.
  • __tests__/notification_bell.test.tsx — 23 RTL tests covering both the a11y requirements and validation-alert toggling.

Verification

  • tsc --noEmit passes.
  • ESLint passes on the new files.
  • All 23 new tests pass; full-suite results show no new failures versus main (the only failing tests are pre-existing and unrelated to this change).

Implements the navbar alert bell badge as a keyboard-operable
(role=button) disclosure with ARIA compliance (Goldii-locks#320): accessible name,
aria-haspopup/aria-expanded/aria-controls, aria-live announcement
regions, aria-hidden on decorative glyphs, focus-visible rings and
design-token contrast.

Adds field error indicators and alerts (Goldii-locks#324): validation field configs
render role=alert error text that toggles as validation triggers, wired
via aria-describedby and counted toward the unread badge.

Adds React Testing Library tests covering both requirements.

Closes Goldii-locks#320
Closes Goldii-locks#324
@drips-wave

drips-wave Bot commented Aug 28, 2026

Copy link
Copy Markdown

@Max-Owolabi Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Render validation messages and alerts inside notification_bell Ensure a11y ARIA attribute compliance for notification_bell

1 participant