frontend: Sprung holt keine Bildschirmtastatur mehr herauf
Nach dem Sprung erschien auf Touch-Geräten sofort die virtuelle Tastatur und nahm den halben Bildschirm — auch bei angeschlossener Bluetooth-Tastatur. Das ist kein Fehler der App: Eine Webseite erfährt nichts über verbundene Tastaturen, sie fordert nur Fokus an; alles Weitere entscheidet das OS (Android hat dafür den Schalter „Bildschirmtastatur anzeigen" unter Physische Tastatur, vielerorts an). Statt darauf zu verweisen, fordert der Sprung sie erst gar nicht an: - `jumpToLine()` setzt vor dem Fokussieren `inputmode="none"` — das unterdrückt nur die VIRTUELLE Tastatur, Hardware-Tastaturen tippen unverändert weiter. - Die Sperre fällt, sobald der Nutzer das Textfeld selbst antippt (`pointerdown` läuft vor dem Fokus). Der Sprung ist damit „hinschauen", der erste Tipp ins Textfeld „bearbeiten". - `newDoc()` hebt die Sperre ausdrücklich auf — bei einem neuen, leeren Dokument ist Tippen gemeint. Verifiziert im Browser: Sprung setzt inputmode=none bei Fokus im Textfeld und korrekter Zeilenmarkierung; Feld bleibt editierbar (nicht readOnly/disabled); eigenes pointerdown entfernt das Attribut; erneuter Sprung setzt es wieder; „Neues Dokument" fokussiert ohne Sperre. Vitest 37/37. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
bbdecce75a
commit
4061362922
@@ -565,3 +565,24 @@ mehr markieren — bewusst in Kauf genommen, die Geste ist dort vergeben.
|
||||
Lehre für die Prüfung: Synthetische `TouchEvent`s beweisen nur die eigene
|
||||
Ereignis-Logik. Weder die Nutzergesten-Regel noch die nativen Langdruck-Gesten
|
||||
lassen sich so auslösen — beides fiel erst auf echter Hardware auf.
|
||||
|
||||
**Der Sprung holt keine Bildschirmtastatur (Nachtrag).** Auf Touch-Geräten
|
||||
erschien nach dem Sprung sofort die virtuelle Tastatur und nahm den halben
|
||||
Bildschirm — auch bei angeschlossener Bluetooth-Tastatur. Das ist kein Fehler
|
||||
der App: Eine Webseite erfährt nichts über verbundene Tastaturen; sie fordert
|
||||
nur **Fokus** an, alles Weitere entscheidet das Betriebssystem (Android hat
|
||||
dafür den Schalter „Bildschirmtastatur anzeigen" unter *Physische Tastatur*,
|
||||
auf vielen Geräten voreingestellt an; iPadOS unterdrückt sie von selbst).
|
||||
|
||||
Entscheidung: Der Sprung **fordert sie erst gar nicht an**. `jumpToLine()` setzt
|
||||
vor dem Fokussieren `inputmode="none"` am Textfeld — das unterdrückt nur die
|
||||
**virtuelle** Tastatur, Hardware-Tastaturen tippen unverändert. Die Sperre fällt,
|
||||
sobald der Nutzer das Textfeld **selbst antippt** (`pointerdown`, läuft vor dem
|
||||
Fokus). Damit ist der Sprung „hinschauen" und der erste Tipp ins Textfeld
|
||||
„bearbeiten". `newDoc()` hebt die Sperre ausdrücklich auf — bei einem neuen,
|
||||
leeren Dokument ist Tippen gemeint.
|
||||
|
||||
Verworfen: die Tastatur zuzulassen und auf die OS-Einstellung zu verweisen (löst
|
||||
es nur auf einem Gerät), sowie ein eigener Umschalter dafür (weiteres
|
||||
Bedienelement in einer engen Kopfzeile plus i18n in 9 Sprachen, für ein
|
||||
Verhalten, das kaum jemand umstellen will).
|
||||
|
||||
Reference in New Issue
Block a user