Bug 290779
| Summary: | REGRESSION (iOS 16.5.1-18.2.1): Flic button control device no longer sends keyboard events | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Josh Kelley <joshkel> |
| Component: | UI Events | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | ahmad.saleem792, a_protyasha, ewout, pcbowers, webkit-bug-importer, wenson_hsieh |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Safari 18 | ||
| Hardware: | iPhone / iPad | ||
| OS: | iOS 18 | ||
Josh Kelley
We use a Bluetooth consumer control device (specifically, a Flic button programmed with its "Alternative keymap" option) to control our web app. The button sends keyboard events when clicked, and our web app listens to those events with standard JS DOM keydown/keypress/keyup event listeners.
Sometime between iOS 16.5.1 and iOS 18.2.1, this stopped working: in most circumstances, no JS events are fired at all.
Specifically:
* If the Flic button is programmed without its "Alternative keymap" option (so that it appears as a full-fledged hardware keyboard), then the button fires keydown/keypress/keyup events as normal. (However, this causes iOS to not show the on-screen keyboard, since it thinks a full-fledged hardware keyboard is attached; this is undesirable for our purposes.)
* If the Flic button is programmed with its "Alternative keymap" option (so that it appears as a Bluetooth consumer control device), and a regular Bluetooth keyboard is also paired, then the button sends keydown/keypress/keyup events as normal.
* If the Flic button is programmed with its "Alternative keymap" option, and an HTML text input element has the focus, then the button sends keydown/keypress/keyup events as normal.
* The Flic button works as expected in other contexts (e.g., the Safari address bar).
* If the Flic button is programmed with its "Alternative keymap" option, and no Bluetooth keyboard is paired, and no HTML text input element has the focus, then no events are sent.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/148760955>
Ahmad Saleem
@Josh - my any chance, you have small reduction or test case to reproduce the issue?
Josh Kelley
@Ahamad Saleem - Yes. Using https://codepen.io/joshkel/pen/EaxRMgq, I'm seeing the following behavior:
* If I tap the text input element on an iPad, so it has the focus, then I see all keyboard events from a Flic button, as expected.
* If I click the button element on a PC or Mac, so it has the focus, I see keyboard events, as expected.
* If I tap the button element on an iPad, I see keyboard events from (1) a Bluetooth keyboard, (2) a Flic button that does not use "Alternate keymap," and (3) a Flic button that uses "Alternate keymap" if a Bluetooth keyboard is also connected. But I do not see keyboard events from (4) an "Alternate keymap" Flic button with no Bluetooth keyboard connected.
I've also raised this issue with Flic's customer support at https://community.flic.io/topic/18548/alternative-keymap-enter-key-with-ios-18, but it appears to be an issue within Safari / IOS (specifically, how it handles keyboard events from Bluetooth "consumer control" devices versus full keyboards).
Alexey Proskuryakov
*** Bug 301563 has been marked as a duplicate of this bug. ***
Ewout - 8:45 Tools
Any news about this?
The issue I reported (https://bugs.webkit.org/show_bug.cgi?id=301563) was marked as a duplicate of this one, but I see there have been no updates since April this year.