Esri / calcite-design-system

A monorepo containing the packages for Esri's Calcite Design System
https://developers.arcgis.com/calcite-design-system/
Other
290 stars 75 forks source link

[List and List Item] Support sorting for AT users #7426

Closed geospatialem closed 7 months ago

geospatialem commented 1 year ago

Check existing issues

Summary

With parity of list, we should provide support to AT users of list when using sorting to finalize the efforts initiated in #6554.

Actual Behavior

When active, both JAWS and NVDA are unable to sort list-items in the list.

Expected Behavior

Same behavior as keyboard navigation without AT enabled, where space activates the move, and the arrow keys place the item.

Reproduction Sample

https://codepen.io/geospatialem/pen/bGQzavG

Reproduction Steps

  1. Activate JAWS or NVDA
  2. Open the code sample
    • JAWS: Chrome
    • NVDA: Firefox
  3. Using your keyboard navigate to the first List Item's movable button
  4. Press the space key
  5. Press the down arrow key
  6. Observe the breakage (Note: NVDA takes two down arrows to break)

Reproduction Version

1.5.0-next.33 (1.5.0)

Working W3C Example/Tutorial

No response

Relevant Info

Regression?

No response

Priority impact

p3 - want for upcoming milestone

Calcite package

Esri team

Calcite (dev)

geospatialem commented 1 year ago

Effort should be considered with the effort in https://github.com/Esri/calcite-design-system/issues/7537

geospatialem commented 11 months ago

This also applies to the sorting with the block component in 2.0.0 with both Windows AT, JAWS and NVDA, as outlined in https://codepen.io/geospatialem/pen/PoVXeVL cc @driskull

driskull commented 11 months ago

@geospatialem what exactly is the breakage? Is it not reading something, is it not moving?

geospatialem commented 11 months ago

@geospatialem what exactly is the breakage? Is it not reading something, is it not moving?

It's the same for the issue above and block, where the context is provided to AT, but sorting/moving is not possible when either JAWS or NVDA are active.

driskull commented 7 months ago

@geospatialem according to the following:

https://stackoverflow.com/questions/52261977/why-javascript-if-keycode-enter-key-or-spacebar-key-does-not-work-with-nvda

It probably won't fire because NVDA intercepts the keys if you are in browse mode, which is normal. If you were to manually switch to focus mode (insert + space -- you'll hear a "typewriter" sound), the code should get passed through.

I can override this by setting the calcite-handle as a role of application which does seem to fix this.

Would this be an acceptable result? I will create a PR for testing.

github-actions[bot] commented 7 months ago

Installed and assigned for verification.

geospatialem commented 7 months ago

Verified on Windows with NVDA and JAWS in 2.8.0-next.4. 🎉