Action Inaccessible

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard

Assurez-vous que les éléments interactifs peuvent être activés avec TalkBack

Not for use with personal data
note

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.

WCAG 2.0 - 2.1.1 A Impact - Critical

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 ❌

An Android Settings screen with a Notifications toggle focused by TalkBack (red border). TalkBack announces 'Notifications, on.' with no activation hint, indicating the action cannot be triggered.

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 ✅

An Android Settings screen with a Notifications toggle focused by TalkBack (green border). TalkBack announces 'Notifications, switch button, on. Double-tap to activate.' indicating the action is accessible.

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.

note

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

  1. Activez TalkBack ou l'accès commutateur
  2. Essayez de vous concentrer sur l'élément et interagir avec lui
  3. 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