Acerca de este problema HTML
El atributo autocomplete le dice al navegador si puede ayudar al usuario a completar un campo de formulario, y si es así, qué tipo de datos se esperan. Los valores genéricos "on" y "off" controlan si el navegador debe ofrecer sugerencias de autocompletado al usuario. Dado que los inputs con type="hidden" nunca se muestran y nunca reciben entrada directa del usuario, estos valores no aplican — no hay interacción del usuario que asistir.
Según la especificación HTML, los inputs ocultos pueden tener un atributo autocomplete, pero solo con tokens específicos de detalle de autocompletado con nombre (como "transaction-id" o "cc-number"). Estos tokens sirven para un propósito programático al proporcionar pistas sobre el significado semántico del valor oculto, lo cual puede ser útil para el procesamiento de formularios. Los valores genéricos "on" y "off", sin embargo, están explícitamente prohibidos porque solo se relacionan con el comportamiento de autocompletado que ve el usuario.
Este error de validación importa para el cumplimiento de estándares y puede indicar un error lógico en tu marcado. Si añadiste autocomplete="off" a un input oculto esperando prevenir que el navegador almacene en caché o modifique el valor, no tendrá ese efecto. Los valores de los inputs ocultos están controlados completamente por el servidor o por JavaScript, no por el autocompletado del navegador.
Cómo solucionarlo
-
Elimina el atributo
autocompletesi no es necesario — esta es la solución más común. -
Usa un token de autocompletado específico si necesitas transmitir significado semántico sobre el valor oculto (ej.,
autocomplete="transaction-id"). -
Reconsidera el tipo de input — si el campo genuinamente necesita que se controle el comportamiento de autocompletado, probablemente no debería ser
type="hidden".
Ejemplos
Incorrecto: usar autocomplete="off" en un input oculto
<form action="/submit" method="post">
<input type="hidden" name="token" value="abc123" autocomplete="off">
<button type="submit">Submit</button>
</form>
Incorrecto: usar autocomplete="on" en un input oculto
<form action="/submit" method="post">
<input type="hidden" name="session-id" value="xyz789" autocomplete="on">
<button type="submit">Submit</button>
</form>
Correcto: eliminar el atributo autocomplete
<form action="/submit" method="post">
<input type="hidden" name="token" value="abc123">
<button type="submit">Submit</button>
</form>
Correcto: usar un token de autocompletado específico
Si el input oculto lleva un valor con una semántica de autocompletado bien definida, puedes usar un token con nombre:
<form action="/checkout" method="post">
<input type="hidden" name="txn" value="TXN-001" autocomplete="transaction-id">
<button type="submit">Complete Purchase</button>
</form>
Esto es válido porque "transaction-id" es un token de detalle de autocompletado específico reconocido por la especificación, a diferencia de los valores genéricos "on" u "off".
Encuentra problemas como este automáticamente
Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.
Más información: