Nicht zugängliche Aktion
Stellen Sie sicher, dass interaktive Elemente mit TalkBack aktiviert werden können
Was wir überprüfen
Ein interaktives Element sollte von assistiver Technologie aktiviert werden können. Diese Regel überprüft, dass die mit einem interaktiven Element verbundene Aktion fokussiert und und mit TalkBack oder Switch Access ausgelöst werden kann.
Fehlgeschlagenes Beispiel ❌
TalkBack kann focus den 'Benachrichtigungen'-Schalter ankündigen, aber cannot activate it
TalkBack meldet "Notifications, on." - keine Rolle oder Aktivierungshinweis wird bereitgestellt
Doppeltippen bewirkt nichts; Benutzer können die Einstellung nicht umschalten
Erfolgreiches Beispiel ✅
TalkBack kann focus and activate den 'Benachrichtigungen'-Schalter ankündigen
TalkBack meldet "Notifications, switch button, on. Double-tap to activate."
Die Rolle und der Aktivierungshinweis sind vorhanden; Benutzer wissen genau, wie sie mit der Steuerung interagieren können
Auf einen Blick
- Diese Regel hat eine kritische Wirkung für Benutzer
- Diese Regel markiert interaktive Elemente, die von assistiver Technologie nicht fokussiert oder aktiviert werden können
- Interaktive Elemente sind für TalkBack nicht verfügbar, wenn sie als nicht wichtig für die Barrierefreiheit markiert sind
- Ein klickbares Elternelement mit Kindelementen, die Text haben, ist unzugänglich, wenn es vor assistiver Technologie verborgen ist
Auswirkungen auf die Benutzer
Benutzer von assistiver Technologie sind am stärksten betroffen. Wenn TalkBack ein interaktives Element fokussieren kann, es jedoch nicht aktivieren kann, sind Benutzer möglicherweise nicht in der Lage, kritische Aktionen auszuführen – wie das Absenden eines Formulars, das Umschalten einer Einstellung oder das Navigieren zu einem anderen Bildschirm. Dies stellt eine vollständige Barriere für Menschen dar, die ausschließlich auf assistive Technologie angewiesen sind, um mit der App zu interagieren.
Die Android-Version, das Gerät und der Hersteller können eine Rolle bei der Erkennung von Problemen spielen.
Nicht zugängliche Aktion bestätigen
- Aktivieren Sie TalkBack oder Switch Access
- Versuchen Sie, das Element zu fokussieren und mit ihm zu interagieren
- Eines der folgenden Dinge wird passieren:
- Nicht zugänglich: Das Element kann nicht fokussiert oder seine Aktion nicht ausgelöst werden
- Zugänglich: Das Element wird fokussiert und seine Aktion kann ausgelöst werden
Probleme beheben
Um ein Problem mit einer nicht zugänglichen Aktion zu lösen, stellen Sie sicher, dass das interaktive Element nicht ausdrücklich vor assistiver Technologie verborgen ist. Ansichten, die ohne assistive Technologie zugänglich sind, sollten gleichermaßen für diejenigen verfügbar sein, die sie verwenden.
XML
Setzen Sie die importantForAccessibility-Eigenschaft nicht auf "no" in ansichtstastbaren Elementen. Wenn dieses Attribut vorhanden ist, entfernen Sie es oder setzen Sie es auf "yes" oder "auto".
Compose
Markieren Sie ansichtstastbare Compose-Elemente nicht als invisibleToUser(). Entfernen Sie diesen Modifikator, um sicherzustellen, dass das Element für TalkBack und Switch Access verfügbar ist.
Button(onClick = { },
modifier = Modifier.semantics {
// Remove invisibleToUser() to make this element accessible
invisibleToUser()
}
) {
Text("Click here")
}
FloatingActionButton(onClick = { }) {
Image(
painter = painterResource(id = R.drawable.floating_button),
contentDescription = "floating button",
Modifier.semantics {
// Remove invisibleToUser() to make this element accessible
invisibleToUser()
}
)
}React Native
Dieses Problem ist bei standardmäßigen berührbaren oder drückbaren Steuerelementen in React Native ungewöhnlich, kann jedoch bei benutzerdefinierten interaktiven Elementen auftreten oder wenn importantForAccessibility explizit auf 'no' oder 'no-hide-descendants' gesetzt ist.
Option 1: Dem übergeordneten Element erlauben, den Fokus zu bearbeiten
Setzen Sie den importantForAccessibility des enthaltenen Elements auf 'yes' und weisen Sie die entsprechenden accessibilityRole und accessibilityLabel zu. Setzen Sie importantForAccessibility auf 'no-hide-descendants' bei allen dekorativen Kindelementen, damit TalkBack sie nicht separat fokussiert:
<View
importantForAccessibility='yes'
accessibilityRole='button'
accessibilityLabel='Learn more about Deque'
onTouchStart={openLink}
>
<Image
source={DequeLogo}
importantForAccessibility='no-hide-descendants'
style={{ width: 100, height: 100 }}
/>
</View>Option 2: Dem Element selbst erlauben, den Fokus zu bearbeiten
Setzen Sie importantForAccessibility='yes' und accessibilityRole direkt auf die Steuerung:
<Image
source={DequeLogo}
importantForAccessibility='yes'
accessibilityRole='imagebutton'
accessibilityLabel='Learn more about Deque'
onTouchStart={openLink}
style={{ width: 100, height: 100 }}
/>Flutter
Flutters Material-Widgets (ElevatedButton, IconButton usw.) machen Tap-Aktionen automatisch für den Screenreader verfügbar. Beim Erstellen benutzerdefinierter interaktiver Elemente mit GestureDetector umgeben Sie sie mit MergeSemantics und einem Semantics-Widget, damit der Screenreader das Element in einem einzigen Fokusstop entdecken und aktivieren kann.
MergeSemantics(
child: Semantics(
button: true,
label: 'Archive item',
child: GestureDetector(
onTap: () {},
child: Container(
padding: const EdgeInsets.all(12.0),
color: Colors.green.shade100,
child: const Text('Archive item'),
),
),
),
)Kann ich diese Regel ignorieren?
Eine unzugängliche Aktion hat ein Kritische Auswirkung für Benutzer, und wir empfehlen dringend, diese Probleme zu beheben. Wenn TalkBack auf ein interaktives Element fokussieren kann, es aber nicht aktivieren kann, können Benutzer, die auf unterstützende Technologie angewiesen sind, um mit Ihrer App zu interagieren, möglicherweise keine kritischen Aktionen ausführen. Ignorieren Sie diese Regel nur, wenn Sie bestätigt haben, dass das Element von TalkBack aktiviert werden kann. Erfahren Sie mehr über Regeln ignorieren.
Ressourcen
Deque University Kursseiten
Hinweis: Der vollständige Zugriff auf die Ressourcen von Deque University erfordert ein Abonnement.
Weitere Ressourcen
- Richtlinien für barrierefreie Webinhalte (WCAG) 2.1, W3C-Empfehlung
- WCAG 2.1 Verständnis-Dokumente
