[Bug]: iPad keyboard scrolls the composer and terminal out of view while typing#30684

opened7d agobyTTiger Kaovilai

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/web

Steps to reproduce

  1. Open the T3 Code web client in a browser tab on an iPad.
  2. Open a thread and tap the composer so the keyboard opens. Type a few lines.
  3. Open the terminal drawer, tap into the terminal, and type.

Expected behavior

The composer and the terminal stay in view, directly above the keyboard, while typing. The page does not move.

Actual behavior

The page scrolls up and down while typing. The composer text box or the terminal ends up partly or fully out of view, and the view bounces between positions.

iPadOS ignores interactive-widget=resizes-content (apps/web/index.html), so the keyboard only shrinks visualViewport. The shell keeps its h-dvh height, and the browser scrolls the document to reveal the focused field.

  • Composer: the browser follows the caret after each edit.
  • Terminal: the hidden input textarea follows the terminal cursor (positionInput in apps/web/src/terminal/ghostty/surface.ts). The scroll target moves with every keystroke, which causes the bouncing.

#19512 reports the same root cause on iPhone. Its fix, #19513, applies only to portrait phones ((max-width: 639px) and (pointer: coarse)), so iPads stay affected.

Impact

Major degradation or frequent failure

Version or commit

main at bb4afa542

Environment

iPad, web client in a browser tab. iPadOS and browser versions were not recorded.

Logs or stack traces

None.

Workaround

None found. Blurring the field stops the scrolling but also stops typing.

Note

Responses generated with Claude (model: Claude Opus 5.5)