Open mibadget opened 4 years ago
cc: @MarcoZehe, @jcsteh, we see this issue in several cases in browsers, also checkboxes or edit fields in forms and modal dialogs are often reported twice by NVDA.
This is not Firefox specific. It occurs because you're focusing a link inside the cell and both the cell and the link have the same name. The cell inherits its name from the link, since ARIA says cells should get name from contents. Annoying, yes, but not a spec violation (quite the opposite).
The question is whether there's a way to improve this for users without breaking other use cases in the process.
cc: @JulienCochuyt
I guess that in focus mode, table cells should not have their name inferred from their content when reporting the focus ancestry as contextual info. @jcsteh, what do you think? Is that something easily feasible with the current architecture? Or maybe can you think of a case where the above statement would not be satisfying?
I guess that in focus mode, table cells should not have their name inferred from their content when reporting the focus ancestry as contextual info.
NVDA isn't inferring name from content. The browser is inferring the name from content, as required by the ARIA spec. If NVDA wanted to "fix" this, it would need to avoid reading the name of the cell in this case.
This also happens in DataGrid cells in WPF applications.
The problem here is that NVDA is reading both the DATAGRID Cell Name and also the text. Maybe WPF sets the cell name to the text? However, because the DataGrid cell Name is the same as the text, the value gets read twice.
Data Grid Cell 'KeyVaultCertificate'
Text 'KeyVaultCertificate'
Here's the NVDA Speech Viewer output. You can see that all of the DataGrid Cells and their respective values are being output twice. For example, with the following DataGrid: Name | Thumbprint | Status | Expiration Date | KeyVaultCertificate | xxxxxxxxx | Enabled | 4/17/2021 | test | xxxxxxxxx | Enabled | 5/29/2012 |
Anytime you tab to one of the values in the column, such as Name, you'll see the following in the SpeechViewer:
KeyVaultCertificate KeyVaultCertificate row 1 Name column 1 xxxxxxxxx xxxxxxxxx row 1 Thumbprint column 2 Enabled Enabled row 1 Status column 3 4/17/2021 4/17/2021 row 1 Expiration Date column4
Here's an image since I wasn't able to copy paste from the Screen Reader. I scrubbed sensitive information.
Still reproducible in Firefox 127, Chrome Canary 128 or Edge 127 with NVDA 2024.2.
cc: @SaschaCowley
Steps to reproduce:
Go to https://www.w3.org/TR/wai-aria-practices-1.1/examples/grid/LayoutGrids.html#ex2_label
Start NVDA.
Navigate to the level 3 heading called "Example 2: Pill List For a List of Message Recipients".
Press tab to put focus on the link inside the first grid cell of the table below the heading.
Switch NVDA to Focus Mode.
Use arrow keys to move focus between focusable elements in the cells in the table.
Listen to what NVDA reads for each cell.
Actual behavior:
NVDA Reads "Recipient Name 1 not selected row 1 column 1 Recipient Name 1 link row 1" when moving into the first cell from another element in the table.
Expected behavior:
NVDA Should read "row 1 column 1 Recipient Name 1 link".
System configuration
NVDA installed/portable/running from source:
installed
NVDA version:
2019.2
Windows version:
Version 10.0.18362 Build 18362
Name and version of other software in use when reproducing the issue:
Chrome Version 76.0.3809.100 (Official Build) (64-bit) Firefox Developer Edition 69.0b13 (64-bit)
Other questions
Does the issue still occur after restarting your PC?
Yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
No