Closed Bug 1618705 Opened 3 years ago Closed 3 years ago

VoiceOver says HTML table has 0 columns

Categories

(Core :: Disability Access APIs, defect, P1)

All
macOS
defect

Tracking

()

VERIFIED FIXED
mozilla77
Tracking Status
firefox77 --- verified

People

(Reporter: eeejay, Assigned: morgan)

References

Details

(Whiteboard: [mac2020_1])

Attachments

(1 file)

STR:

  1. Load data:text/html,<h1>Table Example</h1><table id="customers"><tbody><tr><th>Company</th><th>Contact</th><th>Country</th></tr><tr><td>Alfreds Futterkiste</td><td>Maria Anders</td><td>Germany</td></tr><tr><td>Centro comercial Moctezuma</td><td>Francisco Chang</td><td>Mexico</td></tr><tr><td>Ernst Handel</td><td>Roland Mendel</td><td>Austria</td></tr></tbody></table>
  2. Navigate from heading to table.

Expected:
Safari says "table 3 columns, 4 rows"

Actual:
Firefox says "table 0 columns, 4 rows"

Two things to note:

  • If you navigate with VO+Right into the table the cursor jumps to the second column header.
  • If you navigate with VO+Left out of the table Firefox announces "3 columns" correctly.
Assignee: nobody → mreschenberg
Priority: P2 → P1

Interestingly, Chrome has the same problem.

Safari doesn't, and they order their children differently; For a table of 4 rows and 3 columns with column headers, Safari maintains each as one of 8 children of the table. Each column has data cell children, each row has data cell children, but when you inspect a data cell, it only has a row as a parent.

This is... kinda gross? but I guess VO might be getting the number of columns from the length of the "Columns" attribute list instead of using the "ColCount" attribute itself :( Since we don't have an easy way to access the table columns, we currently support ColCount but not Columns.

We could change how we do children here, but that feels like a moderately large and confusing rework for what the issue is.

What if you return the children (cells) of the first row for AXColumns? What do we break?

(In reply to Eitan Isaacson [:eeejay] from comment #2)

What if you return the children (cells) of the first row for AXColumns? What do we break?

I'll give it a shot. My guess is we'll get non-uniform tables incorrect.

Pushed by mreschenberg@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/89ccbf43e9e0
Construct column containers and list them as children of our table accessible. r=eeejay
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla77
Depends on: 1628236

Reproduced the initial issue using old Nightly build from 2020-02-27, verified that the issue is not reproducible anymore using latest Firefox Beta 77.0b4 on macOS 10.15.5 Beta.

Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.