FreedomScientific/standards-support

JAWS "List of Elements" hotkeys do not display all information for form fields inside tables

ztfine2 opened this issue · 4 comments

Summary

When a table contains one or more form fields (e.g., a single input or button, or a group of multiple inputs), those form fields are not adequately labeled unless both 1. a rowheader is present and 2. the input (or group) is itself directly labeled using the column and row header cells.

Expected result

In the "List of edit buttons," "List of form fields," etc lists, I expect that elements have proper columnheader and rowheader context.

Actual result

In most cases (except the one described above), one or more context pieces are missing.

Example

https://codepen.io/Zachary-Fine/pen/JjqgYEO
Notice that, in all the rows except body rows 1 and 3, the edit boxes do not have proper labeling. In most cases, buttons are not given proper context either. The exception is in rows 1 and 3, in the case where a button is inside a labeled group.

Additional Information

JAWS version and build number

JAWS v2023.2402.1

Operating System and version

Windows 10, version 22H2, OS build 19045.4529

Browser and version:

Google Chrome - 126.0.6478.127 (Official Build) (64-bit) (cohort: Stable)

I don't see a JAWS problem here. JAWS displays the labelling of the elements correctly in the element list. Rowheader and columnheader do not automatically result in a label. This could be changed in the future: w3c/aria#2148

Default row/columnheader label associations would certainly work for these examples, but the problem here seems to be that labels (from aria-labelledby) on groups within a table cell are not recognized by JAWS. The edit box in the second row ("Labelledby without rowheader") / third column ("col 3") does not have a label - using Ins+F5 shows that it is listed as "Unlabeled1 edit".

image

The edit box in the second row ("Labelledby without rowheader") / third column ("col 3") does not have a label - using Ins+F5 shows that it is listed as "Unlabeled1 edit".

that is because it is unlabeled. When viewed in the chrome accessibility tree it has no accessible name textbox ""

@stevefaulkner @ztfine2

What is noticeable in the example here is a small irregularity in the JAWS element overview:

  • If an element has a group label (via fieldset + legend or role=group), the group label is displayed in the element overview in addition to the label
  • If an element has a group label but no label, the group label is not displayed in the element overview.

A separate ticket can be created for this problem because it has nothing to do with the table.