FreedomScientific / standards-support

Contains documentation for Vispero software support of Web standards
https://freedomscientific.github.io/standards-support/
GNU General Public License v3.0
105 stars 11 forks source link

Electron: Grid header cells aren't announced when focus is moved in the table body #634

Open sivakusayan opened 2 years ago

sivakusayan commented 2 years ago

Summary

This is specific to web code hosted in the Electron framework, which ultimately uses Chromium to do the rendering and communicate accessibility information. I'm not sure if the behavior below is intentional, so let me know if this is expected.

When WAI-ARIA Authoring Practices Data Grid Examples is hosted in electron-quick-start, moving focus in the grid examples won't have the header cells be read out.

  1. Clone electron-quick-start to a local folder.
  2. Use the instructions in the repository README to start the application.
  3. Ctrl+Shift+I to open developer tools.
  4. In the console, set window.location.href = "https://www.w3.org/TR/wai-aria-practices/examples/grid/dataGrids.html"
  5. Open JAWs 2022.
  6. Move focus into any of the cells in the grid's body.
  7. Move focus to the cell directly to the right using the right arrow key.

Expected result

The cell contents and the header for that cell would be read.

Actual result

Only the cell contents were read.

Example

  1. Launch WAI-ARIA Authoring Practices Data Grid Examples in Electron using the instructions above.
  2. Move focus to the cell '01-Jan-16' in the first grid on the webpage.
  3. Activate the right arrow key.
  4. 'Deposit' is announced, but not the 'Type' header cell.

Additional Information

This workflow behaves as expected with JAWs 2022 + Chrome, JAWs 2021 + Electron, and NVDA + Electron. Using Accessibility Insights for Windows, I believe that Electron is doing the right thing here, too - GetCurrentColumnHeaderItems and GetCurrentRowHeaderItems seem to return the expected values.

JAWS version and build number

Version 2022.2202.38 ILM Version 2022.2204.20 ILM

Operating System and version

Microsoft Windows 10 Enterprise Version: 10.0.19042 Build 19042

Browser and version:

Electron Version 18.0.0-beta.5. (This version of Electron uses Chromium 100.0.4894.0)

sivakusayan commented 2 years ago

After a meeting between Epic Systems and some people from the JAWS development team, it turns out that JAWS + Electron interactions have a complicated history. Electron used to be treated the same as Chrome, but due to various electron apps wanting to have slight deviations in behavior, this ended up being a complex problem resulting in behavior like the above. This is still a problem they are trying to solve.

A workaround is to pretend that your application name is the same as Chrome's. More specifically, setup your ConfigNames.ini file to have a line that looks like this, where YourApplicationName is, well, the name of your application:

YourApplicationName=chrome

I'm leaving this open for now since I'm not sure if this should still be considered a bug or not - I'm not sure if pretending that our application has a different name is a good long-term solution. Feel free to close if you disagree.