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
-
Remova o atributo
autocompletese não for necessário — esta é a correção mais comum. -
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"). -
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.
Saiba mais: