Mensagens de erro devem aparecer antes ou depois do campo?

Saiba onde exibir mensagens de erro em formulários: junto ao campo, no resumo da página e no momento adequado.

Formulário com resumo de erros e mensagem próxima ao campo afetado
Nível de impácto
Alto
Status
Recomendado
Nível de evidênica
Forte evidência

Contexto

Quando um formulário falha, a pessoa precisa descobrir três coisas sem procurar: que existe um erro, qual campo está envolvido e como corrigi-lo. Por isso, a posição da mensagem deve acompanhar o campo e a sequência de leitura, e não ficar isolada em um alerta distante.

Não há uma resposta universal para “antes ou depois”. Em campos simples, mantenha a mensagem imediatamente ligada ao grupo do campo, em posição consistente. Após o envio, combine o resumo no topo com a mensagem local; durante o preenchimento, espere um momento adequado, como a tentativa de avançar.

Para cada erro, mantenha a mensagem na mesma unidade visual do rótulo, da instrução e do controle. Em muitos padrões, ela fica depois do rótulo e da ajuda e antes do campo; o importante é ser percebida na sequência, manter uma posição consistente e estar associada programaticamente. Para grupos de radio buttons ou checkboxes, coloque-a junto à pergunta e ao grupo.

Depois do envio, mostre um resumo de erros no topo da área principal e repita cada mensagem junto ao campo. Faça cada item do resumo apontar para o controle correspondente e leve o foco ao resumo ou ao primeiro erro. Use o mesmo texto nas duas camadas.

Evite validar um campo vazio no foco ou a cada tecla. Para a maioria dos campos, valide ao tentar avançar ou enviar. Use feedback durante o preenchimento somente quando a regra e o contexto justificarem a resposta imediata, sem interromper a entrada. Quando o valor ficar válido, remova o erro; preserve os dados e não obrigue a pessoa a preencher tudo novamente.

Exemplo do CMS Design System com resumo de erros no topo e mensagens junto aos campos
Exemplo real — CMS Design System: o resumo no topo lista os erros e aponta para os campos correspondentes; cada campo também repete a mensagem junto ao controle. Fonte: CMS Design System — Error Validation: https://design.cms.gov/patterns/Forms/error-validation/

Porque isso importa?

Uma mensagem distante obriga a pessoa a lembrar o erro, procurar o campo e descobrir o que fazer. A proximidade reduz esse esforço, enquanto o resumo ajuda a localizar problemas em formulários longos ou quando a página retorna ao topo.

A base não é uma preferência visual isolada. O W3C exige que o item com erro seja identificado e que o erro seja descrito, mas não determina uma única posição: resumo, mensagem inline ou combinação podem ser adequados conforme o contexto. A solução precisa preservar a relação visual e programática entre mensagem e controle.

Em testes de checkout, a Baymard observou que a validação inline evita parte da surpresa de descobrir erros somente após o envio, mas também alerta contra validação prematura. Portanto, o padrão deve equilibrar localização, momento, clareza e recuperação, em vez de escolher apenas “antes” ou “depois”.

  • Após a tentativa de enviar ou avançar.
  • Quando feedback durante o preenchimento evitar um erro previsível sem interromper a tarefa.
  • Quando houver vários erros na mesma página.
  • Em formulários longos, com resumo navegável no topo.
  • Quando cada mensagem puder apontar para o campo correspondente.
  • Quando a validação assíncrona puder confirmar a resposta sem bloquear a tarefa.
  • Ao focar um campo ainda vazio.
  • A cada tecla, sem uma necessidade clara.
  • Como resposta automática e punitiva ao sair de qualquer campo.
  • Como um alerta distante e sem vínculo com o campo.
  • Com apenas “inválido” ou “erro”.
  • Somente por cor, ícone ou posição.
  • Quando o problema for de elegibilidade e exigir uma explicação própria.
Captura do Adobe Spectrum com formulário de pagamento preenchido, campo City inválido destacado e mensagem de erro logo abaixo.
Exemplo real: o Adobe Spectrum preserva os valores já preenchidos e destaca o único campo inválido com ícone, borda e mensagem imediatamente abaixo do controle. A captura mostra validação após o envio sem afastar o erro do campo. Fonte: Adobe Spectrum — Form errors: https://spectrum.adobe.com/page/form-errors/

Recomendações

Faça

Práticas recomendadas
  • Mantenha a mensagem junto ao campo.
  • Preserve rótulo e instrução.
  • Mostre resumo no topo após o envio.
  • Vincule o resumo aos campos.
  • Repita o mesmo texto.
  • Explique o problema e a correção.
  • Valide no momento adequado.
  • Remova o erro quando corrigido.
  • Preserve os dados.
Resumo de erros no topo e mensagem de erro junto ao campo
Exemplo correto — imagem didática criada para a CamaraUX: o resumo aponta o problema e a mensagem aparece junto ao campo. Não é uma captura de produto real.

Evite

Práticas a evitar
  • Não deixe o erro isolado.
  • Não valide no foco.
  • Não interrompa a cada tecla.
  • Não valide ao sair por regra automática.
  • Não use texto genérico.
  • Não dependa só da cor.
  • Não esconda a mensagem em tooltip.
  • Não apague os dados.
  • Não duplique textos conflitantes.
  • Não perca o foco.
Aviso de erro distante de campos sem indicação local
Exemplo incorreto — imagem didática criada para a CamaraUX: o aviso fica distante e não identifica o campo nem a correção. Não é uma captura de produto real.

Acessibilidade

Apresente o erro em texto, identificando o campo e explicando o problema. Associe a mensagem ao controle com uma relação programática, como aria-describedby, e sinalize o estado inválido com aria-invalid="true" quando aplicável. Para grupos, use fieldset e legend corretamente.

Após o envio, coloque o resumo antes do formulário, dê a ele um título claro e faça cada item apontar para o controle correspondente. Mova o foco para o resumo ou para o primeiro erro de maneira previsível; não dependa apenas de uma mudança visual ou de cor.

Mantenha o erro na árvore de acessibilidade, preserve os dados já preenchidos e remova a mensagem quando a entrada for corrigida. Teste a ordem de leitura e foco com teclado, leitor de tela, zoom, mobile e navegação sem mouse.

Checklist

  • A mensagem identifica o campo com erro?
  • Ela explica o problema?
  • Ela orienta como corrigir?
  • Ela está próxima do campo?
  • A posição é consistente entre campos?
  • O resumo aparece após o envio?
  • Cada item do resumo aponta para o campo?
  • O texto do resumo é igual ao texto junto ao campo?
  • O erro não aparece ao focar um campo vazio?
  • A validação não interrompe a digitação?
  • A mensagem desaparece quando o valor é corrigido?
  • Os dados preenchidos são preservados?
  • A mensagem não depende apenas de cor ou ícone?
  • O foco vai para o resumo ou primeiro erro?
  • A solução foi testada com teclado, leitor de tela, zoom e mobile?

Referências

  • W3C WAI — User Notification. Recomenda combinar feedback geral no topo com mensagens inline próximas aos controles, identificar o campo, explicar o erro, orientar a correção e associar a mensagem ao controle com aria-describedby. Consultar o tutorial.
  • W3C WAI — WCAG 2.2, Success Criterion 3.3.1: Error Identification. Exige identificar o item com erro e descrevê-lo em texto, mas esclarece que o critério não impõe uma posição única: resumo, mensagem inline ou outra combinação podem ser escolhidos conforme o contexto. Consultar a orientação.
  • Baymard Institute — Usability Testing of Inline Form Validation. Relata que a validação inline pode evitar a descoberta tardia de erros após o envio, mas recomenda evitar mensagens prematuras, remover o erro quando a entrada for corrigida e manter o fluxo compreensível. A evidência é específica de formulários e checkout de comércio eletrônico. Consultar a pesquisa.
  • Nielsen Norman Group — Hostile-Error-Messages. Recomenda evitar mensagens prematuras, informar restrições antes da entrada e explicar o problema de forma útil, sem sobrecarregar a pessoa com indicadores conflitantes. Consultar a orientação.
  • NHS Digital Service Manual — Error message e Error summary. Orienta mostrar o erro junto à pergunta, depois do texto de ajuda, além de usar resumo no topo, links para os campos e a mesma mensagem nas duas posições; recomenda não validar no foco, na digitação ou automaticamente ao sair do campo. Mensagem de erro e resumo de erros.
  • U.S. Web Design System — Form. Recomenda texto de ajuda contextual, mensagens úteis e validação inline para ajudar a pessoa a corrigir erros e avançar pelo formulário. Consultar o componente.
  • Padrão Digital de Governo — Input. Mostra o uso de mensagem de erro junto ao campo e a associação por aria-describedby, reforçando a relação entre controle e feedback. Consultar o componente.
  • CMS Design System — Error Validation. Exemplo real usado neste artigo: resumo de erros no topo, links para os campos e mensagens repetidas junto aos controles inválidos. Consultar o padrão.
Veja também

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