Skip to main content
Validação HTML

Um elemento “input” com um atributo “type” cujo valor é “hidden” não deve ter um atributo “autocomplete” cujo valor é “on” ou “off”.

Sobre este problema HTML

O atributo autocomplete informa o browser se pode ajudar o utilizador no preenchimento de um campo de formulário e, em caso afirmativo, que tipo de dados é esperado. Os valores genéricos "on" e "off" controlam se o browser deve oferecer sugestões de preenchimento automático ao utilizador. Como os inputs type="hidden" nunca são exibidos e nunca recebem entrada direta do utilizador, estes valores não se aplicam — não há interação do utilizador para auxiliar.

De acordo com a especificação HTML, inputs ocultos podem ter um atributo autocomplete, mas apenas com tokens de detalhe de preenchimento automático nomeados específicos (como "transaction-id" ou "cc-number"). Estes tokens servem um propósito programático ao fornecer dicas sobre o significado semântico do valor oculto, o que pode ser útil para processamento de formulários. Os valores genéricos "on" e "off", no entanto, são explicitamente proibidos porque apenas se relacionam com o comportamento de preenchimento automático voltado para o utilizador.

Este erro de validação é importante para conformidade com os padrões e pode indicar um erro lógico na sua marcação. Se você adicionou autocomplete="off" a um input oculto esperando impedir que o browser armazene em cache ou modifique o valor, isso não terá esse efeito. Os valores de inputs ocultos são controlados inteiramente pelo servidor ou por JavaScript, não pelo preenchimento automático do browser.

Como corrigir

  1. Remova o atributo autocomplete se não for necessário — esta é a correção mais comum.
  2. Use um token de preenchimento automático específico se você precisar transmitir significado semântico sobre o valor oculto (por exemplo, autocomplete="transaction-id").
  3. Reconsidere o tipo de input — se o campo genuinamente precisa de comportamento de preenchimento automático controlado, provavelmente não deveria ser type="hidden".

Exemplos

Incorreto: usar autocomplete="off" num input oculto

<form action="/submit" method="post">
  <input type="hidden" name="token" value="abc123" autocomplete="off">
  <button type="submit">Submit</button>
</form>

Incorreto: usar autocomplete="on" num input oculto

<form action="/submit" method="post">
  <input type="hidden" name="session-id" value="xyz789" autocomplete="on">
  <button type="submit">Submit</button>
</form>

Correto: remover o atributo autocomplete

<form action="/submit" method="post">
  <input type="hidden" name="token" value="abc123">
  <button type="submit">Submit</button>
</form>

Correto: usar um token de preenchimento automático específico

Se o input oculto carregar um valor com uma semântica de preenchimento automático bem definida, você pode usar um token nomeado:

<form action="/checkout" method="post">
  <input type="hidden" name="txn" value="TXN-001" autocomplete="transaction-id">
  <button type="submit">Complete Purchase</button>
</form>

Isto é válido porque "transaction-id" é um token de detalhe de preenchimento automático específico reconhecido pela especificação, ao contrário dos valores genéricos "on" ou "off".

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.