Action Inaccessible
Assurez-vous que les éléments interactifs peuvent être activés avec TalkBack
Il s'agit d'une règle expérimentale, et par conséquent, son ou ses résultats sont considérés comme étant en phase de test bêta. En savoir plus sur règles expérimentales et comment vous pouvez aider à les améliorer.
Ce que Nous Vérifions
Un élément interactif devrait pouvoir être activé par une technologie d'assistance. Cette règle vérifie que l'action associée à un élément interactif peut être focalisée et déclenchée en utilisant TalkBack ou l'accès commutateur.
Exemple d'échec ❌
TalkBack peut focus l'interrupteur 'Notifications' mais cannot activate it
TalkBack annonce "Notifications, on." - aucun rôle ou indication d'activation n'est fourni
Le double-tap n'a aucun effet; les utilisateurs ne peuvent pas changer l'état du réglage
Exemple de réussite ✅
TalkBack peut focus and activate l'interrupteur 'Notifications'
TalkBack annonce "Notifications, switch button, on. Double-tap to activate."
Le rôle et l'indication d'activation sont présents; les utilisateurs savent exactement comment interagir avec le contrôle
En Bref
- Cette règle a un impact critique pour les utilisateurs
- Cette règle signale les éléments interactifs sur lesquels la technologie d'assistance ne peut pas se concentrer ou activer
- Les éléments interactifs ne sont pas disponibles pour TalkBack lorsqu'ils sont marqués comme non importants pour l'accessibilité
- Un parent cliquable avec des éléments enfants ayant du texte est inaccessible lorsqu'il est caché de la technologie d'assistance
Impact sur les Utilisateurs
Les utilisateurs de technologies d'assistance sont les plus touchés. Quand TalkBack peut se concentrer sur un élément interactif mais ne peut pas l'activer, les utilisateurs peuvent être incapables de mener à bien des actions critiques — comme soumettre un formulaire, basculer un réglage ou naviguer vers un autre écran. Cela crée un obstacle total pour les personnes qui dépendent uniquement des technologies d'assistance pour interagir avec l'application.
La version d'Android, l'appareil, et le fabricant peuvent jouer un rôle dans la détection des problèmes.
Confirmer le Problème d'Action Inaccessible
- Activez TalkBack ou l'accès commutateur
- Essayez de vous concentrer sur l'élément et interagir avec lui
- Une des choses suivantes se produira :
- Inaccessible : L'élément ne peut pas être focalisé ou son action ne peut pas être déclenchée
- Accessible : L'élément est focalisé et son action peut être déclenchée
Corriger les Problèmes
Pour résoudre un problème d'Action Inaccessible, assurez-vous que l'élément interactif n'est pas explicitement caché de la technologie d'assistance. Les vues auxquelles les gens peuvent accéder sans technologie d'assistance devraient être également disponibles pour ceux qui l'utilisent.
XML
Ne pas définir la propriété importantForAccessibility sur "no" pour les vues tactiles. Si cet attribut est présent, retirez-le ou définissez-le sur "yes" ou "auto".
Compose
Ne pas marquer les vues Compose tactiles comme invisibleToUser(). Retirez ce modificateur pour s'assurer que l'élément est disponible pour TalkBack et l'accès commutateur.
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
Ce problème est rare pour les contrôles tactiles standard ou pressables dans React Native, mais peut survenir avec des éléments interactifs personnalisés ou lorsque importantForAccessibility est explicitement défini sur 'no' ou 'no-hide-descendants' sur un élément interactif.
Option 1 : Permettre à la vue parent de gérer le focus
Définissez le importantForAccessibility de la vue parent sur 'yes' et assignez les accessibilityRole et accessibilityLabel appropriés. Définissez importantForAccessibility sur 'no-hide-descendants' pour tous les éléments enfants décoratifs afin que TalkBack ne les focalise pas séparément :
<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 : Permettre à l'élément lui-même de gérer le focus
Définir importantForAccessibility='yes' et accessibilityRole directement sur le contrôle :
<Image
source={DequeLogo}
importantForAccessibility='yes'
accessibilityRole='imagebutton'
accessibilityLabel='Learn more about Deque'
onTouchStart={openLink}
style={{ width: 100, height: 100 }}
/>Flutter
Les widgets Material de Flutter (ElevatedButton, IconButton, etc.) exposent automatiquement les actions de tap au lecteur d'écran. Lors de la création d'éléments interactifs personnalisés avec GestureDetector, enveloppez-les dans MergeSemantics avec un widget Semantics pour garantir que le lecteur d'écran puisse découvrir et activer l'élément en un seul arrêt de focus.
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'),
),
),
),
)Puis-je Ignorer Cette Règle ?
Action Inaccessible a un impact critique pour les utilisateurs, et nous recommandons fortement de corriger ces problèmes. Étant donné qu'il s'agit d'une règle expérimentale, vous devez vérifier les résultats manuellement. Si vous avez confirmé que l'élément peut être activé par TalkBack, il peut être acceptable d'ignorer la constatation. En savoir plus sur ignorer les règles.
Ressources
Pages de cours Deque University
Remarque : Un abonnement est nécessaire pour un accès complet aux ressources de Deque University.
Autres ressources
- Règles pour l'accessibilité des contenus Web (WCAG) 2.1, Recommandation W3C
- Docs de compréhension WCAG 2.1
