FreedomScientific / standards-support

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

JAWS emits wrong semantic role for grids in Forms mode #838

Open Vladimir-Goncharov-a11y opened 5 months ago

Vladimir-Goncharov-a11y commented 5 months ago

Summary

ARIA introduces 2 roles for tabular information: table and grid. While table is static table, grids are interactive widgets. JAWS in Forms mode, when tabbed into the grid, emits the semantic role of "table" for the grid.

To reproduce, you need a grid made with <table role="grid" aria-label="Example"> I've uploaded a text file, rename an extension to .html and open it in Chrome. odan_257_grid_role2.txt There is a text field which has no relationship with the grid, but needed to set focus outside of the grid and switch JAWS to Forms mode. Set focus to the first field. Switch JAWS to Forms mode automatically or manually (depending on your JAWS settings). Confirm the current JAWS mode by pressing alt-del. Press Tab key to jump into simplified Grid example. JAWS transcript:

Example table Column 1, Row 2 Example Head r1 c3 // this is the row header Col 1 // this is the column header Cell r1 c1 // The first cell content column 1 row 2 // Focused cell coordinates

The bug: grid role is not emitted, but the role "table" emitted instead.

Please, emit role "grid" for static tables, and "grid" for elements with role "grid". BTW, use "t" quick navigation key in Virtual PC Cursor mode. JAWS correctly emits the grid role, the same is expected in Forms mode.

Expected result

The control type of the widget should be "grid", not "table". Please, do not forget about sound and speech schema of JAWS, if this feature is not depricated. Sound and speech schema allows to assign a dedicated voice alias for any role like button, combo box, etc, including the grid role. Thus, "grid" should be emitted according to Sound and Speech Schema settings.

Actual result

The role "grid" is not emitted at all, but the role "table" is emitted ignoring Sound and Speech schema settings.

Links to ARIA

Role table: https://www.w3.org/TR/wai-aria-1.2/#table A section containing data arranged in rows and columns. See related grid.

"The table role is intended for tabular containers which are not interactive. If the tabular container maintains a selection state, provides its own two-dimensional navigation, or allows the user to rearrange or otherwise manipulate its contents or the display thereof, authors SHOULD use grid or treegrid instead."

Additional Information

Reproducible with default JAWS settings - also incorrectly emits wrong role "table" for grids when tabbed into in Forms mode. Please, use Forms mode to reproduce this bug, not the Virtual PC Cursor mode. The example grid is significantly simplified, no JS attached, just role="grid" and tabstop in the grid cell.

JAWS version and build number

JAWS version 2024.2405.48.400

Operating System and version

Microsoft Windows 11 Professional Version 23H2 (OS Build 22631.3447), System Type x64

Browser and version:

Google Chrome Version 124.0.6367.207

stevefaulkner commented 5 months ago

The roles grid and table are effectively mapped to the same properties in accessibility APIs so JAWS does nothing incorrectly in regards to their announcement.

https://www.w3.org/TR/core-aam-1.2/#role-map-grid

https://www.w3.org/TR/core-aam-1.2/#role-map-table