Skip to main content
Validação HTML

Valor inválido “nope” para o atributo “autocomplete” no elemento “form”.

Sobre este problema HTML

O atributo autocomplete em elementos <form> controla se o navegador deve preencher automaticamente os campos do formulário com base em dados introduzidos anteriormente. Ao contrário do autocomplete em elementos <input> — que aceita um conjunto rico de tokens como "name", "email", "street-address", etc. — o próprio elemento <form> aceita apenas dois valores: "on" e "off".

Uma solução alternativa comum que ganhou popularidade foi definir autocomplete="nope" (ou outros valores inventados como "new-password", "false", ou "disabled") no elemento <form>. Este truque explorava o facto de alguns navegadores tratarem qualquer valor não reconhecido como um sinal para desativar o autocomplete. No entanto, este comportamento não é padrão e não é fiável — os navegadores podem ignorar completamente valores inválidos e voltar ao seu comportamento padrão, que é tipicamente "on".

Usar valores de atributo inválidos causa vários problemas:

  • Conformidade com os padrões: A especificação HTML define explicitamente os valores permitidos, e os validadores vão sinalizar qualquer outro como um erro.
  • Comportamento imprevisível: Diferentes navegadores lidam com valores inválidos de forma diferente. O que funciona num navegador hoje pode deixar de funcionar na próxima atualização.
  • Acessibilidade e experiência do utilizador: As tecnologias assistivas e funcionalidades do navegador dependem de valores de atributo padrão para funcionarem corretamente. Valores inválidos podem interferir com gestores de palavras-passe e ferramentas de preenchimento automático das quais muitos utilizadores dependem.

Vale a pena notar que mesmo com autocomplete="off", alguns navegadores (particularmente o Chrome) podem ainda preencher automaticamente certos campos como credenciais de login por razões de segurança. Se precisar de um controlo mais granular, aplique atributos autocomplete diretamente em elementos <input> individuais usando os tokens de preenchimento automático apropriados da especificação.

Exemplos

❌ Inválido: Usar um valor inventado num formulário

<form autocomplete="nope" action="/submit" method="post">
  <label for="username">Username</label>
  <input type="text" id="username" name="username">
  <button type="submit">Submit</button>
</form>

Isto desencadeia o erro Valor inválido “nope” para o atributo “autocomplete” no elemento “form” porque "nope" não é um valor de autocomplete válido para <form>.

✅ Corrigido: Usar o valor correto para desativar o autocomplete

<form autocomplete="off" action="/submit" method="post">
  <label for="username">Username</label>
  <input type="text" id="username" name="username">
  <button type="submit">Submit</button>
</form>

✅ Usar autocomplete em inputs individuais para mais controlo

Se precisar de desativar o autocomplete para campos específicos mantendo outros ativos, aplique o atributo diretamente nos elementos <input>:

<form action="/submit" method="post">
  <label for="username">Username</label>
  <input type="text" id="username" name="username" autocomplete="username">

  <label for="secret">One-time code</label>
  <input type="text" id="secret" name="secret" autocomplete="off">

  <button type="submit">Submit</button>
</form>

Neste exemplo, o campo de nome de utilizador usa o token de preenchimento automático padrão "username" para ajudar os navegadores a preenchê-lo corretamente, enquanto o campo de código único tem o autocomplete desativado uma vez que o seu valor nunca deve ser reutilizado.

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.