Teknik

Voice control

Se även: Dragon NaturallySpeaking, Voice Control, Windows Speech Recognition, VoiceAccess

Den klass av hjälpmedelsteknik som låter användare styra en dator via talade kommandon. Dragon NaturallySpeaking (Windows), macOS/iOS Voice Control, Windows Speech Recognition — alla bygger på att tillgängliga namn matchar det talade kommandot.

Voice control är den hjälpmedelsteknikklass som låter användare styra en dator via talade kommandon. De viktigaste systemen är Dragon NaturallySpeaking (Windows, den långvariga marknadsliggaren), macOS Voice Control och iOS Voice Control (Apples inbyggda, gratis med operativsystemet), Windows Speech Recognition (Microsofts inbyggda) och Google Voice Access (Android).

Voice control betjänar användare med motoriska funktionsnedsättningar som gör tangentbords-, mus- eller pekskärmsanvändning svår eller omöjlig — RSI, artrit, tremor, förlamning på olika nivåer. Det används också i arbetsflödeseffektivitetssammanhang (advokater och kliniker som dikterar anteckningar) där användaren inte har en dokumenterad funktionsnedsättning men drar nytta av handsfri drift.

Hur voice control löser kommandon

Ett voice control-system lyssnar efter två slags kommandon:

  1. Diktering — användaren talar text som ska matas in i ett fokuserat fält. Systemet transkriberar talet.
  2. Kommandon — användaren namnger en åtgärd eller kontroll. Systemet matchar den talade frasen mot ett register med tillgängliga kommandon och tillgängliga namn på skärmkontroller.

Det andra slaget är där webbtillgänglighet skär in: när användaren säger “Click Submit” söker voice control-programvaran efter ett element med det tillgängliga namnet “Submit” (eller nära matchning) och skickar ett klickhändelse till det. Om din Submit-knapp saknar tillgängligt namn — för att den är en omärkt <button>, en anpassad <div>, eller en knapp med en ikonbaserad etikett — kan voice control-användaren inte aktivera den.

Vad detta innebär för webbutvecklare

Den enskilt viktigaste voice control-tillgänglighetsregeln:

Varje interaktivt element måste ha ett textbaserat tillgängligt namn som matchar den synliga etiketten.

I praktiken:

  • Knappar behöver synlig text. <button>Submit</button> fungerar. Ikonbaserade knappar behöver aria-label som matchar vad användaren troligen säger — aria-label="Sök" snarare än aria-label="Förstoringsglas".
  • Synlig etikett och tillgängligt namn måste matcha. Om en knapps synliga text är “Skicka” men dess aria-label är “Skicka formulär” kanske voice control inte hittar den när användaren säger “Click Skicka.” WCAG 2.5.3 Label in Name (Nivå A) kräver att det tillgängliga namnet innehåller den synliga etiketttexten.
  • Anpassade kontroller exponerar sin roll och sitt namn. En <div role="button" aria-label="Skicka"> fungerar. En <div onclick> utan roll eller namn gör det inte.
  • Inga spökkontroller. Voice control-överlager (numrerade överlager som visar varje fokuserbart element med ett nummer att anropa) fungerar bättre när antalet fokusbara element är hanterbart. Dolda men fortfarande fokusbara element stökar till överlaget.

Där voice control överlappar med skärmläsartillgänglighet

Samma disciplin kring tillgängliga namn och semantisk HTML som gör en sajt tillgänglig för skärmläsare gör den också tillgänglig för voice control. Båda teknikerna routar via tillgänglighetsträdet och är beroende av att tillgängliga namn finns och är korrekta.

Det viktigaste undantaget: voice control behöver inte ARIA live-regioner (det är ingen skärmläsare), men det behöver numrerade överlager för att exponera kontroller utan textetiketter, vilket är varför textetiketter spelar oproportionerligt stor roll för röstanvändare.

Vad som specifikt går fel för voice control

  • Synliga ikonbaserade etiketter. En hjärtknapp (favorit) utan synlig text. Användaren säger “Click favorit,” men det tillgängliga namnet är “Spara” eller saknas helt. Felmatchning.
  • Två kontroller med samma tillgängliga namn. Två “Läs mer”-länkar på sidan. Användaren säger “Click Läs mer”; voice control-systemet visar ett numrerat entydighetsöverlager. Det är inte trasigt, bara långsamt.
  • Felmatchade lokaliserade etiketter. Talas på svenska, men sidan är på engelska. Användarens voice control behöver känna igen rätt språk för elementets namn. Att ange lang korrekt på HTML-elementet hjälper.

Den snabbaste manuella granskningen: aktivera macOS Voice Control eller Windows Speech Recognition och försök använda sajten via röst. De icke-aktiverbara kontrollerna blir uppenbara inom fem minuter.