Bug 225069 - AX: VoiceOver doesn’t read the context menu options for <input type="password"> when naving with arrow keys
Summary: AX: VoiceOver doesn’t read the context menu options for <input type="password...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: Safari 14
Hardware: Mac (Intel) macOS 11
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-04-26 12:20 PDT by Morgan Reschenberg
Modified: 2021-04-28 13:01 PDT (History)
4 users (show)

See Also:


Attachments
screen shot of Accessibility Inspector Notifications window (58.67 KB, image/png)
2021-04-26 17:03 PDT, James Craig
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Morgan Reschenberg 2021-04-26 12:20:19 PDT
STR:

    Ensure "VO cursor follows keyboard focus" checkbox is checked in VO Utility
    Enable VoiceOver
    Navigate to `data:text/html,<input type="password">`
    Focus the input with the VO cursor by entering the page content (VO+shift+down)
    Launch the context menu by right clicking the input with the mouse or by pressing VO+shift+m
    Navigate the menu options using the up and down arrow keys (without the VO modifier)

Expected:
The context menu options are read aloud by VoiceOver and the VO cursor matches focus with the arrow keys as they traverse the menu.

Actual:
The context menu options are not read aloud by VO. The VO cursor does not follow the arrow key traversal of the menu.

This bug is also being tracked at mozilla here: https://bugzilla.mozilla.org/show_bug.cgi?id=1705157
Comment 1 Radar WebKit Bug Importer 2021-04-26 12:20:52 PDT
<rdar://problem/77169948>
Comment 2 James Craig 2021-04-26 16:56:25 PDT
Since the speech works in the menu with VO+Arrows but does not with unmodified arrows, it might be a focus notification mismatch... Possibly either WebKit is not sending the keyboard "focus" or "selection changed" notifications as expected, or VoiceOver thinks the notification is extraneous/bogus and is therefore ignoring it.
Comment 3 James Craig 2021-04-26 17:03:56 PDT
Created attachment 427110 [details]
screen shot of Accessibility Inspector Notifications window

Pretty good indication this is a WebKit bug:

Accessibility Inspector Notifications window shows notifications for the popup menu when it's displayed (AXCreated, AXWindowCreated, AXMoved, AXWindowMoved, AXLayoutComplete) but no notifications beyond that when changing the selection in the menu.
Comment 4 Morgan Reschenberg 2021-04-28 13:01:32 PDT
When I log events on Firefox Nightly using the STR above (and pressing the arrow keys 4 times while within the menu), I receive the following sequence of events.

```
[AXFocusedUIElementChanged] secure text field : AXRole=AXTextField AXTitle= AXDescription= AXValue=
[AXMenuOpened] menu : AXRole=AXMenu AXTitle= AXDescription= AXValue=
[AXFocusedUIElementChanged] menu : AXRole=AXMenu AXTitle= AXDescription= AXValue=
[AXSelectedChildrenChanged] menu : AXRole=AXMenu AXTitle= AXDescription= AXValue=
[AXSelectedChildrenChanged] menu : AXRole=AXMenu AXTitle= AXDescription= AXValue=
[AXSelectedChildrenChanged] menu : AXRole=AXMenu AXTitle= AXDescription= AXValue=
[AXSelectedChildrenChanged] menu : AXRole=AXMenu AXTitle= AXDescription= AXValue=
[AXMenuClosed] unknown : AXRole= AXTitle= AXDescription= AXValue=
[AXFocusedUIElementChanged] secure text field : AXRole=AXTextField AXTitle= AXDescription= AXValue=
```

So it looks like even though we're tracking menu open/close, selection changed, and focus changed (on the input), VO still won't announce items as they're traversed... 🤔