Image via istockphoto
John Reed

Written by John Reed

Share

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

  1. Credential reuse & phishing defence – Chrome’s password manager looks for username/password patterns and overrides "off" to protect users from weak or reused credentials.
  2. User expectation – People assume their browser will remember frequent inputs (addresses, card numbers) unless they explicitly disable it.
  3. 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.

Tags
AutocompleteChromeHTML5jQuery