Autofocus v přihlašovacím formuláři je zlo

od aichi E-mail

Většinou se dobrý úmysl ve zlé obrací a tak je autofocus na přihlašovací jméno v přihlašovacím formuláři zlo, které v souvislosti s našeptávačem prohlížeče může vést k prozrazení hesla.

...

Ve většině případů chce programátor usnadnit uživateli klikání myší a jednoduše na pole přihlašovací jméno nastavi JavaScriptem focus. Pokud použije inline zápis:

<input type="text" id="username" name="username" value="" />
<script type="text/javascript">
  document.getElementById('username').focus();
</script> 

Je většinou z obliga, protože přenesení kurzoru nastane okamžitě při načítání stránky. Bohužel většina programátorů používá JS frameworky a jejich obezličky pro vykonání kódu na onload a to může být pozdě. Jedním z nich je SquirrelMail. Proč?

Protože člověk je tvor líný a napsat přihlašovací jmého s autocompletem je otázkou stisku tří kláves. Pak začíná psát heslo, stránka se pak usmyslí udělit poli pro přihlašovací jmého focus a heslo píšeme kam nechceme. Nakonec entrem vše potvrdíme a šup, heslo je uloženo pro další našeptávání. To je nepěkné a většina lidí ani neví kde to jde v prohlížeči vymazat.

Řešení

Dobrým příkladem může být přihlašovací formulář Seznamu, kde pokud je pole pro přihlašovací jméno prázdné, získá toto pole focus. Pokud prázdné není, dostane focus pole pro heslo. Výsledný kód může vypadat takto:

function focusInputs() {
  var username = document.getElementById('name');
  var password = document.getElementById('password');
  if (username && username.value.length == 0) {
    username.focus();
  } else if (password) {
    password.focus();
  }
} 

Adresy zpětných odkazů pro tento příspěvek:

Trackback URL (right click and copy shortcut/link location)

1 komentář

Komentář od: vv [Návštěvník]
vvSkvela je kombinace blbeho autofocusu a guestovskeho prihlaseni bez hesla, jako to ma bozz.cz. Clovek si pak pravidelne meni heslo i bez buzerace systemem... :)
28. 05. 10 @ 09:39

Napsat komentář


Vaše e-mailová adresa nebude zveřejněna.

Adresa Vašich WWW stránek bude zveřejněna.
(Konce řádku budou převedeny na <br />)
(Jméno, email a webová stránka)
(Dovolí ostatním uživatelům kontaktovat Vás prostřednictvím formuláře pro zprávy (Vaše e-mailová adresa NEBUDE zveřejněna.))