carbon-design-system / carbon-components-vue

Vue implementation of the Carbon Design System
http://vue.carbondesignsystem.com
Apache License 2.0
598 stars 177 forks source link

Ui Shell has multiple A11y issues #1108

Open schuetza opened 3 years ago

schuetza commented 3 years ago

We are using carbon/vue now for a while, and in most cases we experienced that the components are accessible as claimed here: https://www.carbondesignsystem.com/guidelines/accessibility/overview.

Last year we moved from our own header implementation to the Carbon UI Shell component. However, this component has multiple accessibility issues as listed below.

To demonstrate the issues I provided a code sandbox here: https://yxwsf.csb.app/ (https://codesandbox.io/s/carbon-components-vue-forked-yxwsf)

Detailed description

1. Menus not navigable by keyboard

On the code sandox I have a header with a Hamburger Menu (cv-header-menu-button) and a right-hand menu (cv-header-menu). After loading the page I can tab to the Hamburger Menu and open it with both with Space or Enter. But after that, I can't navigate into it, not with tab, and not with arrow keys (as defined here: https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-12)

-> expected: after opening a menu with the keyboard, I can reach the menu items per keyboard, too. A possible quick fix here might be to change the order of the DOM Tree, as demonstrated in the sandbox:

2. Menus closed with Hamburger menu participate in the tab order

-> expected: Tab order follows the flow in the screen, hidden elements must not have a tab stop

3. Menus closed with Hamburger menu are still visible to Screen Reader

When closing the menu, the menu is just shifted out of the screen, but a Screen reader doesn't have a concept of inside/outside visible screen. Therefore the screenreader reads all menu items, independent if the menu is open or closed.

-> expected : elements that should not be displayed must have style visibility:hidden or display:none to guide screen reader to ignore them

schuetza commented 3 years ago

see also https://ibm-cloud.slack.com/archives/C046Y0YUD/p1610472415247300

github-actions[bot] commented 2 weeks ago

This issue has been marked as stale because it has required additional info or a response from the author for over 14 days. When you get the chance, please comment with the additional info requested. Otherwise, this issue will be closed in 14 days.