You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Accessibility (desktop visuals unchanged):
- Landmarks: <header> topbar, <nav aria-label="Sessions"> sidebar,
<main> chat column; #messages is now role="log" aria-live="polite"
aria-relevant="additions".
- Visually-hidden #sr-status live region + announce() helper; announces
connection state, system/error messages, approval shown/answered
(with risk class), session loaded/renamed/deleted.
- Dialog semantics: shortcuts + confirm overlays get role="dialog"
aria-modal="true" aria-labelledby; focus moves in on open
(data-autofocus), returns on close, Tab cycles within (openDialog/
closeDialog/focus trap in utils.js); Escape closes via the same helper.
- Keyboard activation: role="button" tabindex="0" + Enter/Space for
.tb-header, .thinking-toggle, .tb-result-more, .collapse-toggle,
.es-hints spans, .chip-remove; aria-expanded tracked on disclosure
toggles and the hamburger.
- :focus-visible ring now covers [tabindex]/[role="button"] (the dead
[onclick] selector was removed); shortcuts dialog documents @
completion navigation.
Mobile (all inside @media (max-width: 767px), except 100dvh):
- #app uses 100dvh with 100vh fallback; grid rows go auto so the topbar
can grow to two rows — model picker + custom-model input wrap to a
second row inside .top-controls, theme/cancel stay on row one.
- Sidebar becomes an over-top drawer (top:0, z-index 30) so the taller
topbar never clips it.
- ≥40px touch targets via padding/min-size: hamburger, theme, cancel,
new-session, session row actions, attach, scroll-bottom, approval
action buttons.
- Approval card full-width minus margins; toast wraps at 92vw instead
of overflowing; completion popup verified full-width of input row.
0 commit comments