Parent issue: #21
Context
The app lacks semantic HTML landmarks, making it difficult for screen readers and keyboard-only users to navigate.
Scope
- Add landmark roles to layout:
<main> for the chat/content area
<nav> for the sidebar
<aside> for panels (history, knowledge)
<header> for the top bar
- Add
role="treeitem" to sidebar tree items (conversations, files)
- Wrap settings sections in
<fieldset> with <legend>
- Add skip navigation link (hidden, visible on focus): "Skip to chat input"
- Ensure focus order follows visual order
References
- Layout:
src/app/layout.tsx, src/features/layout/
- Sidebar:
src/components/sidebar/Sidebar.tsx
- Settings:
src/components/settings/SettingsPanel.tsx
Parent issue: #21
Context
The app lacks semantic HTML landmarks, making it difficult for screen readers and keyboard-only users to navigate.
Scope
<main>for the chat/content area<nav>for the sidebar<aside>for panels (history, knowledge)<header>for the top barrole="treeitem"to sidebar tree items (conversations, files)<fieldset>with<legend>References
src/app/layout.tsx,src/features/layout/src/components/sidebar/Sidebar.tsxsrc/components/settings/SettingsPanel.tsx