NEW290779
REGRESSION (iOS 16.5.1-18.2.1): Flic button control device no longer sends keyboard events
https://bugs.webkit.org/show_bug.cgi?id=290779
Summary REGRESSION (iOS 16.5.1-18.2.1): Flic button control device no longer sends ke...
Josh Kelley
Reported 2025-03-31 11:41:57 PDT
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
Radar WebKit Bug Importer
Comment 1 2025-04-07 11:42:14 PDT
Ahmad Saleem
Comment 2 2025-04-17 15:57:20 PDT
@Josh - my any chance, you have small reduction or test case to reproduce the issue?
Josh Kelley
Comment 3 2025-04-18 12:09:46 PDT
@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
Comment 4 2025-10-28 08:37:37 PDT
*** Bug 301563 has been marked as a duplicate of this bug. ***
Ewout - 8:45 Tools
Comment 5 2025-11-26 04:54:00 PST
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.
Note You need to log in before you can comment on or make changes to this bug.