Sometimes, browsers seem to have a mind of their own. As a developer, your create a form, and the browser adds all sorts of behavior. The most obvious of these are automatically filling a form, or autocorrecting your typing.
When using the <input>
element for textual input, there are several attributes that can disable such behavior in a user's browser.
autocapitalize="none"
Prevent the browser from automatically capitalizing the first letter of each sentenceautocomplete="off"
Prevent the browser from making suggesting based on a user previous input(s).1 Fortype="password"
this will not prevent a password manager from filling in existing passwords or asking to save a new password.2 There are vendor specific attributes that can be used:class="keeper-ignore"
to disable Keeperdata-1p-ignore
to disable 1Passworddata-bwignore
to disable Bitwardendata-form-type="other"
to disable Dashlanedata-lpignore="true"
to disable LastPassdata-protonpass-ignore="true"
to disable ProtonPass
autocorrect="off"
Prevent the browser from autocorrecting spelling and/or punctuation mistakesspellcheck="false"
Prevent the browser from checking for spelling errors
Then there is also an attribute that needs to be set on the <form>
element:
novalidate
Prevent the browser from validating the form when submitted
<form novalidate>
<input name="some_name" type="text"
autocapitalize="none"
autocomplete="off"
autocorrect="off"
spellcheck="false"
/>
<input name="some_name" type="password"
class="keeper-ignore"
data-1p-ignore
data-bwignore
data-form-type="other"
data-lpignore="true"
data-protonpass-ignore="true"
/>
</form>