Skip to main content
Validação HTML

Valor inválido “nothanks” para o atributo “autocomplete” no elemento “input”: A string “nothanks” não é um nome de campo de preenchimento automático válido.

Sobre este problema HTML

O atributo autocomplete informa aos navegadores se e como preencher automaticamente um campo de formulário. A especificação HTML define um conjunto rigoroso de valores válidos para este atributo, conhecidos como nomes de campo de preenchimento automático. Estes incluem valores como "on", "off", "name", "email", "username", "new-password", "current-password", "address-line1", "postal-code", "cc-number", e muitos outros. Quando você usa um valor que não aparece nesta lista — como "nothanks", "nope", ou "false" — o validador W3C reporta-o como um nome de campo de preenchimento automático inválido.

Uma razão comum para os programadores usarem valores inventados é a frustração com navegadores que ignoram autocomplete="off". Alguns navegadores (especialmente o Chrome) podem ainda preencher automaticamente determinados campos mesmo quando autocomplete="off" está definido, particularmente para campos relacionados com login. Isto levou a soluções alternativas usando strings aleatórias, mas estas não são padrão e podem produzir comportamento imprevisível em diferentes navegadores e tecnologias assistivas.

Porque isto importa

  • Conformidade com padrões: Valores de atributo inválidos tornam o seu HTML não-conforme, o que pode levar a comportamento inesperado do navegador agora ou no futuro.
  • Acessibilidade: Leitores de ecrã e outras tecnologias assistivas podem usar o atributo autocomplete para ajudar os utilizadores a preencher formulários. Um valor reconhecido como "name" ou "email" fornece a estas ferramentas contexto significativo, enquanto uma string aleatória não fornece nenhum.
  • Comportamento do navegador: Os navegadores são projetados para interpretar os valores padrão. Um valor não reconhecido pode ser tratado de forma inconsistente — alguns navegadores podem ignorá-lo, outros podem tratá-lo como "on", e o comportamento pode mudar entre versões.

Como corrigir

Se você quiser desativar o autocomplete, use "off":

<input type="text" name="search" autocomplete="off">

Se você quiser ajudar os navegadores a preencher automaticamente corretamente, use o nome de campo de preenchimento automático apropriado da especificação:

<input type="email" name="email" autocomplete="email">

Se autocomplete="off" não estiver a ser respeitado pelo navegador (um problema conhecido com alguns campos de login no Chrome), considere estas alternativas conformes com os padrões:

  • Use autocomplete="new-password" em campos de palavra-passe onde não quer que palavras-passe guardadas sejam sugeridas.
  • Use um token válido mais específico que não corresponda ao que o navegador está a tentar preencher automaticamente.
  • Use o atributo readonly e remova-o no foco via JavaScript como medida suplementar.

Exemplos

❌ Inválido: string arbitrária como valor de autocomplete

<form>
  <label for="firstName">Primeiro nome</label>
  <input type="text" name="firstName" id="firstName" autocomplete="nothanks">

  <label for="userEmail">Email</label>
  <input type="email" name="userEmail" id="userEmail" autocomplete="nope">
</form>

Tanto "nothanks" como "nope" não são nomes de campo de preenchimento automático válidos e irão gerar o erro de validação.

✅ Válido: usando "off" para desativar o autocomplete

<form>
  <label for="firstName">Primeiro nome</label>
  <input type="text" name="firstName" id="firstName" autocomplete="off">

  <label for="userEmail">Email</label>
  <input type="email" name="userEmail" id="userEmail" autocomplete="off">
</form>

✅ Válido: usando nomes de campo de preenchimento automático adequados

<form>
  <label for="firstName">Primeiro nome</label>
  <input type="text" name="firstName" id="firstName" autocomplete="given-name">

  <label for="userEmail">Email</label>
  <input type="email" name="userEmail" id="userEmail" autocomplete="email">

  <label for="newPass">Nova palavra-passe</label>
  <input type="password" name="newPass" id="newPass" autocomplete="new-password">
</form>

Usar tokens de preenchimento automático descritivos como "given-name", "email", e "new-password" é a melhor abordagem quando você quer que navegadores e tecnologias assistivas compreendam os seus campos de formulário. Para uma lista completa de nomes de campo de preenchimento automático válidos, consulte a secção de preenchimento automático da especificação HTML do WHATWG.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.