Ação Inacessível
Certifique-se de que elementos interativos possam ser ativados com o TalkBack
Esta é uma regra experimental e, portanto, seu(s) resultado(s) são considerados como estando em teste beta. Saiba mais sobre regras experimentais e como você pode ajudar a melhorá-los.
O Que Verificamos
Um elemento interativo deve ser ativável por tecnologia assistiva. Esta regra verifica se a ação associada a um elemento interativo pode ser focada e acionada usando o TalkBack ou Acesso por Comutador.
Exemplo de Falha ❌
O TalkBack pode focus o alternador de 'Notificações', mas cannot activate it
O TalkBack anuncia "Notifications, on." - nenhum papel ou dica de ativação é fornecido
Tocar duas vezes não faz nada; os usuários não têm como alternar a configuração
Exemplo de Sucesso ✅
O TalkBack pode focus and activate o alternador de 'Notificações'
O TalkBack anuncia "Notifications, switch button, on. Double-tap to activate."
O papel e a dica de ativação estão presentes; os usuários sabem exatamente como interagir com o controle
Em Resumo
- Esta regra tem um impacto crítico para os usuários
- Esta regra sinaliza elementos interativos que a tecnologia assistiva não pode focar ou ativar
- Elementos interativos não estão disponíveis para o TalkBack quando marcados como não importantes para acessibilidade
- Um elemento pai clicável com elementos filho que possuem texto são inacessíveis quando ocultos da tecnologia assistiva
Impacto para os Usuários
Usuários de tecnologia assistiva são os mais impactados. Quando o TalkBack pode focar em um elemento interativo, mas não pode ativá-lo, os usuários podem não conseguir completar ações críticas — como enviar um formulário, alternar uma configuração ou navegar para outra tela. Isso cria uma barreira completa para pessoas que dependem exclusivamente da tecnologia assistiva para interagir com o aplicativo.
A versão do Android, o dispositivo e o fabricante podem desempenhar um papel na detecção do problema.
Confirmar Problema de Ação Inacessível
- Ative o TalkBack ou o Switch Access
- Tente focar e interagir com o elemento
- Uma das seguintes situações ocorrerá:
- Inacessível: O elemento não pode ser focado ou sua ação não pode ser acionada
- Acessível: O elemento é focado e sua ação pode ser acionada
Corrigir Problemas
Para resolver um problema de Ação Inacessível, certifique-se de que o elemento interativo não esteja explicitamente oculto da tecnologia assistiva. Vistas que as pessoas podem acessar sem tecnologia assistiva devem estar igualmente disponíveis para aqueles que a utilizam.
XML
Não configure a propriedade importantForAccessibility como "no" em visualizações tocáveis. Se este atributo estiver presente, remova-o ou defina-o como "yes" ou "auto".
Compose
Não marque vistas Compose tocáveis como invisibleToUser(). Remova este modificador para garantir que o elemento esteja disponível para o TalkBack e Acesso por Comutador.
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
Este problema é incomum para controles padrão clicáveis ou pressionáveis no React Native, mas pode ocorrer com elementos interativos personalizados ou quando importantForAccessibility é explicitamente configurado como 'no' ou 'no-hide-descendants' em um elemento interativo.
Opção 1: Permitir que a vista pai gerencie o foco
Defina o importantForAccessibility da visão de contêiner como 'yes' e atribua os accessibilityRole e accessibilityLabel apropriados. Configure importantForAccessibility como 'no-hide-descendants' em quaisquer elementos decorativos filhos para que o TalkBack não os foque separadamente:
<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>Opção 2: Permitir que o próprio elemento gerencie o foco
Configure importantForAccessibility='yes' e accessibilityRole diretamente no controle:
<Image
source={DequeLogo}
importantForAccessibility='yes'
accessibilityRole='imagebutton'
accessibilityLabel='Learn more about Deque'
onTouchStart={openLink}
style={{ width: 100, height: 100 }}
/>Flutter
Os widgets Material do Flutter (ElevatedButton, IconButton, etc.) expõem ações de toque para o leitor de tela automaticamente. Ao construir elementos interativos personalizados com GestureDetector, envolva-os em MergeSemantics com um widget Semantics para garantir que o leitor de tela possa descobrir e ativar o elemento em uma única parada de foco.
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'),
),
),
),
)Posso Ignorar Esta Regra?
Ação Inacessível tem um Crítico para os usuários, e recomendamos fortemente que você corrija esses problemas. Como esta é uma regra experimental, você deve verificar os resultados manualmente. Se você confirmou que o elemento pode ser ativado pelo TalkBack, pode ser aceitável ignorar o problema. Saiba mais sobre ignorar regras.
Recursos
Páginas de Curso da Deque University
Nota: O acesso completo aos recursos da Deque University requer uma assinatura.
Outros Recursos
- Diretrizes de Acessibilidade para Conteúdo Web (WCAG) 2.1, Recomendação da W3C
- Documentos de Compreensão WCAG 2.1
