Filed from the second-wave repository audit (issue 56/100). See the audit summary for full category context.
- Location:
frontend/src/components/NotificationDropdown.tsx:142-150
- Problem: The badge (
{unreadCount > 9 ? "9+" : unreadCount}) is only conveyed via the button's aria-label, which isn't re-announced by screen readers once the button has already received focus and the count subsequently changes (e.g. a new notification arrives while the user is elsewhere on the page).
- Evidence: Count exposed only through a static
aria-label, no aria-live region.
- Suggested implementation: Add a visually-hidden
aria-live="polite" region announcing "N new notifications" when the count increases.
- Acceptance criteria: A screen-reader test (or
aria-live region assertion) confirms an announcement fires when unreadCount increases while the page is open.
- Difficulty: S
- Expected impact: Makes real-time notification updates perceivable to assistive-technology users, consistent with the app's real-time nature.
frontend/src/components/NotificationDropdown.tsx:142-150{unreadCount > 9 ? "9+" : unreadCount}) is only conveyed via the button'saria-label, which isn't re-announced by screen readers once the button has already received focus and the count subsequently changes (e.g. a new notification arrives while the user is elsewhere on the page).aria-label, noaria-liveregion.aria-live="polite"region announcing "N new notifications" when the count increases.aria-liveregion assertion) confirms an announcement fires whenunreadCountincreases while the page is open.