iOS Silently Misroutes Modifier-Key Commands When a Keyboard and Mouse Are

Anyone else seen iOS misroute keyboard shortcuts when a mouse is also connected?

Posting this as a discussion rather than just a link-drop because I’m genuinely curious whether this is a known issue outside our specific use case.

We build Aiden, a physical agent that drives phones over USB HID (keyboard + mouse emulation, no app installed on the target). While testing on real iPhones, modifier-key shortcuts like Cmd+V and Cmd+A started silently failing, plain keystrokes worked every time, but anything using Shift/Cmd/Option intermittently didn’t register.

After a fair amount of controlled testing, we isolated it to this: with AssistiveTouch enabled, if iOS detects both a keyboard and mouse/pointer capability on the connected device at the same time, it can route the resulting key command to SpringBoard (the home screen process) instead of the actual foreground app. The keypress itself is recognized correctly, iOS just delivers it to the wrong place.

We confirmed this isn’t specific to our hardware, it reproduces on a completely unrelated real gaming keyboard (with a firmware-declared virtual mouse) and a Bluetooth keyboard with a mouse collection in its HID descriptor. Full experiment table and logs are in the writeup linked below.

Our workaround is to switch to a keyboard-only USB profile right before executing any modifier-key shortcut, then restore mouse capability afterward, basically just not letting iOS see the combination that triggers it.

Questions for anyone who’s worked on iOS accessibility tooling or external device input:

  • Has anyone else run into this specific failure mode?
  • Is there a more direct fix than avoiding the trigger condition entirely, something at the HID descriptor level we haven’t tried?
  • Does this show up differently (or not at all) on newer iOS versions? We haven’t had a chance to test across a wide version matrix yet.

Full writeup: iOS Silently Misroutes Modifier-Key Commands When a Keyboard and Mouse Are Both Present

Repo: GitHub - AidenAI-IO/aiden-firmware: AI Agent hardware for mobile phone · GitHub