Editar Nome do Texto

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

Certifique-se de que os campos de entrada de texto estejam rotulados para tecnologias assistivas

Not for use with personal data

WCAG 2.0 - 4.1.2 A Impact - Serious

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 ❌

Android phone screen showing a form with an unlabeled text input field. A TalkBack focus ring is around the field. A speech bubble reads 'Edit text.'

A entrada de texto não tem nome acessível.

TalkBack"Edit text."

Voice Access — o usuário não tem um rótulo para falar para ativar o campo.

Exemplo Aprovado ✅

Android phone screen showing a form with a text input field labeled 'Email address'. A TalkBack focus ring is around the field. A speech bubble reads 'Email address, Edit text.'

A entrada de texto está associada a um rótulo visível via labelFor.

TalkBack"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

  1. Ative o TalkBack
  2. Foque no elemento de entrada de texto
  3. 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 field

Compose

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