ui(tts): "Im Gerät" ausgrauen statt ausblenden, wenn keine Sprachstimmen
- refreshDevicePreset(): graut das "Im Gerät"-Preset aus (disabled + opacity + Hinweis "keine Sprachstimmen im Browser"), wenn getVoices() leer ist; entgraut automatisch bei voiceschanged (+ 1,5s-Backstop). - Kein Aufzwingen: device wird nur (wieder) gewählt, wenn es die gespeicherte Präferenz ist; ohne Stimmen wird die aktive Wahl auf piper gesetzt (Präferenz bleibt erhalten). - Server-Fallback bleibt für fehlende Einzelsprachen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
53ec2d7ec7
commit
b8b2bcddd3
2 changed files with 29 additions and 10 deletions
|
|
@ -261,7 +261,7 @@
|
|||
class="tts-preset w-full flex items-center gap-3 rounded-lg border border-slate-200 dark:border-slate-700 px-3 py-2 text-left hover:bg-slate-50 dark:hover:bg-slate-700/50 transition-colors">
|
||||
<span class="text-lg shrink-0">📱</span>
|
||||
<span class="flex-1 min-w-0"><span class="block text-sm font-medium">Im Gerät</span>
|
||||
<span class="block text-xs text-slate-500 dark:text-slate-400">Das Gerät liest vor · spart Daten</span></span>
|
||||
<span class="tts-sub block text-xs text-slate-500 dark:text-slate-400">Das Gerät liest vor · spart Daten</span></span>
|
||||
<span class="check text-blue-600 dark:text-blue-400 font-bold opacity-0">✓</span>
|
||||
</button>
|
||||
<button type="button" data-tts="piper"
|
||||
|
|
@ -326,6 +326,6 @@
|
|||
<div id="status" class="w-full max-w-3xl mx-auto mt-1 min-h-[1rem] text-xs text-slate-500 dark:text-slate-400"></div>
|
||||
</footer>
|
||||
|
||||
<script src="/app.js?v=41"></script>
|
||||
<script src="/app.js?v=42"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue