
Written by John Reed
Originally published June 2014 | Fully updated May 2025
TL;DR Chrome still loves to override your custom autocomplete UI, but the tactics have shifted. The quickest fix today is to keep your input semantic (usually type="text"
) and give Chrome an autocomplete
value it doesn’t recognise—e.g. autocomplete="nope"
or autocomplete="new-password"
. Any non-standard token except "on"
turns the autofill heuristics off in current Blink-based browsers.
What’s the problem?
You’ve built a slick autocomplete (say, with jQuery UI, React Autocomplete, or your own vanilla listbox). In Chrome, the browser’s native autofill dropdown barges in, sitting on top of your widget, even when you dutifully add autocomplete="off"
. The Chromium team considers saving user credentials a security win, so "off"
has been ignored for years.
Pass an unknown token
<input
type="text"
name="companySearch"
autocomplete="nope" <!-- could be “whatever123” -->
aria-autocomplete="list"
role="combobox">
- Chrome disables autofill because the token is not on its allow-list.
- Other browsers (Safari, Firefox, Edge) obey
autocomplete="off"
but also treat unknown tokens as off, so behaviour is consistent.
Use the “new-password” hint for sensitive fields
For login or password-creation flows where you must suppress autofill:
<input type="password" autocomplete="new-password">
Fall back to the old type="search"
trick
Chrome still skips autofill on search inputs, so if semantics allow it, you can do:
<input type="search" aria-label="Search products">
Cleaning up WebKit/Blink styles
input[type="search"]{
-webkit-appearance:textfield; /* reset rounded corners */
}
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button{
-webkit-appearance:none; /* hide the ✕ icon */
}
Why Chrome ignores "off"
in the first place
- Credential reuse & phishing defence – Chrome’s password manager looks for username/password patterns and overrides
"off"
to protect users from weak or reused credentials. - User expectation – People assume their browser will remember frequent inputs (addresses, card numbers) unless they explicitly disable it.
- Spec ambiguity – The HTML spec treats
autocomplete
as a hint, not a guarantee; browsers may ignore it for “imperative reasons”.
Need help with stubborn browser quirks?
Our dev team wrestles with this stuff every day. Talk to us and we’ll dive in.