Skip to content

keyboard dismiss types " TV" into the focused field instead of dismissing the keyboard (iOS 26 simulator) #952

Description

@christopherafbjur

Environment

  • agent-device: 0.18.0
  • OS: macOS (Darwin 25.4.0), Apple Silicon
  • Xcode: 26.0.1 (build 17A400)
  • Simulator: iPhone 17 Pro
  • iOS runtime: 26.0 (23A8464)
  • Target: iOS simulator (--platform ios)
  • Apps tested: a React Native (Expo) app and stock Apple Safari — not app-specific.
  • Keyboards tested: Swedish (QWERTY-Swedish-Finnish) and English (en_US QWERTY) — reproduces on both.

Description

On the iOS 26 simulator, agent-device keyboard dismiss does not dismiss the keyboard. Instead it injects the characters space, T, V into the currently focused text field, silently appending " TV" to its value (and frequently leaving the keyboard up).

This corrupts any text entered before the dismiss. For example, a correctly typed email name@icloud.com becomes name@icloud.com TV and then fails the app's email validation — which is how I first noticed it (a login that should have succeeded kept failing on a "valid email" check).

Key points:

  • Not app-specific. Identical behavior in an unrelated React Native app and in stock Safari — the " TV" follows the keyboard dismiss command, not the app.
  • Not keyboard-layout-specific. Reproduced with both the Swedish and English software keyboards (both QWERTY-family — space, T, and V sit in the same positions), so it is the command tapping those key locations, not a locale-specific layout issue.
  • Not predictive text / autocorrect. It reproduces in Safari's address bar, which has autocorrect disabled. Disabling QuickType/autocorrect on the simulator and rebooting does not change the behavior.
  • Deterministic. Happens every time keyboard dismiss runs against a focused field with the keyboard up.

Expected: the keyboard is dismissed and the field value is unchanged.
Actual: " TV" is appended to the focused field; the keyboard often stays visible.

Reproducible Demo

App-agnostic repro using stock Safari (no third-party app)

# iPhone 17 Pro (iOS 26) simulator booted
agent-device open com.apple.mobilesafari --platform ios -sion repro
agent-device wait 2000 --session repro

# Focus the address bar — it appears as:  @eN [text-field] "Address" [editable]
agent-device snapshot -i --session repro
agent-device press <addressRef> --session repro    # keyboard appears
agent-device type "abc" --session repro            # fiel

# Trigger the bug
agent-device keyboard dismiss --session repro

# Field value is now "abc TV" (in Safari this also submits, navigating to a search for "TV")
agent-device snapshot -i --session repro
agent-device close --session repro

Reproduced identically in a React Native app and in stock Safari, and on both Swedish and English keyboards — so it's the keyboard dismiss command, not any specific app or layout.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions