From 2523d966f4be7912987ef1e0bb882c000b8b4bca Mon Sep 17 00:00:00 2001 From: boojack Date: Fri, 10 Apr 2026 22:27:29 +0800 Subject: [PATCH] chore(web): improve navigation accessibility --- web/src/components/Navigation.tsx | 54 ++++++++++++++++--------------- 1 file changed, 28 insertions(+), 26 deletions(-) diff --git a/web/src/components/Navigation.tsx b/web/src/components/Navigation.tsx index 484f0837b..584eb5e2e 100644 --- a/web/src/components/Navigation.tsx +++ b/web/src/components/Navigation.tsx @@ -69,9 +69,10 @@ const Navigation = (props: Props) => { icon: , }; - const navLinks: NavLinkItem[] = currentUser + const primaryNavLinks: NavLinkItem[] = currentUser ? [homeNavLink, exploreNavLink, attachmentsNavLink, inboxNavLink] : [exploreNavLink, signInNavLink]; + const inboxAriaLabel = unreadCount > 0 ? `${t("common.inbox")}, ${unreadCount} unread` : t("common.inbox"); return (
@@ -79,24 +80,25 @@ const Navigation = (props: Props) => { - {navLinks.map((navLink) => ( - - cn( - "px-2 py-2 rounded-2xl border flex flex-row items-center text-lg text-sidebar-foreground transition-colors", - collapsed ? "" : "w-full px-4", - isActive - ? "bg-sidebar-accent text-sidebar-accent-foreground border-sidebar-accent-border drop-shadow" - : "border-transparent hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:border-sidebar-accent-border opacity-80", - ) - } - key={navLink.id} - to={navLink.path} - id={navLink.id} - viewTransition - > - {props.collapsed ? ( - + + {primaryNavLinks.map((navLink) => ( + + cn( + "px-2 py-2 rounded-2xl border flex flex-row items-center text-lg text-sidebar-foreground transition-colors", + collapsed ? "" : "w-full px-4", + isActive + ? "bg-sidebar-accent text-sidebar-accent-foreground border-sidebar-accent-border drop-shadow" + : "border-transparent hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:border-sidebar-accent-border opacity-80", + ) + } + key={navLink.id} + to={navLink.path} + id={navLink.id} + aria-label={navLink.id === "header-inbox" ? inboxAriaLabel : undefined} + viewTransition + > + {props.collapsed ? (
{navLink.icon}
@@ -105,13 +107,13 @@ const Navigation = (props: Props) => {

{navLink.title}

-
- ) : ( - navLink.icon - )} - {!props.collapsed && {navLink.title}} -
- ))} + ) : ( + navLink.icon + )} + {!props.collapsed && {navLink.title}} + + ))} + {currentUser && (