Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARIA Grid: Standard table navigation commands don't work when navigating by cell. #3742

Closed
nvaccessAuto opened this issue Jan 2, 2014 · 13 comments

Comments

@nvaccessAuto
Copy link

Reported by bgaraventa on 2014-01-02 23:32
When an ARIA Grid construct uses all requisite ARIA roles and states to convey an ARIA Grid, such as aria-owns and proper role nesting, it is not possible to use standard table navigation commands such as Alt+Control+Left/Up/Right/Down to navigate by cell within the Virtual Buffer.

NVDA gets confused and cannot detect that it is navigating within a table.

This occurs in the latest version of Firefox.

Live demo:
http://whatsock.com/test/demo/Coding%20Arena/ARIA%20Data%20Grids/ARIA%20Data%20Grid%20(Dynamic)/demo.htm

@nvaccessAuto
Copy link
Author

Comment 1 by jteh on 2014-01-07 06:30
Firefox doesn't return table cell information for those table cells. The role is table cell as expected, but otherwise, it acts as if it isn't a valid table cell. I don't understand why yet; I'm looking into it. This will need to be fixed in Firefox, but I need more info before i can file a useful bug.

@nvaccessAuto
Copy link
Author

Comment 2 by jteh on 2014-01-07 07:45
I've noticed that the headers seem to work, but the normal cells don't. I'm poking through the generated code for the grid, but I can't see what the difference might be. Do you have any ideas? I've hacked together some very small test cases using aria-owns, roles, etc. but can't make this misbehave.

@nvaccessAuto
Copy link
Author

Comment 3 by camlorn on 2014-04-04 20:54
I am looking at making something accessible using Aria grids, and can also confirm that really weird things happen. In my case, the following exception:

ERROR - scriptHandler.executeScript (16:53:11):
error executing script: <bound method Gecko_ia2.script_nextColumn of <virtualBuffers.gecko_ia2.Gecko_ia2 object at 0x056B1A10>> with gesture u'ctrl+alt+right arrow'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 174, in executeScript
  File "virtualBuffers\__init__.pyc", line 1422, in script_nextColumn
  File "virtualBuffers\__init__.pyc", line 1398, in _tableMovementScriptHelper
  File "virtualBuffers\gecko_ia2.pyc", line 265, in _getNearestTableCell
AttributeError: 'Mozilla' object has no attribute 'IAccessibleTableObject'

I am 99% sure my code is correct, and the same can be made to happen in some other examples on the web (University of Illinois apparently maintains some).

@nvaccessAuto
Copy link
Author

Comment 4 by jteh on 2014-04-05 00:54
See above. I need a simple, distilled test case to figure out what's going on here. I can't figure out exactly what breaks it.

@nvaccessAuto
Copy link
Author

Comment 5 by mgifford on 2014-06-19 12:43
It is a brilliant Discworld example mind you.

So @jteh NVDA should work fine with aria-owns and also aria-owns in tables.

@nvaccessAuto
Copy link
Author

nvaccessAuto commented Jun 28, 2014

Attachment grid-without-rowgroup.html added by bgaraventa on 2014-06-28 00:01
Description:
Update:
File added from Trac
grid-without-rowgroup.html.txt

@nvaccessAuto
Copy link
Author

nvaccessAuto commented Jun 28, 2014

Attachment grid-with-rowgroup.html added by bgaraventa on 2014-06-28 00:02
Description:
Update:
File added from Trac
grid-with-rowgroup.html.txt

@nvaccessAuto
Copy link
Author

Comment 6 by bgaraventa on 2014-06-28 00:03
I apologize for the delay in getting back, my comp died a while back and a lot of things slipped through the cracks.
I've just isolated where this is happening.

When a grid references a container with role=rowgroup which then references owned rows including role=row, then NVDA fails in Firefox.

If rowgroup is removed so that role=grid only references role=row within aria-owns, then NVDA works correctly in Firefox.

I'll attach two examples that demonstrate this.

Both should work though.

@nvaccessAuto
Copy link
Author

Comment 7 by jtoews on 2015-03-09 22:43
When using role=grid with aria-owns neither Firefox, or IE work correctly with NVDA as far as the standard table gestures are concerned.

The below code example makes use of aria-owns to implement a grid. This code works in Virtual PC Cursor mode with Jaws, but does not work in NVDA. Only the header gets read but navigation to cells and rows is broken.

   <div role="grid" aria-label="Label Testing" aria-readonly="true" aria-owns="row_1 row_2 row_3">
          <div role="row" id="row_1" aria-owns="hdr_1 hdr_2 hdr_3"> 

          </div>
          <div role="row" id="row_2" aria-owns="cel_2_1 cel_2_2 cel_2_3"> 

          </div>
          <div role="row" id="row_3" aria-owns="cel_3_1 cel_3_2 cel_3_3"> 

          </div>
   </div>

   <div role="columnheader" aria-readonly="true" id="hdr_1">Animal</div>
   <div role="columnheader" aria-readonly="true" id="hdr_2">Car</div>
   <div role="columnheader" aria-readonly="true" id="hdr_3">Plant</div>

   <div role="gridcell" aria-readonly="true" id="cel_2_1" aria-describedby="hdr_1">Dog</div>
   <div role="gridcell" aria-readonly="true" id="cel_2_2" aria-describedby="hdr_2">Toyota</div>
   <div role="gridcell" aria-readonly="true" id="cel_2_3" aria-describedby="hdr_3">Tree</div>

   <div role="gridcell" aria-readonly="true" id="cel_3_1" aria-describedby="hdr_1">Dog</div>
   <div role="gridcell" aria-readonly="true" id="cel_3_2" aria-describedby="hdr_2">Dodge</div>
   <div role="gridcell" aria-readonly="true" id="cel_3_3" aria-describedby="hdr_3">Flower</div>

@bhavyashah
Copy link

I believe work has been done recently to improve support for ARIA grids. Does that encompass this ticket too? If so, I suggest closing.

@ehollig
Copy link
Collaborator

ehollig commented Aug 12, 2017

I believe this is now fixed in Firefox. @jcsteh, any further clarification?

@jcsteh
Copy link
Contributor

jcsteh commented Aug 14, 2017

Firefox previously didn't support aria-owns fully, which was probably the cause of this. It does now.

@ehollig, did you re-test the test case(s) here? If not, this needs to be re-tested to confirm whether the issue is fixed.

@ehollig
Copy link
Collaborator

ehollig commented Aug 14, 2017

Tested both attachments and the example provided in the original post with the latest NVDA and Firefox 54 and was able to navigate the tables using the table commands. Closing as worksforme

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants