Closed Bug 1946912 Opened 6 months ago Closed 6 months ago

Windows Narrator does not automatically switch out of scan mode when encountering <input>

Categories

(Core :: Disability Access APIs, defect)

Unspecified
Windows 11
defect

Tracking

()

RESOLVED FIXED
137 Branch
Tracking Status
firefox137 --- fixed

People

(Reporter: nlapre, Assigned: nlapre)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

STR:

  1. Turn on UIA support in about:config; set accessibility.uia.enable to true.
  2. Launch Windows Narrator
  3. Open site data:text/html,<input placeholder="enter text...">
  4. Press tab to move focus to the input and attempt to type in the input field

Expected: Narrator will switch out of "scan mode" and allow you to type, as it does in Edge.
Actual: Narrator doesn't switch out of scan mode. The user has to press Narrator + Space to switch scan mode off so they can input text.

This happens for <input type="radio">, too, and probably others that I haven't tested yet. Maybe this is an issue with our reporting of state or other attributes?

Assignee: nlapre → nobody

One other note here: the Awesomebar works for this. If you press Ctrl + t to open a new tab and start typing in the input, things work. However, other chrome elements, like the search bar in about:settings, have the same buggy <input> behavior described here. If the fix for this doesn't fix all of them, we should make another bug for the rest.

Looks like this is because of a bug in this code. At a minimum, it doesn't account for text fields with no children that are themselves editable. In the example from the bug description, we'd end up checking that acc's parent (the document), and reporting its state (read-only). Assigning to myself since I'm partway through a fix.

Assignee: nobody → nlapre
Blocks: uiatext

I'm going to scope this issue down to just text input <input>s and <textarea>s. Radio buttons appear to lack automatic scan mode exiting for some other reason. In fact, Chrome/Edge share those issues. This issue should specifically deal with automatic scan mode switching for UIA text pattern issues with text inputs.

It was possible for <input> and <textarea> to incorrectly report the IsReadOnly
property as "true" to UIA, particularly when empty. There is no text leaf in
empty text inputs, so our TextLeafPoint would point to the text field itself.
Code that retrieves attributes for UIA didn't handle this case, which caused AT
issues, such as Narrator failing to switch out of scan mode automatically.

This revision fixes the issue by properly checking for text fields when figuring
out whether a TextLeafPoint's Accessible is read-only. It also adds a test to
verify the same.

Pushed by nlapre@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/49b809e6c324 Properly expose read-only property to UIA for text fields, r=Jamie
Status: NEW → RESOLVED
Closed: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → 137 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: