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

24.05.2022

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

Občasným problémem při našeptávání v Google Chrome je, že se přes Smartform zobrazuje i adresa, která byla uložená v prohlížeči dříve. V následujícím článku se dozvíte, jak tento problém vyřešit.

O co se jedná?

Jak můžete vidět v úvodním obrázku, takto to vypadá, když se přes Smartform našeptávač zobrazuje i adresa dříve uložená v prohlížeči.

Jak problém řešit?

První důležitou věcí je, že 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.

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

https://bugs.chromium.org/p/chromium/issues/detail?id=468153 – Issue na bugs.chromium.org, které si stěžuje na to, že autocomplete=off je ignorováno. V posledním komentáři je vysvětleno, proč se vývojáři z Google rozhodli autocomplete=off ignorovat

https://bugs.chromium.org/p/chromium/issues/detail?id=587466 – Issue, které založili sami vývojáři z Google, které má za úkol posbírat use-casy, ve kterých autocomplete=off dává smysl. Může připojit i ten svůj. Bohužel to vypadá, že vlákno je lidmi z Google ignorováno.

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.

Zaujal Vás Smartform a měli byste o jeho služby zájem? Máte nějaký dotaz? Potřebujete poradit? Neváhejte nás kontaktovat

Jiné příspěvky na našem blogu

Nová administrace 11.08.2022

Nová administrace

Smartform má novou administraci a rádi bychom Vám ji v následujícím článku trochu více představili.

E-mailová validace 25.05.2022

E-mailová validace

Nově jsme do Smartform portfolia služeb zařadili i validaci e-mailových adres. V tomto krátkém článku Vám o ní povíme více.

Asynchronní načítání JavaScriptu 24.05.2022

Asynchronní načítání JavaScriptu

Od dubna 2018 je možné načítat skript smartform.js do stránek asynchronně. Zde si o této změně povíme více a také si řekneme, jak upravit stránku se Smartformem, aby se JavaScript načítal asynchronně.