Skip to content

Prevent table heading text being announced twice#12763

Merged
seanbudd merged 3 commits into
nvaccess:masterfrom
mfairchild365:issue-10840
Aug 25, 2021
Merged

Prevent table heading text being announced twice#12763
seanbudd merged 3 commits into
nvaccess:masterfrom
mfairchild365:issue-10840

Conversation

@mfairchild365

@mfairchild365 mfairchild365 commented Aug 21, 2021

Copy link
Copy Markdown
Contributor

Link to issue number:

Fixes #10840

Summary of the issue:

NVDA+Chromium browsers are announcing the name of table header cells twice when navigating directly to the header cell.

For example, NVDA was announcing a header like this "row 1 Subject column 1 Subject" where the name is announced twice.

Description of how this pull request fixes the issue:

Chrome is referencing cell headers as their own header, which is causing the name of the header to be announced twice when navigating to it directly.

This change checks if the header is referring to itself before adding the name of the header for the cell to the speech. output. If it is a self-reference, the name is not added to the speech output.

I'm confident that this PR fixes the issue, but I'm not as confident that this is the best fix. Feedback is more than welcome!

Now "row 1 Subject column 1 Subject" is announced as "row 1 column 1 Subject".

Since this is due to how Chrome is surfacing the header, it could be considered a bug in Chromium instead of NVDA. Why fix it here? Because it is low effort and makes NVDA more resilient if other browsers end up surfacing headers in a similar way in the future. Also, other screen readers such as JAWS handle this scenario well and don't announce the header name twice.

Testing strategy:

I added a system test for this case as part of this PR. I also manually tested several tables found in the wild in chrome and firefox.

Known issues with pull request:

Change log entries:

Bug fixes

- When reading a header cell of a table in Chrome, fix the column name being announced twice. (#10840)

Code Review Checklist:

  • Pull Request description is up to date.
  • Unit tests.
  • System (end to end) tests.
  • Manual testing.
  • User Documentation.
  • Change log entry.
  • Context sensitive help for GUI changes.
  • UX of all users considered:
    • Speech
    • Braille
    • Low Vision
    • Different web browsers

Chrome is referencing cell headers as their own header, which is causing the name of the header to be announced twice when navigating to it.

This change checks if the header is referring to itself before adding the name of the header for the cell to the speech output.
@AppVeyorBot

Copy link
Copy Markdown

See test results for failed build of commit 2897f53d80

@AppVeyorBot

This comment has been minimized.

@seanbudd seanbudd changed the title Fix #10840 Prevent table heading text being announced twice Aug 23, 2021

@seanbudd seanbudd left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your work here @mfairchild365, LGTM.

@seanbudd

seanbudd commented Aug 25, 2021

Copy link
Copy Markdown
Member

Just so you know, I updated the PR description:

  • I updated the title to be descriptive
  • I updated the reference to the issue number, so it closes the issue on merge.
  • I added a changelog entry. Usually we ask that contributors add one within the PR description, so that we can review and add it to the changelog.

@seanbudd seanbudd merged commit 0f481d8 into nvaccess:master Aug 25, 2021
@nvaccessAuto nvaccessAuto added this to the 2021.3 milestone Aug 25, 2021
@bleeksstacy

Copy link
Copy Markdown

NVDA is still announcing table headers twice for tables viewed using NVDA 2023.1 and Chrome browser. How is this issue closed?

@seanbudd

seanbudd commented Jun 5, 2023

Copy link
Copy Markdown
Member

This is a pull request. Please open a new issue if you are experience a problem @bleeksstacy

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.

Screen reader announces table header twice for Angular

5 participants