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

Fix handling of table cells without a containing table in browse mode. #8887

Merged
merged 3 commits into from
Oct 29, 2018

Conversation

jcsteh
Copy link
Contributor

@jcsteh jcsteh commented Oct 29, 2018

Link to issue number:

None.

Summary of the issue:

When using browse mode quick navigation to move to anything inside a message body in the new Gmail, the entire message body is reported after the element to which you just navigated.

Description of how this pull request fixes the issue:

In the new Gmail, message bodies are contained within a "gridcell" which does not have a containing grid. The gridcell's name is the entire body of the message. When using quick navigation to move to anything inside these "cells", NVDA reports information about the cell, including its name, after the element to which you just navigated.

To fix this, cells outside of tables are now treated as layout.

Having a gridcell outside of a grid is authoring error, violates the ARIA spec and really should be fixed by Gmail. (I've reported it to Google already.) However, it doesn't hurt us to handle this more gracefully and thus mitigate user pain in the interim.

Testing performed:

All tests performed in Firefox.

  1. Tested that navigating to a link in a Gmail message body no longer reports the entire message body afterwards.

  2. With this test case:

    data:text/html,<div role="cell" aria-label="unwanted">foo<h1>bar</h1></div>

    verified that quick navigating to the heading with "h" does not report "unwanted cell" after the heading.

  3. With this test case:

    data:text/html,<table><tr><th>foo<h1>bar</h1></th><td>baz</td></tr></table>

    verified that quick navigating to the heading still just reports the heading, and that the column number is still reported when using the cursor keys and column navigation commands to move between cells.

  4. With this test case:

    data:text/html,<table><tr><td>foo<h1>bar</h1></td><td>baz</td></tr></table>

    verified that quick navigating to the heading still just reports the heading. Verified that with include layout tables disabled (default), no table coordinates are reported. Verified that with include layout tables enabled, verified that the column number is still reported when using the cursor keys and column navigation commands to move between cells.

Known issues with pull request:

None.

Change log entry:

Section: Bug Fixes

- In the new Gmail, when using quick navigation inside messages while reading them, the entire body of the message is no longer reported after the element to which you just navigated.

In the new Gmail, message bodies are contained within a "gridcell" which does not have a containing grid.
The gridcell's name is the entire body of the message.
When using quick navigation to move to anything inside these "cells", NVDA reports information about the cell, including its name, after the element to which you just navigated.
This results in a huge amount of spurious (and confusing) verbosity in Gmail when using quick navigation.
To fix this, cells outside of tables are now treated as layout.
@michaelDCurran michaelDCurran merged commit 5fe34c5 into nvaccess:master Oct 29, 2018
@nvaccessAuto nvaccessAuto added this to the 2018.4 milestone Oct 29, 2018
@jcsteh jcsteh deleted the browseModeInvalidCell branch October 31, 2018 04:57
michaelDCurran added a commit that referenced this pull request Oct 31, 2018
michaelDCurran added a commit that referenced this pull request Oct 31, 2018
…ted in braille and speech" (#8899)

* Revert "Revert "Don't announce 'selected' when the focus moves in Google sheets if the focused cell is the only cell selected (#8879)" (#8893)"

This reverts commit b4e9e83.

* Revert "Don't announce 'selected' when the focus moves in Google sheets if the focused cell is the only cell selected (#8879)"

This reverts commit 51f5b2f.

* Revert "Merge all vbufBackend dlls into nvdaHelperRemote.dll (#8866)"

This reverts commit 24f5123.

* Revert "Fix handling of table cells without a containing table in browse mode. (#8887)"

This reverts commit 5fe34c5.

* Revert "Ensure that  labels explicitly set on divs and spans are reported in braille and speech (#8886)"

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

Successfully merging this pull request may close these issues.

3 participants