diff --git a/web/src/lib/components/DictateSheet.svelte b/web/src/lib/components/DictateSheet.svelte index 333a473..58ce0aa 100644 --- a/web/src/lib/components/DictateSheet.svelte +++ b/web/src/lib/components/DictateSheet.svelte @@ -40,6 +40,15 @@ * og uden pointer-events frem for skjult. */ function start() { + // `inert` fjernes med hånden her, og det er ikke sjusk. Attributten sættes + // reaktivt af `inert={!open}` nedenfor, så den er der stadig i det øjeblik, + // klikket kører — Sveltes opdateringer er asynkrone. Og et inert element kan + // ikke fokuseres, så `focusField()` ville ramme ingenting, og iOS ville ikke + // åbne tastaturet. + // + // Den findes, fordi alternativet er værre: uden den kan skuffens knapper + // tabbes til, mens den er usynlig, på hver eneste side. + sheet?.removeAttribute('inert'); open = true; box?.focusField(); } @@ -81,7 +90,6 @@ class:open aria-hidden="true" onclick={close} - onkeydown={null} role="presentation" > @@ -93,13 +101,14 @@ aria-modal="false" aria-label={t('task.speak')} aria-hidden={!open} + inert={!open} >

{t('task.speakHint')}

- +