-
-
Notifications
You must be signed in to change notification settings - Fork 9.9k
Description
Note
This issue was rewritten by @Sidnioulz to track related issues in-place.
Links and buttons in the sidebar cannot be focused (original issue)
Describe the bug
The buttons in the sidebar have a tabindex="-1", which makes them unfocusable and therefore unclickable. The same issue applies to all the links—each one also has a tabindex="-1", so I can't focus on them either. While I can navigate through the items using the up and down arrow keys, the parent categories (e.g., "Foundations" in the screenshot) require using the tab key instead. This creates a disjointed navigation experience, as the arrow keys don't work in conjunction with the tab navigation, which is not ideal for accessibility.

Reproduction link
https://design-system.post.ch/
Reproduction steps
No response
System
Version 8.2.7Screen readers does not announce state and position count on controls present at the left navigation in windows
Describe the bug
User Impact:
Visually Impaired users who uses screen readers will be impacted as Screen readers (Narrator) does not announce state and position count on controls present at the left navigation in windows.
Pre-Requisites:
Enable Narrator
Actual Result:
Screen readers (Narrator) does not announce state and position count on controls present at the left navigation in windows.
Narrator announces: Link Docs
Refer Attachment:
1.Screen readers (Narrator) does not announce state and position count on controls present at the left navigation in windows.png
2.Screen readers (Narrator) does not announce state and position count on controls present at the left navigation in windows.mp4
https://github.com/user-attachments/assets/29b4bb54-d88e-414d-8036-54dd44def19f
Expected Result:
Screen readers (Narrator) should announce state as selected/ not selected and position count as 1 of 18 on controls present at the left navigation in windows.
Reproduction link
https://vivacommonstorybooktest.z13.web.core.windows.net/?path=/docs/app-bar--docs
Reproduction steps
- Open URL: https://vivacommonstorybooktest.z13.web.core.windows.net/?path=/docs/app-bar--docs in edge browser in windows.
- 'App Bar - Docs' page will be open.
- Press tab key to navigate to the 'Docs' control present at the left navigation.
- Verify whether screen reader announces the state and position count on controls present at the left navigation in windows or not.
System
not relevant
Work to do
Sidebar UI - Tree 2.0 project
- Implement the sidebar using a Primer TreeView
- Make relevant UI changes to match the Tree 2.0 2025 design file
- New icons for roots and composed roots?
- Code new sidear UI
- Scope out UI rework of testing module and search/header
- Make it possible for tree items to advertise a secondary actions menu
- Register a keyboard shortcut
- Add a focus tooltip and appendix to the aria-label to advertise the shortcut(like GitHub sub-issues)
- When the shortcut is pressed, open a modified version of
ContextMenu- Always add navigation to the page/story/test as the first menu item
- Make test statuses links? (@MichaelArestad I think we did not solve that yet); OR verify if we can find a path to WCAG compliance with status items in a
menurole
- Port the composed root context menu to be keyboard-navigable too (see "View external storybook" & "Read composition docs" controls are not accessible using keyboard in Windows and Mac. #29681)
- Implement keyboard actions: keyboard actions should always have a single effect, e.g. opening/close a tree node, and navigating on a leaf node
- Implement mouse actions:
- Decide: either do both expand+navigate as we used to, or stick to the same model as keyboard actions and require more clicks (@MichaelArestad wants to test that)
- Perform user research for validation if needed
- RefBlocks: header can be
aria-expandedbut needs a supporting role - RefBlocks: error state, Show Error has
aria-expandedwithout supporting role - RefBlocks: has an aside element which is wrong (multiple aside violation)
- Tree: if we still have disabled items, they need an aria-disabled attr
Sidebar-adjacent APIs
- Change
renderLabel- Pass
isMobileto users to help with content length and layout calculations -
Pass status information without relying on experimental APIs?- As this is not possible yet (API still experimental), at least ensure the sidebar layout always reserves space for StatusIcon to avoid issues like UI: Need for an API endpoint for
renderLabelusers / addon authors to know if a sidebar item has a status preview #31220
- As this is not possible yet (API still experimental), at least ensure the sidebar layout always reserves space for StatusIcon to avoid issues like UI: Need for an API endpoint for
- Pass
- Add
renderAriaLabelendpoint to the sidebar API (mandatory) - Consider adding
renderIconto let users more easily customise sidebar icons (RFC process): RFC
Sidebar accessibility followups
cc @MichaelArestad feel free to grow this list and I'll move it into a proper tracking issue later
- Search bar rework? sticky, top-level icon + replace header with input
- Consider top-level tree node for Recently Opened items instead of the current UI
- Consider adding a pinned stories tree node (then how do we pin stories?)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status