Accessible Grid structure is incorrect when using aria-owns to establish parent-child relationship

RESOLVED WORKSFORME

Status

()

Core
Disability Access APIs
RESOLVED WORKSFORME
2 years ago
a year ago

People

(Reporter: Alex Tokarev, Unassigned)

Tracking

(Blocks: 1 bug)

48 Branch
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

2 years ago
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36

Steps to reproduce:

Try this markup test with JAWS 17: http://aria-test.sencha.com/aria/locked-grid-markup.html. Clicking on cells will give different behavior for the left ("master") side and right ("slave") side. As per https://bugzilla.mozilla.org/show_bug.cgi?id=1133213 using aria-owns should reestablish child-parent relationships and both sides should be recognized as one seamless accessible Grid widget.


Actual results:

Click on "Apple Inc". JAWS will read "Test grid grid. Company. Column 1 row 2". Click on "AAPL", JAWS will read "Symbol. AAPL". Click on "$123.43", JAWS will read only cell value but not associated column header.

Click the document outside of the table. Click "-$3.21" in Price change column. JAWS will read "Test grid grid. -$1.23".


Expected results:

Clicking on "$123.43" after "AAPL" should read "Stock price. $123.43".

Clicking back into grid from the document on "-$3.21" in Price change column should read "Test grid grid. Column 4 row 3. Price change. -$3.21".

Updated

2 years ago
QA Whiteboard: [bugday-20160829]
Component: Untriaged → Disability Access

Updated

2 years ago
Component: Disability Access → Disability Access APIs
Product: Firefox → Core

Updated

2 years ago
Status: UNCONFIRMED → NEW
Ever confirmed: true

Updated

2 years ago
Blocks: 540399
(Reporter)

Comment 1

a year ago
Can we get some traction on this issue please? It is blocking our progress on accessible multi-scrolling region grid in Ext JS. I'm pretty sure the underlying aria-owns feature can be used by other frameworks as well for the similar purposes.

At the moment it's plain impossible to implement a complex grid in accessible way and this bug is the only obstacle left in our path (I hope).

Comment 2

a year ago
Hey, Alex. Given that we have quite restricted resources next few months, I'm not sure, if anyone can jump on it anytime soon. I could put it on my list, but I cannot guarantee I will be faster. Alternatively, if your company policy allows that, then you could devote some time to fix this, I'd be happy to help with it.
(Reporter)

Comment 3

a year ago
Alexander, thanks for clarification. I don't think it would be a problem if I took a stab at this; I'm not sure it would be anything but waste of time though. My C++ is, shall we say, very rusty, and more importantly, I'm not familiar with Mozilla code base and have no clue what could cause the problem and where to look for it.

Any pointers in that regard?

Comment 4

a year ago
I'd say this bug requires some debugging, rather than strong c++ skills, anyway.

I checked the accessible tree with DOM Inspector on Nightly, and I see IAccessibleTableCell exposed on each arai-owned cell, which provides correct column header relation and row/column indices. I can see that 'table' property is wrong on them, which should be fixed of course, but it shouldn't be the problem you observe. Did you try other screen readers like NVDA/VoiceOver?
(Reporter)

Comment 5

a year ago
I tried that with NVDA with similar results to JAWS. We do not target VoiceOver at this time so I didn't test that.

Comment 6

a year ago
Jamie, could you take a look at the issue please? IAccessibleTableCell interface on aria-owned cells seems working with me (comment #4).
Flags: needinfo?(jamie)

Comment 7

a year ago
Alexander/Jamie,

We also feel this is a significant issue, and would appreciate your expedited attention towards it. Thanks.

Comment 8

a year ago
I can't reproduce this with NVDA. NVDA correctly reports the Stock price and Price change column headers for those cells.
Flags: needinfo?(jamie)
(Reporter)

Comment 9

a year ago
@jamie,

Not sure what steps you take but I just tried this example with NVDA 2016.4 and Firefox 50 and I still can reproduce the problem.

I clicked consequently on cells: Apple Inc., AAPL, $123.43, -$1.23, CSCO. You can see that there is a big difference in NVDA speech log:

Apple Inc.  selected  editable  row 2
Apple Inc.
AAPL  selected  editable  Symbol  column 2
AAPL
$123.43  selected
-$1.23  selected
CSCO  selected  editable  row 3
CSCO

For the cells in two columns on the left, column headers are correctly associated with the cells and are announced as such. For three columns on the right, column headers are not announced, just cell value. Going back to a cell in leftmost 2 columns, column headers are correct again.

In browse mode it's similar, column headers are only announced for leftmost 2 columns, and right side cells are just "cell".

This looks like an issue to me.
I'm testing in Firefox nightly and cannot reproduce this. All column header information is read as expected. Can you please test with Firefox nightly and confirm whether you see the problem there?
(Reporter)

Comment 11

a year ago
@jamie,

Thanks for the heads-up. I tried this example in both NVDA and JAWS 17 and I'm happy to report that the grid is now working properly, and not only in the nightly FF 53 but also in FF 52! Which is very good news indeed since FF 52 is going to be an ESR that we can target in our framework.

Thanks guys!

Comment 12

a year ago
worksforme per comment #11
Status: NEW → RESOLVED
Last Resolved: a year ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.