From d947e4d1c3a6d25be58eb7b35939f237a4ac9c34 Mon Sep 17 00:00:00 2001 From: cursor Date: Sun, 5 Jul 2026 15:21:42 +0000 Subject: [PATCH] fix(scoring): separate microphone permission prompt from speech start Android Chrome loses the user gesture when getUserMedia is awaited before recognition.start(). Add an explicit permission banner/button and only start speech recognition synchronously after mic access is granted. Co-authored-by: Cursor --- public/scoring/index.html | 149 ++++++++++++++++++++++++++++++++++---- 1 file changed, 135 insertions(+), 14 deletions(-) diff --git a/public/scoring/index.html b/public/scoring/index.html index 6959004..c6cd9d8 100644 --- a/public/scoring/index.html +++ b/public/scoring/index.html @@ -191,6 +191,46 @@ display: inline-flex; } + #mic-permission { + display: none; + align-items: center; + justify-content: center; + gap: 0.75rem; + flex-wrap: wrap; + margin: 0 1rem 0.75rem; + padding: 0.85rem 1rem; + border-radius: 0.75rem; + border: 1px solid #7f1d1d; + background: rgba(127, 29, 29, 0.15); + max-width: 36rem; + width: calc(100% - 2rem); + margin-left: auto; + margin-right: auto; + text-align: center; + font-size: 0.9rem; + line-height: 1.45; + } + + #mic-permission.visible { + display: flex; + } + + #mic-permission p { + margin: 0; + color: var(--text); + } + + #mic-permission.denied { + border-color: var(--danger); + } + + #mic-permission-btn { + border-color: var(--listening); + color: var(--listening); + font-weight: 700; + padding: 0.65rem 1.1rem; + } + .status-bar { min-height: 2.75rem; padding: 0.5rem 1.25rem 1rem; @@ -262,8 +302,13 @@ +
+

Für Spracheingabe braucht die App Mikrofon-Zugriff.

+ +
+
- @@ -276,7 +321,7 @@

Sprachbefehle (de-DE): eins plus drei, zwei minus eins, spieler eins plus fünf, zurücksetzen. - Mikrofon-Zugriff nötig; Chrome/Edge/Safari (nicht Firefox). Als App installierbar unter Android/Chrome. + Zuerst Mikrofon erlauben, dann Spracheingabe starten. Chrome/Edge/Safari (nicht Firefox).