Nome do CheckBox
Qualquer elemento CheckBox deve ter um nome acessível disponível para tecnologias assistivas, como TalkBack e Voice Access.
Impacto
As pessoas que usam o TalkBack são as mais impactadas por problemas de acessibilidade encontrados por esta regra.
Confirmação
- Ative o TalkBack
- Tente focar o controle
- Uma das seguintes opções acontecerá:
- Inacessível: o TalkBack anuncia apenas o valor e a função.
- Acessível: o nome e o valor são lidos pelo TalkBack.
Como Corrigir
XML
Forneça um nome explícito para o CheckBox controle utilizando um TextView e associando-o ao seu CheckBox elemento.
Ambas as Text propriedades não podem ser usadas juntas. ContentDescription Compose
CheckBox checkBox = .......; // Role: CheckBox
TextView label = .......; // Role: Label
label.setLabelFor(checkBox.getId()); // Associate the Checkbox with its NameEnvolva o componente de checkbox e texto dentro de um elemento com o
papel de acessibilidade, e garanta que a ação do controle possa ser invocada no componente pai. Checkbox React Native
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))
}Nota: o componente de checkbox do React Native foi descontinuado, então isso só se aplicará ao usar um componente de checkbox de terceiros ou ao criar um componente personalizado.
Para combinar um checkbox e um rótulo no React Native, você pode envolver ambos os componentes dentro de um
componente: TouchableOpacity Para garantir que isso funcione bem e forneça todo o contexto necessário para usuários de tecnologia assistiva e não assistiva:
<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>Garanta que a
-
visualização tenha a propriedade
TouchableOpacityconfigurada como verdadeira, para que o grupo seja focado junto para os usuários de tecnologia assistiva.accessibleGaranta que a -
propriedade do
accessibilityLabelcomponente esteja definida com exatamente o mesmo valor do rótulo de texto.TouchableOpacityDefina os componentes -
para
TouchableOpacitypara fornecer o contexto correto aos usuários de tecnologia assistiva.accessibilityRoleDefina os componentescheckboxcom a propriedade estabelecida como -
para que o componente não possa ser focado individualmente.
CheckBoxAdicione uma ação viaimportantForAccessibilityao componenteno-hide-descendantspara lidar com o comportamento do checkbox quando ativado. -
Add an action via
onPressto theTouchableOpacitycomponent for handling the behavior of the checkbox when activated.
