Quando validar campos durante o preenchimento

Saiba quando validar campos ao digitar, sair do campo ou enviar o formulário, sem interromper a tarefa.

Dois estados de um campo mostrando foco e validação no momento adequado
Nível de impácto
Alto
Status
Usar com atenção
Nível de evidênica
Forte evidência

Contexto

Validar um campo antes do envio pode reduzir retrabalho, mas também pode interromper a digitação e fazer a pessoa achar que errou antes de terminar. O momento da validação deve acompanhar o tipo de dado, a expectativa da tarefa e o custo de uma interrupção.

Como regra inicial, não mostre erro ao focar um campo vazio nem a cada tecla sem necessidade. Prefira validar ao tentar avançar ou enviar; use feedback durante o preenchimento quando ele puder evitar um erro previsível sem interromper a tarefa.

Defina o momento de validação por campo. Campos obrigatórios podem ser verificados quando a pessoa tenta avançar ou enviar. Formatos com tamanho conhecido, como CEP, telefone ou cartão, podem ser validados quando a entrada estiver completa. Regras de disponibilidade ou cálculo podem usar validação assíncrona após uma pausa, com estado de carregamento e mensagem clara.

Para senhas, mostre os requisitos antes ou durante o preenchimento e atualize cada critério conforme ele for atendido. Para confirmação de senha ou outros campos dependentes, revalide o campo relacionado assim que a alteração resolver ou criar a inconsistência.

Mantenha a mensagem junto ao campo, preserve o valor digitado e remova o erro assim que a entrada ficar válida. A validação no navegador melhora a orientação, mas a regra também precisa ser conferida no servidor.

Formulário mobile com mensagem de localização inválida e teclado aberto
Exemplo real — Baymard: a captura mobile mostra uma mensagem de validação enquanto o campo ainda depende do contexto do rótulo. A pesquisa usa o caso para demonstrar como rótulos inline que desaparecem podem dificultar a correção. Fonte: Baymard — Mobile Form Usability: https://baymard.com/blog/mobile-forms-avoid-inline-labels

Porque isso importa?

A validação no momento certo reduz a distância entre o erro e a correção. A pessoa ainda lembra o que digitou e pode ajustar o valor sem percorrer novamente o formulário.

O excesso produz o efeito contrário: uma mensagem em um campo vazio, um erro a cada tecla ou uma mudança brusca de foco interrompe a tarefa e aumenta a dúvida. A Baymard encontrou benefícios na validação inline, mas também observou frustração quando o sistema sinaliza erro antes de a pessoa terminar.

Não existe uma técnica universal. O W3C reconhece benefícios da validação no cliente, mas exige validação no servidor; o NHS recomenda mostrar erros quando a pessoa tenta avançar; e o USWDS registra problemas de usabilidade e acessibilidade em seu componente de validação. A escolha deve ser testada com o público e o tipo de campo reais.

  • Ao tentar avançar ou enviar o formulário.
  • Quando o campo atingir um tamanho completo e verificável.
  • Quando uma regra assíncrona puder responder sem bloquear a tarefa.
  • Durante requisitos de senha, com critérios visíveis.
  • Em campos dependentes, após uma alteração que mude a validade.
  • Quando a correção imediata reduzir retrabalho.
  • Ao focar um campo vazio.
  • A cada tecla sem uma necessidade clara.
  • Antes de a pessoa conseguir completar o valor.
  • Com mudança automática de foco.
  • Com consulta assíncrona sem estado ou retorno compreensível.
  • Quando o feedback só repete uma instrução já visível.

Recomendações

Faça

Práticas recomendadas
  • Defina o gatilho por campo.
  • Valide no avanço ou envio.
  • Valide formatos completos.
  • Mostre requisitos antes.
  • Indique estados assíncronos.
  • Revalide campos dependentes.
  • Remova o erro ao corrigir.
  • Preserve os dados.
  • Valide também no servidor.
Campo validado após completar a entrada sem erro prematuro
Exemplo correto — imagem didática criada para a CamaraUX: o campo não acusa erro durante a entrada e recebe confirmação quando o valor está completo. Não é uma captura de produto real.

Evite

Práticas a evitar
  • Não valide no foco.
  • Não interrompa a cada tecla.
  • Não acuse erro prematuro.
  • Não mova o foco sem ação.
  • Não esconda o estado de carregamento.
  • Não mantenha erro já corrigido.
  • Não dependa só da validação no cliente.
  • Não use cor sem texto.
Campo mostra erro enquanto o valor ainda está incompleto
Exemplo incorreto — imagem didática criada para a CamaraUX: o erro aparece cedo demais, enquanto a pessoa ainda está completando o valor. Não é uma captura de produto real.

Acessibilidade

Não altere o contexto quando o campo recebe foco: não envie o formulário, não mova o foco e não abra uma mensagem que desloque a pessoa sem uma ação esperada. Mantenha rótulo e instruções disponíveis durante a digitação, especialmente em telas pequenas.

Associe a mensagem ao controle com aria-describedby e sinalize o estado inválido com aria-invalid="true" quando aplicável. Mensagens dinâmicas devem ser anunciadas com cuidado; não faça o leitor de tela repetir um aviso a cada tecla. Use texto, não apenas cor ou ícone.

Preserve dados, mantenha a ordem do teclado, anuncie estados assíncronos de modo compreensível e garanta validação no servidor. Teste foco, leitura, zoom, teclado, leitor de tela, mobile e conexões lentas.

Checklist

  • O gatilho foi definido para cada tipo de campo?
  • O erro não aparece ao focar um campo vazio?
  • A validação evita interromper a digitação?
  • O valor pode ser completado antes de ser considerado inválido?
  • Formatos completos são validados no momento certo?
  • Requisitos de senha estão visíveis antes da correção?
  • Estados assíncronos são comunicados?
  • Campos dependentes são revalidados?
  • A mensagem explica como corrigir?
  • O erro desaparece assim que o valor fica válido?
  • Os dados preenchidos são preservados?
  • O foco permanece previsível?
  • A mensagem está associada programaticamente ao campo?
  • A validação também ocorre no servidor?
  • A solução foi testada com teclado, leitor de tela, zoom, mobile e conexão lenta?

Referências

  • Baymard Institute — Usability Testing of Inline Form Validation. Encontra benefícios na validação inline para reduzir a distância entre erro e correção, mas alerta contra validação prematura, mensagens que não desaparecem após a correção e feedback que interrompe a digitação. A evidência é específica de formulários e checkout de comércio eletrônico. Consultar a pesquisa.
  • W3C WAI — Validating Input. Reconhece que a validação no cliente pode melhorar a experiência e orientar a correção, mas reforça que ela não substitui a validação no servidor e que os formatos aceitos devem ser tratados de maneira tolerante. Consultar o tutorial.
  • W3C WAI — WCAG 2.2, Success Criterion 3.2.1: On Focus. Orienta que receber foco não deve iniciar uma mudança de contexto, como envio automático, mudança de foco ou outra interrupção inesperada. Consultar a orientação.
  • Nielsen Norman Group — Hostile-Error-Messages. Recomenda evitar mensagens prematuras, informar restrições antes da entrada e não sobrecarregar a pessoa com indicadores conflitantes. Consultar a orientação.
  • NHS Digital Service Manual — Error message. Recomenda mostrar erros quando a pessoa tenta avançar, e não ao selecionar, focar, digitar ou simplesmente sair do campo; também orienta preservar os dados e explicar como corrigir. Consultar o componente.
  • U.S. Web Design System — Validation. Mostra como requisitos podem receber feedback imediato, mas registra problemas de usabilidade e acessibilidade encontrados em testes e informa que o componente será removido de versões futuras. É uma evidência importante para não tratar validação imediata como padrão universal. Consultar o componente.
  • Padrão Digital de Governo — Input. Mostra mensagem contextual junto ao campo e associação por aria-describedby, reforçando a necessidade de feedback relacionado ao controle. Consultar o componente.
  • Baymard Institute — Mobile Form Usability: Never Use Inline Labels. Exemplo real usado neste artigo: demonstra como a perda do rótulo em mobile pode dificultar a compreensão de uma mensagem de validação. Consultar a pesquisa.
Veja também

Esta recomendação foi útil para você?