Editar Nome do Texto
Certifique-se de que os campos de entrada de texto estejam rotulados para tecnologias assistivas
O Que Verificamos
Os elementos de entrada de texto devem ter um nome acessível disponível para tecnologias assistivas, como TalkBack e Voice Access.
Exemplo de Falha ❌
A entrada de texto não tem nome acessível.
TalkBack lê "Edit text."
Voice Access — o usuário não tem um rótulo para falar para ativar o campo.
Exemplo Aprovado ✅
A entrada de texto está associada a um rótulo visível via labelFor.
TalkBack lê "Email address, Edit text."
Voice Access — o usuário fala "Endereço de email" para ativar o campo.
Visão Geral
- Esta regra tem um impacto sério para os usuários
- Todo campo de entrada de texto deve ter um rótulo que a tecnologia assistiva possa anunciar
- Texto de espaço reservado (placeholder) sozinho não é um substituto para um rótulo
- Entradas apenas com ícones devem ter uma descrição do conteúdo
- Campos não rotulados deixam os usuários de leitores de tela sem contexto sobre o que digitar
Impacto para os Usuários
Pessoas cegas que usam TalkBack para navegar em seu app são diretamente impactadas pelos problemas encontrados por esta regra. Quando uma entrada de texto não tem nome acessível, o TalkBack anuncia apenas "Editar texto" — não fornecendo ao usuário informações sobre o que deve digitar. Isso é especialmente desorientador em formulários com múltiplos campos.
Use rótulos visíveis e persistentes para todos os campos de formulário. Texto de espaço reservado sozinho não é um substituto para um rótulo porque ele desaparece quando o usuário começa a digitar.
EditText e TextField elementos devem fornecer informações de rótulo onde o sistema operacional Android espera, para que as tecnologias assistivas possam comunicar o propósito do elemento de entrada de forma previsível.
Confirme a Questão do Nome do Texto Editável
- Ative o TalkBack
- Foque no elemento de entrada de texto
- Uma das seguintes situações acontecerá:
- Inacessível: O TalkBack anuncia apenas "Editar texto" sem rótulo ou anuncia informações em uma ordem inesperada
- Acessível (valor padrão, campo está vazio): O TalkBack anuncia o rótulo do campo seguido de "Editar texto" (por exemplo, "Nome de usuário, Editar texto")
- Acessível (usuário inseriu um valor no campo): O TalkBack anuncia o valor inserido pelo usuário + "Editar Texto para" + o rótulo associado
Text(por exemplo, "help@deque.com", Editar texto para 'Endereço de email'")
Corrija os Problemas
Para resolver problemas de Nome do Texto Editável, associe um rótulo visível ao campo de entrada. Forneça uma descrição do conteúdo quando não houver um rótulo visível presente ou quando usar ícones.
XML
Associe um TextView rótulo visível ao EditText usando setLabelFor.
EditText editText = .......; // Role: EditText
TextView label = .......; // Role: Label
label.setLabelFor(editText.getId()); // Associate the label with the fieldCompose
Use o parâmetro label embutido em OutlinedTextField ou TextField para fornecer um nome acessível. Forneça uma descrição do conteúdo para entradas apenas com ícones.
@Composable
private fun LabeledTextField(modifier: Modifier = Modifier) {
val textInput = remember { mutableStateOf("") }
OutlinedTextField(
modifier = modifier,
value = textInput.value,
onValueChange = { textInput.value = it },
visualTransformation = VisualTransformation.None,
label = { Text(stringResource(R.string.address_label)) }
)
}
@Composable
private fun IconsWithDescriptionTextField(modifier: Modifier = Modifier) {
val textInput = remember { mutableStateOf("") }
OutlinedTextField(
modifier = modifier,
value = textInput.value,
onValueChange = { textInput.value = it },
label = {
Icon(
painter = painterResource(id = R.drawable.ic_location),
contentDescription = stringResource(id = R.string.address_content_description)
)
}
)
}React Native
Associe o elemento de texto ao seu campo de texto correspondente usando a aria-labelledby propriedade, referenciando o nativeID do rótulo.
<Text
style={{height: 70, width: 150, fontSize: 20, marginTop: 10}}
aria-label="Username"
nativeID="labelUsername">
Username
</Text>
<TextInput
style={{height: 50, width: 200, backgroundColor: 'azure', fontSize: 20}}
aria-label="input"
aria-labelledby="labelUsername"
placeholder='John'
/>Posso Ignorar Esta Regra?
Editar Nome do Texto tem um impacto sério para os usuários, e recomendamos a correção deste problema na maioria dos casos. Um campo de texto sem rótulo é inutilizável para usuários de leitores de tela. Em situações raras — como um campo de busca cujo propósito é inconfundivelmente claro a partir do contexto circundante — você pode considerar suprimir a regra, mas isso deve ser uma exceção, não a norma. Saiba mais sobre ignorar regras.
Recursos
Páginas do Curso Deque University
Nota: O acesso completo aos recursos da Deque University requer uma assinatura.
Outros Recursos
- Diretrizes de Acessibilidade para o Conteúdo da Web (WCAG) 2.0, Recomendação do W3C
- Documentos de Compreensão da WCAG 2.0
