diff --git a/frontend-modern/src/AppLayout.tsx b/frontend-modern/src/AppLayout.tsx index 825fc0bda..e71bb96d9 100644 --- a/frontend-modern/src/AppLayout.tsx +++ b/frontend-modern/src/AppLayout.tsx @@ -184,6 +184,24 @@ export function AppLayout(props: AppLayoutProps) { } }); + // Reflect the active tab in the browser tab title so multi-tab use, + // browser history, and screen-reader page-title announcements all + // identify the current Pulse surface instead of every page reading + // as the bare app name. + const tabTitleByActive: Record>, string> = { + infrastructure: 'Infrastructure', + workloads: 'Workloads', + storage: 'Storage', + recovery: 'Recovery', + alerts: 'Alerts', + ai: 'Patrol', + settings: 'Settings', + }; + createEffect(() => { + const active = getActiveTabForPath(location.pathname); + document.title = active ? `${tabTitleByActive[active]} ยท Pulse` : 'Pulse'; + }); + const toggleKioskMode = () => { setKioskMode(!kioskMode()); };