¿Cómo desactivar el autocompletado del formulario?

Esta traducción está incompleta. Por favor, ayuda a traducir este artículo del inglés.

Este artículo explica como un sitio web puede inhabilitar el autocompletado para los campos del formulario.

Por defecto, los navegadores recuerdan información que el usuario envía a través de los campos input en los sitios web. Esto habilita al navegador para ofrecer el autocompletado (P. Ej. Sugiere posibles completaciones para los campos que el usuario ha iniciado escribiendo) o el llenado automático (P. Ej. rellenar previamente ciertos campos al cargar).

Estas caracteristicas pueden ser un problema de privacidad para los usuarios, ya que mientras los navegadores pueden permitir a los usuarios a inhabilitarlas, estos están usualmente habilitados por defecto. Como sea, alguna información enviada en los formularios no es tampoco útil en el futuro (P. Ej. a one-time pin) o contiene cierta información susceptible (P. Ej. un identificador único del gobierno o un código de seguridad de la tarjeta de crédito). Un sitio web podría preferir que el navegador no recuerde los valores de tales campos, incluso si la caracteristica del autocompletado del navegador este habilitada.

Desactivar autocompletado

Para desactivar el autocompletado en los formularios, un sitio web puede establecer el atributo autocomplete a "off":

autocomplete="off"

También un sitio web puede hacer esto para un formulario completo, o para elementos inputs que son especificos en un formulario:

<form method="post" action="/form" autocomplete="off">
[…]
</form>
<form method="post" action="/form">
  […]
  <div>
    <label for="cc">Credit card:</label>
    <input type="text" id="cc" name="cc" autocomplete="off">
  </div>
</form>

Estableciendo autocomplete="off" aquí tiene dos efectos:

  • It stops the browser from saving field data for later autocompletion on similar forms though heuristics that vary by browser.
  • It stops the browser from caching form data in session history. When form data is cached in session history, the information filled in by the user will be visible after the user has submitted the form and clicked on the Back button to go back to the original form page.

En algunos casos, el navegador seguirá sugiriendo los valores del autocompletado incluso si el atributo autocomplete este establecido en off. Esté comportamiento inesperado puede ser bastante desconcertande para los desarrolladores. El truco para realmente forzar el no-autocompletado es asignar una cadena aleatoria al atributo, por ejemplo:

autocomplete="nope"

Since this random value is not a valid one, the browser will give up.

The autocomplete attribute and login fields

Modern browsers implement integrated password management: when the user enters a username and password for a site, the browser offers to remember it for the user. When the user visits the site again, the browser autofills the login fields with the stored values.

Additionally, the browser enables the user to choose a master password that the browser will use to encrypt stored login details.

Even without a master password, in-browser password management is generally seen as a net gain for security. Since users do not have to remember passwords that the browser stores for them, they are able to choose stronger passwords than they would otherwise.

For this reason, many modern browsers do not support autocomplete="off" for login fields:

  • If a site sets autocomplete="off" for a form, and the form includes username and password input fields, then the browser will still offer to remember this login, and if the user agrees, the browser will autofill those fields the next time the user visits the page.
  • If a site sets autocomplete="off" for username and password input fields, then the browser will still offer to remember this login, and if the user agrees, the browser will autofill those fields the next time the user visits the page.

This is the behavior in Firefox (since version 38), Google Chrome (since 34), and Internet Explorer (since version 11).

If an author would like to prevent the autofilling of password fields in user management pages where a user can specify a new password for someone other than themself, autocomplete="new-password" should be specified, though support for this has not been implemented in all browsers yet.

Etiquetas y colaboradores del documento

 Colaboradores en esta página: Hoosep
 Última actualización por: Hoosep,