Bug 222627 - AX: Pointer events are not fired by VoiceOver inside iframe
Summary: AX: Pointer events are not fired by VoiceOver inside iframe
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Accessibility (show other bugs)
Version: Safari 14
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2021-03-02 15:49 PST by Devon Govett
Modified: 2021-10-01 11:56 PDT (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Devon Govett 2021-03-02 15:49:03 PST
Using VoiceOver on iOS, pointer events are fired inconsistently depending on whether a page is loaded within an iframe or not.

Steps to reproduce:

1. Open https://codepen.io/devongovett/pen/xxRzxBb in iOS Safari
2. Turn on VoiceOver
3. Move the V0 cursor to the button in the example.
4. Double tap to press the button. Notice that the button does not turn red (no pointerdown event is fired).
5. Open https://cdpn.io/devongovett/debug/xxRzxBb/NjMYzGGaqjyr. This is the same example but without the iframe.
6. Press the button with VoiceOver. Notice that the button turns red (a pointerdown event is fired).

I'm not sure whether firing pointer events when using the double tap to click gesture is intended or not. This appears to have changed in iOS 14 from iOS 13 and Safari on macOS with VoiceOver does not fire pointer events on click. Either way, it should be consistent when used within an iframe or not.
Comment 1 Radar WebKit Bug Importer 2021-03-02 15:49:13 PST
<rdar://problem/74953468>
Comment 2 Devon Govett 2021-10-01 11:56:03 PDT
This appears to be related to https://bugs.webkit.org/show_bug.cgi?id=223202. At least in iOS 15, the codepen does work inside the iframe, but only when you collapse the code panel so the iframe is closer to the top of the screen. It appears VO fires events with coordinates that are offset by the y position of the iframe. Collapsing the code makes the iframe y position less than the height of the button, so it is able to be pressed.