Fyll inn ordet som mangler

Fyll inn ordet som mangler er en vanlig oppgavetype. Hvordan bør dette kodes for å fungere best mulig for flest mulig skjermlesere?

Fyll inn ett sted

Vis kode
<p>
    <span id="s1-1" aria-hidden="true">Krabber må </span>
    <input type="text" aria-labelledby="s1-1" aria-describedby="s1-2">
    <span id="s1-2"> før de spises.</span>
</p>
            

før de spises.

Fyll inn flere ord

Dette er mindre smidig for de som bruker skjermleser. Her kan vi tenke oss at hvert input-felt har en aria-label som inneholder id'er til alt innhold før feltet. Jeg synes imidlertid dette blir litt klønete i lesemodus og tror at aria-label kun bør inneholde teksten mellom input-feltene.

Denne måten å kode på blir bra i lesemodus, men er litt mer krevende i skjemamodus. Det er selvsagt mulig å skrive ut hele setningen etter input, kanskje mest aktuelt som en sr-only (her har jeg ikke skjult teksten, men jeg antar at det vil være mest aktuelt i mange tilfeller. Jeg har også lagt tabindex på den hele setningen, så blir det ekstra enkelt å fylle ut og kontrollere svaret med skjermleser.

Vis kode
<p lang="en">
  <span id="s2-1" aria-hidden="true">I come </span>
  <input id="i2-1" type="text" aria-labelledby="s2-1" aria-describedby="s2-2">
  <span id="s2-2" aria-hidden="true"> down in </span>
  <input id="i2-2" type="text" aria-labelledby="s2-2" aria-describedby="s2-3">
  <span id="s2-3"> valley</span>
</p>
            

valley