C6.25.3Per-app IME state persistencedesignresearch

Whether IME state is kept when focus moves between apps differs by platform

Aliases: remember IME per app · input source on focus change · IME follows focus

What it is

Moving from chat to a browser and back to an editor, some systems remember the last input source per app; others keep one global state. Whether it is kept is not a cross-platform contract. A user who switched to pinyin in chat, then types a command in a terminal, may still be in pinyin and fill the screen with composition—or the terminal may have returned to English, and chat may be English on return. The same moves yield different results on macOS, Windows, iOS, and Android. Docs cannot assert that leaving and coming back always restores what you just used.

Why it happens

Two strategies are common. Global state: the input source is a session singleton that follows the user, not the window—fewer extra switches, but the last app's language rides into the next. Per-app (or per-field) memory: each client stores a copy and restores it on focus—terminals stay English, chat stays pinyin—but the user maintains several mental models, and a new window may have no history. Mobile adds “the keyboard applies the field's text content type only when it rises,” so field attributes fight system memory. Remote desktop adds another layer: which end's source wins depends on the client.

Studying it

On each target platform, record: app A switches to language 1, focus moves to app B without touching the source, then back to A—what is the language? Cover system apps, browsers, Electron, game fullscreen. Separate per-app memory from per-field memory: the address bar and a page field in one browser may differ. Do not infer one platform from another. Logs of source-change events help if they mark whether a user gesture caused them.

Where it stops holding

People who live in one app never feel the policy. Enterprise-enforced input sources override user memory. A page that tries to call an IME API on focus (rarely available) can fight system memory. After an IME crash and restart, memory often drops back to the global default.

Applying it

  • Document per platform what happens after leave-and-return; do not write a false cross-platform guarantee.
  • Terminals, code editors, and password apps that take focus still on a composing source should offer a one-shot hint or an in-app “English for this session” control.
  • Include in the test matrix: jump to the system notepad and back, and check that the source matches that platform's policy.
  • Verify with three app round-trips on every supported OS, record whether language held, and put the result in release notes rather than clicking through only on the developer's OS.

Related

  • Same group: C6.25.1 Switching IMEs itself costs an operation—a chord, an icon click, or a gesture · C6.25.2 After a switch, which IME state is current must remain continuously visible · C6.25.4 IME state and Caps Lock are independent states that are often confused
  • Adjacent: C6.07 Keyboard types and task fit · C6.12 IME candidates
  • Search: per-app input source · IME persistence · focus change language

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/C6.25.3