elastic / kibana

Your window into the Elastic Stack
https://www.elastic.co/products/kibana
Other
19.77k stars 8.17k forks source link

[Discover] [Unified Doc Viewer] Doc viewer flyout screenreader a11y issues #194367

Open davismcphee opened 5 days ago

davismcphee commented 5 days ago

191039 improved keyboard usability for the Discover doc viewer flyout, but there are still some remaining screenreader a11y issues that need to be investigate and addressed:

Keyboard: Chrome, Firefox, Safari all worked well in a keyboard-only environment. I was able to verify focus moving to the non-modal dialog correctly, being restored correctly on ESC keypress, arrow keys to show next/previous document, and Enter keypress to show next/previous document.

Safari + VoiceOver (MacOS): VO doesn't have a notion of Browse vs Forms/Focus mode, it's all one mode. Focus was properly set to the non-modal dialog when I opened it, and focus restored when I closed it. The dialog kept focus when I used the arrow keys to show next/previous document. VO broke down when I tried to press Enter on the next/previous buttons in the dialog. At that point, focus was incorrectly moved back to the data grid button I pressed initially.

Chrome | Firefox + NVDA (Windows 10): NVDA worked as expected in the default Browse mode. I was able to traverse the data grid like a table, which is typical behavior. I could open the dialog and close it with focus properly handled. I could press Enter to show next/previous document and focus was maintained. The changed document was announced properly. NVDA broke down when I switched to Focus mode to traverse the data grid and modal using arrow keys only. When I pressed the arrows to go to next / previous document, focus was maintained, but when I used the proper Next / Previous buttons and pressed Enter focus was lost back to the data grid.

Chrome + JAWS (Windows 10): JAWS worked as expected in the default Browse mode. I was able to traverse the data grid like a table, which is typical behavior. I could open the dialog and close it with focus properly handled. I could press Enter to show next/previous document and focus was maintained. The changed document was announced properly. JAWS also broke down when I switched to Forms mode to traverse the data grid and modal using arrow keys only. When I pressed the arrows to go to next / previous document, focus was maintained, but when I used the proper Next / Previous buttons and pressed Enter focus was lost back to the data grid.

It seems something about Forms/Focus mode is causing the data grid to steal focus back when an Enter keypress is registered in the non-modal dialog. It's only happening when the screen readers are turned on, not keyboard only.

elasticmachine commented 5 days ago

Pinging @elastic/kibana-accessibility (Project:Accessibility)

elasticmachine commented 5 days ago

Pinging @elastic/kibana-data-discovery (Team:DataDiscovery)