Překrývání našeptávačů v Google Chrome

V aktuální verzi prohlížeče Chrome (verze 64, únor 2018) se může přes našeptávač Smartformu zobrazovat ještě našeptávač prohlížeče, ve kterém se našeptávají v prohlížeči uložené adresy.

Chrome ignoruje autocomplete="off"

Ostatní prohlížeče a dřívější verze Chromu svůj našeptávač nezobrazují, pokud je v HTML u prvku input uveden atribut autocomplete s hodnotou off. Tvůrci Chromu se bohužel rozhodli, že budou atribut autocomplete="off" ignorovat. Pokud má uživatel v prohlížeči povolené našeptávání uložených adres – viz chrome://settings/autofill – a pokud prohlížeč vyhodnotí vstupní pole jako adresní, zobrazuje u něj našeptávač s uloženými adresami.

Řešení: zmást prohlížeč

Zatím jediná možnost jak zabránit překrývání našepteváčů není příliš hezká: aby Chrome nepoznal, že se jedná o vstupní pole s adresou, je potřeba upravit atributy id a name u prvků input tak, aby nebylo patrné, že se jedná o ulici, obec nebo psč.

V následujím formuláři mají atributy name prvků input hodnoty „ulice“, „obec“ a „psc“. Díky tomu se v něm v chromu verze 64 našeptávače překrývají.

  <form name="prvni_adresa">
    <input type="text" name="ulice" placeholder="Ulice a číslo" class="smartform-street-and-number smartform-instance-1">
    <input type="text" name="obec" placeholder="Obec" class="smartform-city smartform-instance-1">
    <input type="text" name="psc" placeholder="PSČ" class="smartform-zip smartform-instance-1">
</form>

Ve druhém formuláři jsou atributy name upraveny tak, aby Chrome nepoznal, že se jedná o adresní políčka. Díky tomu se v něm v Chromu verze 64 našeptávače nepřekrývají.

  <form name="druha_adresa">
    <input type="text" name="toto-neni-ulice" placeholder="Ulice a číslo" class="smartform-street-and-number smartform-instance-2">
    <input type="text" name="toto-neni-obec" placeholder="Obec" class="smartform-city smartform-instance-2">
    <input type="text" name="toto-neni-psc" placeholder="PSČ" class="smartform-zip smartform-instance-2">
</form>

Odkazy

Závěr

Tvůrci Chromu se nejpíše ukvapeně rozhodli ignorovat u prvků input hodnotu autocompplete=off. Díky tomu se u políček, která Chrome vyhodnotí jako adresní, vždy zobrazuje našeptávač s uloženými adresami.

Zabránit tomu lze úpravou atributů name a id u prvků input tak, aby Chrome nepoznal, že se jedná o adresní políčka.

Pokud přijdete na jiné řešení, dejte nám vědět na info@smartform.cz.


Hlavní navigace: