Labels ou placeholders: o que usar em formulários

Use labels visíveis para identificar campos e placeholders apenas como apoio breve, nunca como substitutos.

Formulário genérico com labels persistentes e placeholders como apoio
Nível de impácto
Alto
Status
Recomendado
Nível de evidênica
Forte evidência

Contexto

Ao começar a preencher um formulário, o placeholder desaparece. Se ele for o único texto que identifica o campo, a pessoa pode esquecer o que deveria informar ou ter dificuldade para revisar os dados antes do envio.

Use um label visível, curto e específico para identificar cada campo. Utilize o placeholder apenas como complemento, por exemplo para mostrar um formato ou exemplo breve.

Coloque instruções mais longas em um texto auxiliar próximo ao campo e associe-o com aria-describedby. Relacione sempre o label ao campo usando for e id.

Exemplo do Material Design com label visível em campo vazio e preenchido
Exemplo oficial do Material Design 3: o campo vazio mostra “Label text” como identificação; após o preenchimento, o label permanece visível acima do valor. Isso demonstra por que o label não deve desaparecer como um placeholder. Fonte: Material Design 3 — Text fields, Guidelines: https://m3.material.io/components/text-fields/guidelines

Porque isso importa?

O label permanece visível depois que a pessoa começa a digitar, facilita a revisão dos dados e ajuda tecnologias assistivas a identificar o propósito do campo.

Placeholders desaparecem, costumam ter contraste reduzido e não substituem labels para leitores de tela.

  • Um label visível em cada campo.
  • Placeholder para exemplo curto.
  • Placeholder para formato esperado.
  • Texto auxiliar para instruções.
  • aria-describedby para ajuda associada.
  • Labels claros em campos de busca.
  • Usar placeholder como único label.
  • Escrever instruções longas no placeholder.
  • Indicar obrigatoriedade apenas no placeholder.
  • Usar exemplos como se fossem labels.
  • Fazer o label desaparecer sem alternativa.
  • Depender do contraste padrão do placeholder.
Exemplo da Apple de campo de texto preenchido com botão para limpar
Exemplo oficial da Apple: o campo mostra um valor já digitado e oferece uma ação clara para limpar o conteúdo. Nas diretrizes, a Apple observa que o placeholder desaparece quando a pessoa começa a digitar e pode ser acompanhado por um label separado para manter o propósito do campo lembrado. Fonte: Apple Human Interface Guidelines — Text fields: https://developer.apple.com/design/human-interface-guidelines/text-fields

Recomendações

Faça

Práticas recomendadas
  • Mantenha o label visível.
  • Escreva labels específicos.
  • Use placeholder só como apoio.
  • Associe label e campo.
  • Use texto auxiliar para regras.
  • Teste o campo preenchido.
Formulário com labels visíveis e placeholders usados como exemplos complementares
O label permanece visível, e o placeholder aparece apenas como exemplo complementar.

Evite

Práticas a evitar
  • Não substitua o label.
  • Não esconda instruções no placeholder.
  • Não use exemplos como identificação.
  • Não dependa de contraste fraco.
  • Não remova o contexto no foco.
  • Não repita regras desnecessárias.
Formulário que usa placeholders como única identificação dos campos
Os campos dependem de placeholders para identificação e perdem contexto quando são preenchidos.
Anatomia do campo de texto do Material Design com label, texto digitado e texto de apoio
Exemplo oficial do Material Design 3: a anatomia separa label, texto digitado e supporting text, reforçando que instruções e identificação do campo têm papéis diferentes. Fonte: Material Design 3 — Text fields, Guidelines: https://m3.material.io/components/text-fields/guidelines

Acessibilidade

O label deve estar visível e associado programaticamente ao campo. Instruções complementares devem permanecer disponíveis depois do preenchimento e podem ser relacionadas com aria-describedby.

Não dependa do placeholder para fornecer o nome acessível, a finalidade do campo ou o status de obrigatoriedade. Verifique também contraste, zoom, teclado, leitor de tela e navegação por voz.

Checklist

  • Todos os campos possuem labels?
  • Os labels permanecem visíveis após o preenchimento?
  • Os labels identificam claramente o propósito?
  • O placeholder é apenas complementar?
  • Os exemplos são curtos?
  • As instruções longas estão fora do placeholder?
  • O label está associado ao campo?
  • Os textos auxiliares estão associados programaticamente?
  • A solução foi testada com teclado e leitor de tela?

Referências

  • W3C — WCAG 2.2, Critério 3.3.2: Labels or Instructions. Exige labels ou instruções para que a pessoa saiba quais dados inserir. Consultar o critério.
  • W3C — Forms Tutorial: Labeling Controls. Orienta associar explicitamente o label ao campo usando for e id. Consultar a orientação.
  • W3C — Forms Tutorial: Form Instructions. Explica que o placeholder desaparece, não substitui o label e não é tratado como label por tecnologias assistivas. Consultar a orientação.
  • GOV.UK Design System — Text input. Recomenda labels visíveis e orienta não usar placeholder no lugar de labels, dicas ou exemplos. Consultar o componente.
  • U.S. Web Design System — Text input. Apresenta o campo com label e recomenda evitar placeholder como solução principal de orientação. Consultar o componente.
  • Padrão Digital de Governo — componente Input. Diferencia label, placeholder e texto auxiliar, indicando o placeholder como apoio complementar. Consultar o componente.
  • AMAWeb — Checklist ABNT NBR 17225, itens 5.9.1, 5.9.3 e 5.9.4. Verifica a existência, associação e clareza dos rótulos de campos. Consultar a checklist.
  • AMAWeb — Manual de acessibilidade digital, Critério 3.3.2. Orienta fornecer rótulos e instruções claros para entradas de dados. Consultar o Manual.
Veja também

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