When a control on a web page is given an accessible name via aria-label or aria-labelledby, and NVDA's focus mode is active, the text of the control's name cannot be spoken or spelled with the "report current line" command, nor reviewed with text review commands. This is a significant problem in apps like Slack, where each message is wrapped inside a list item with a custom accessible name. In focus mode, the message cannot be repeated, spelled, or moved through by character without reverting to browse mode first.
Steps to reproduce:
- Navigate to https://jscholes.github.io/invisible-names.html in Chrome.
- Press NVDA+Space until focus mode is active.
- Tab to the first button, which has an accessible name of "Button 1" applied with an
aria-label attribute.
- Press NVDA+Up Arrow (desktop) or NVDA+L (laptop) to report the current line. Press the same keystroke quickly to spell it.
- Press other text review keystrokes, like Numpad 1 and Numpad 3 to navigate through the name of the button by character.
- Tab to the second button, which is named "Button 2" via an
aria-labelledby attribute, and repeat steps 4 and 5.
- Repeat steps 2 through 6 in Firefox.
Actual behavior:
The name of the button is announced when focused, but the "report current line" command and other text review commands behave as though the button has no name. For the button using aria-label, NVDA explicitly announces "blank" when trying to review its name. But for the second button that uses aria-labelledby, the relevant commands only result in silence.
Speech Log
NVDA+space
Focus mode
tab
Button 1 button
NVDA+l
blank
numpad 1
Left
blank
numpad 3
Right
blank
tab
Button 2 button
NVDA+l
numpad 1
Left
numpad 3
Right
Expected behavior:
The name of the focused button is announced when using the "report current line" command, while other text review commands allow the name to be reviewed as text. There is no difference between controls named via aria-label and aria-labelledby. Here is a speech log of how it might sound:
NVDA+space
Focus mode
tab
Button 1 button
NVDA+l
Button 1
numpad 1
Left
cap B
numpad 3
Right
u
tab
Button 2 button
NVDA+l
Button 2
numpad 1
Left
cap B
numpad 3
Right
u
NVDA logs, crash dumps and other attachments:
None
System configuration
NVDA installed/portable/running from source:
Installed
NVDA version:
2023.1
Windows version:
Windows 10 Pro, 64-bit, build 19045
Name and version of other software in use when reproducing the issue:
- Chrome 114.0.5735.199 (Official Build) (64-bit)
- Firefox 115.0.2 (64-bit)
Other information about your system:
None
Other questions
Does the issue still occur after restarting your computer?
Yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
No
If NVDA add-ons are disabled, is your problem still occurring?
Yes
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
Yes
When a control on a web page is given an accessible name via
aria-labeloraria-labelledby, and NVDA's focus mode is active, the text of the control's name cannot be spoken or spelled with the "report current line" command, nor reviewed with text review commands. This is a significant problem in apps like Slack, where each message is wrapped inside a list item with a custom accessible name. In focus mode, the message cannot be repeated, spelled, or moved through by character without reverting to browse mode first.Steps to reproduce:
aria-labelattribute.aria-labelledbyattribute, and repeat steps 4 and 5.Actual behavior:
The name of the button is announced when focused, but the "report current line" command and other text review commands behave as though the button has no name. For the button using
aria-label, NVDA explicitly announces "blank" when trying to review its name. But for the second button that usesaria-labelledby, the relevant commands only result in silence.Speech Log
Expected behavior:
The name of the focused button is announced when using the "report current line" command, while other text review commands allow the name to be reviewed as text. There is no difference between controls named via
aria-labelandaria-labelledby. Here is a speech log of how it might sound:NVDA logs, crash dumps and other attachments:
None
System configuration
NVDA installed/portable/running from source:
Installed
NVDA version:
2023.1
Windows version:
Windows 10 Pro, 64-bit, build 19045
Name and version of other software in use when reproducing the issue:
Other information about your system:
None
Other questions
Does the issue still occur after restarting your computer?
Yes
Have you tried any other versions of NVDA? If so, please report their behaviors.
No
If NVDA add-ons are disabled, is your problem still occurring?
Yes
Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?
Yes