Ответ 1
Несмотря на то, что autocomplete
является довольно четко определенной частью спецификации HTML5, в Chrome произошла ошибка при использовании свойства autocomplete
. Изначально почитая autocomplete="off"
(2013), они решили, что разработчики должны использовать его неправильно, а браузер должен просто игнорировать его.
Это не означает, что есть не очень допустимые случаи, когда вы не хотите, чтобы данные автозаполнения браузера (например, в системах CRM), но в целом мы рассматриваем их как случаи меньшинства. В результате мы начали игнорировать autocomplete = off для данных автозаполнения Chrome.
(Источник: ошибка Chromium 2015 года, помеченная как WontFix)
В соответствии с Приоритетом избирательных округов:
В случае конфликта, рассмотрите пользователей по авторам по сравнению с разработчиками по спецификаторам по теоретической чистоте. Другими словами, затраты или трудности для пользователя должны иметь больший вес, чем затраты для авторов; что, в свою очередь, должно придавать разработчикам больший вес, чем затраты...
... Что оставляет нас, разработчиков, в неудачном месте поиска обходного пути. Эта статья из MDN хорошо описывает текущее состояние и предлагает решение для установки autocomplete
в new-password
:
Если автор хочет запретить автозаполнение полей пароля на страницах управления пользователями, где пользователь может указать новый пароль для кого-либо, кроме себя, следует указать autocomplete = "new-password", хотя поддержка этого не была реализована в все браузеры пока.
Я не уверен, как долго это будет оставаться в силе, но на данный момент (протестировано в Chrome 53 в сентябре 2016 года) это самое простое решение:
<input type="password" name="someName" autocomplete="new-password" />
Изменение: Примечание. Это побочный эффект запроса пользователя о сохранении пароля, возможно, при перезаписи существующего пароля. Поэтому, хотя он "предотвращает автозаполнение полей пароля", он не удаляет элемент из беспорядка автозаполнения.
Изменение: Обновленная информация: Более новые версии Chrome еще раз уважают атрибут autocomplete=off
, , как указал Александр Абакумов в своем ответе. Он работал на Chrome 68, работает на Chrome 70 для меня.