Name des Kontrollkästchens
Jedes CheckBox-Element sollte einen zugänglichen Namen haben, der für unterstützende Technologien wie TalkBack und Voice Access verfügbar ist.
Auswirkung
Personen, die TalkBack verwenden, sind von den durch diese Regel festgestellten Zugänglichkeitsproblemen am stärksten betroffen.
Bestätigung
- TalkBack aktivieren
- Versuchen Sie, den Fokus auf die Steuerelemente zu legen
- Eines der folgenden Ereignisse wird eintreten:
- Nicht barrierefrei: TalkBack gibt nur den Wert und die Rolle bekannt.
- Barrierefrei: Sowohl der Name als auch der Wert werden von TalkBack gelesen.
 
So beheben Sie das Problem
XML
Geben Sie einen eindeutigen Namen für das CheckBox Steuerelement an, indem Sie ein TextView Element verwenden und es mit Ihrem CheckBox Element verknüpfen.
Die Eigenschaften Text und ContentDescription können nicht zusammen verwendet werden.
CheckBox checkBox = .......; // Role: CheckBox
TextView label = .......; // Role: Label
label.setLabelFor(checkBox.getId()); // Associate the Checkbox with its NameCompose
Fügen Sie das Kontrollkästchen und die Textkomponente in ein Element mit der Checkbox Barrierefreiheitsrolle ein und stellen Sie sicher, dass die Aktion des Steuerelements für die übergeordnete Komponente aufgerufen werden kann.
Row(modifier = Modifier
    .toggleable(
        value = checkedState,
        enabled = true,
        role = Role.Checkbox,
        onValueChange = { setCheckBoxState(!checkedState) }
    )
    .semantics(mergeDescendants = true) { }
    .constrainAs(labeledTextField) {
        setConstraints(top = parent.top, start = parent.start, end = parent.end)
    }
) {
    Checkbox(
        checked = checkedState,
        modifier = Modifier.padding(16.dp),
        onCheckedChange = null
    )
    Text(text = "Get Marketing emails", modifier = Modifier.padding(16.dp))
}React Native
Hinweis: Die Kontrollkästchenkomponente von React Native ist veraltet. Dies gilt daher nur bei Verwendung einer Kontrollkästchenkomponente eines Drittanbieters oder beim Erstellen einer benutzerdefinierten Komponente.
Um ein Kontrollkästchen und eine Beschriftung in React Native zu kombinieren, können Sie beide Komponenten in eine TouchableOpacity Komponente einschließen:
<TouchableOpacity
   style={{flexDirection:'row', alignItems: 'center',}}
   onPress={() => {
     setSelection(!isSelected)
     }
   }
   accessible={true}
   accessibilityLabel={"Do you like React Native?"}
   accessibilityRole='checkbox'>
     <CheckBox
       importantForAccessibility='no-hide-descendants'
       value={isSelected}
       onValueChange={setSelection}
       style={styles.checkbox}
      />
     <Text>Do you like React Native?</Text>
</TouchableOpacity>Um sicherzustellen, dass dies gut funktioniert und den erforderlichen Kontext sowohl für Benutzer unterstützender als auch nicht unterstützender Technologien bereitstellt:
– Stellen Sie sicher, dass die TouchableOpacity Eigenschaft der Ansicht accessible auf „true“ gesetzt ist, damit die Gruppe für Benutzer unterstützender Technologien gemeinsam fokussiert ist.
– Stellen Sie sicher, dass die accessibilityLabel Eigenschaft der TouchableOpacity Komponente auf genau denselben Wert wie die Textbeschriftung eingestellt ist.
- 
Setzen Sie die accessibilityRolederTouchableOpacity-Komponente aufcheckbox, um Benutzern unterstützender Technologien den richtigen Kontext bereitzustellen.
- 
Setzen Sie die CheckBoxKomponentenimportantForAccessibilityEigenschaft aufno-hide-descendants, sodass die Komponente nicht einzeln fokussiert werden kann.
– Fügen Sie via onPress der Komponente TouchableOpacity eine Aktion hinzu, um das Verhalten des Kontrollkästchens bei Aktivierung zu handhaben.
