nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.09k stars 631 forks source link

ARIA role of textbox does not seem to be navigable using single letter navigation #16515

Open tmthywynn8 opened 4 months ago

tmthywynn8 commented 4 months ago

It appears that in certain cases, edit boxes, e.g., role="textbox", are not navigable with NVDA using single letter navigation commands. While this may not be code that is to specification, it is encountered in the wild. Tested against JAWS 2024 and Narrator (Windows 10) and both let me navigate by edit fields. I am not a coder to please excuse any bad terminology.

Steps to reproduce:

  1. Paste the following into the address bar. This has two paragraphs on either side of a div with an edit box in the middle. Div was copied from Outlook on the Web with slight modifications. data:text/html,<p>Paragraph 1</p><div role="textbox" aria-multiline="true" aria-readonly="true" tabindex="-1"><span contenteditable="false"><label>To:</label></span><span contenteditable="false"><span aria-label="Opens card for John Doe" tabindex="0" role="button" aria-haspopup="dialog" data-is-focusable="true"><span><span>John Doe</span></span></span></span></div><p>Paragraph 2</p>
  2. Navigate by edit fields, i.e., by pressing E.

Actual behavior:

NVDA says "no next edit field".

Expected behavior:

NVDA should say something like "To: edit read only multi line button opens dialog Opens card for John Doe".

System configuration

Other questions

jcsteh commented 3 months ago

This isn't a valid editable text box because it doesn't have the contentEditable attribute. This is why NVDA ignores it. Even if you could navigate to it, you wouldn't be able to do anything useful with it.

tmthywynn8 commented 3 months ago

Understood, however as this is production code from Outlook (hopefully fixed at some point in the future), and while this may be nonconformant code, NVDA recognizes it as an edit field verbally and so it should still be navigable via standard form field navigation commands. In other words, because NVDA says "edit read only multi line" when encountered, it is expected behavior that if one presses F or E, NVDA moves by form field elements and edit fields respectively.