Safari: Japanese input source shows Hiragana but still types ABC — repeated Change Input Source actions work around it

Hi,

I found a strange issue while using BetterTouchTool to switch between English and Japanese on a US-layout MacBook keyboard, and also found a workaround that seems to make it reliable.

My setup:

  • MacBook Pro 15-inch 2018 (MacBookPro15,3, Intel)
  • macOS Sequoia 15.7.9
  • US keyboard layout
  • Current BetterTouchTool version
  • Japanese input source + English ABC input source
  • Left Command key alone → Change Input Source / Keyboard Layout → ABC
  • Right Command key alone → Change Input Source / Keyboard Layout → Hiragana

The problem mainly occurs in Safari.

When switching from ABC to Japanese Hiragana, BTT successfully triggers the action and the macOS menu bar input indicator changes to “あ”, but typing still produces English characters.

I can reproduce this quite often in:

  • Safari’s address bar
  • ChatGPT text fields in Safari
  • Mercari.jp text fields in Safari

Interestingly, I cannot reproduce the same problem in TextEdit, and the exact same Mercari page works correctly in Chrome.

I also tried several things to isolate the problem:

  • The BTT trigger itself fires correctly.
  • When the problem occurs, the macOS input indicator already shows “あ”.
  • Pressing the physical Control + Shift + J shortcut does not fix the stuck state.
  • A Touch Bar button using BTT’s Change Input Source → Hiragana can also fail with a single press.
  • Adding a Delay did not help and seemed to make the issue occur more often.
  • All Modifier Keys UP did not help.
  • Changing Secure Input / legacy keyboard implementation settings did not fix it.

The interesting part is the workaround.

When Safari gets into this stuck state, switching input sources several times restores it. Manually using my BTT Touch Bar buttons like this works:

ABC → Hiragana → ABC → Hiragana

So I changed the Right Command key action sequence in BTT to:

  1. Change Input Source → ABC
  2. Change Input Source → Hiragana
  3. Change Input Source → ABC
  4. Change Input Source → Hiragana

There is no delay between the actions.

Surprisingly, this seems to work very well. The input switches to Japanese reliably in Safari, and I cannot notice any additional latency.

So at the moment my setup is:

  • Left Command → ABC
  • Right Command → ABC → Hiragana → ABC → Hiragana

This may be a Safari/WebKit or macOS Japanese IME issue rather than a BetterTouchTool bug, because Chrome and TextEdit do not reproduce it. However, since BTT’s repeated Change Input Source actions provide a very effective workaround, I thought this might be useful to other Japanese users with US-layout keyboards.

There is also an older related thread here:
https://community.folivora.ai/t/tip-use-btt-to-switch-input-methods-on-macos-for-multilingual-users-without-dedicated-keys/44203

I would also be interested to know why repeating the input-source changes fixes the Safari input state.