The collapsed Channels sidebar remains exposed to accessibility/DOM navigation on desktop even though its controls are no longer visible. This was observed while dogfooding the tab-renaming API (#43) in a second browser window at 1280px width.
Reproduce
- Open a project with at least two channels in Ace's browser app at a desktop width (observed at 1280px).
- Open a channel and collapse the Channels sidebar using Toggle channels sidebar.
- Inspect the accessible/DOM navigation snapshot. The project selector and hidden channel controls are still exposed; the observed controls included
Select project, Channel tab-api-check, and Channel tab-other-channel.
- Attempt to select a hidden channel through the exposed control. During dogfooding, the selection had no effect.
- Reopen the sidebar and select the same channel. Selection succeeds.
The screenshot showed only the activity icons and main panel while the snapshot still advertised sidebar controls. Keyboard and screen-reader behavior should be checked during the fix; the observed failure was through browser UI automation.
Cause
At desktop widths, packages/ui/src/shadcn.css collapses the sidebar by setting its grid track to zero (data-left="collapsed", around line 755), while .layout:left retains visibility: visible (around line 901). The shared Sidebar in packages/ui/src/components/layout/layout.tsx reads the open state but does not use it to make collapsed content inert or hide it from assistive technologies. The app's left sidebar does not provide those attributes either (apps/app/src/app.tsx, around line 325).
The layout's existing inert handling only applies while a compact overlay is open. It does not cover a collapsed desktop sidebar. The details sidebar already explicitly uses aria-hidden and inert when closed.
Expected
- Collapsed sidebar controls are excluded from accessibility navigation and the keyboard tab order, and cannot receive focus or interaction until the sidebar opens.
- Opening the sidebar restores its controls without changing the selected project or channel.
- Closing while focus is inside the sidebar leaves focus on an appropriate visible control.
- Verify desktop collapse, narrow-screen overlay open/close, and viewport transitions. Preserve the shared sidebar's animation and existing overlay behavior.
No matching open or closed issue was found when checking the repository's issues on October 4, 2026. Tracked by #5.
The collapsed Channels sidebar remains exposed to accessibility/DOM navigation on desktop even though its controls are no longer visible. This was observed while dogfooding the tab-renaming API (#43) in a second browser window at 1280px width.
Reproduce
Select project,Channel tab-api-check, andChannel tab-other-channel.The screenshot showed only the activity icons and main panel while the snapshot still advertised sidebar controls. Keyboard and screen-reader behavior should be checked during the fix; the observed failure was through browser UI automation.
Cause
At desktop widths,
packages/ui/src/shadcn.csscollapses the sidebar by setting its grid track to zero (data-left="collapsed", around line 755), while.layout:leftretainsvisibility: visible(around line 901). The sharedSidebarinpackages/ui/src/components/layout/layout.tsxreads the open state but does not use it to make collapsed content inert or hide it from assistive technologies. The app's left sidebar does not provide those attributes either (apps/app/src/app.tsx, around line 325).The layout's existing inert handling only applies while a compact overlay is open. It does not cover a collapsed desktop sidebar. The details sidebar already explicitly uses
aria-hiddenandinertwhen closed.Expected
No matching open or closed issue was found when checking the repository's issues on October 4, 2026. Tracked by #5.