Poslední dobou jsem si nemohl nevšimnout, jak se na mnoha českých stránkách začínají houfně objevovat tzv. CAPTCHA. Pokud nevíte, o co se jedná, jsou to ty protivné pokřivené obrázky, jejichž obsahem je většinou nějaký alfanumerický kód, který je třeba přepsat do formulářového pole.

Autoři webových stránek se tímto způsobem snaží zajistit, aby jim nevyplňovaly formuláře roboti. Brání se tak například proti komentářovému spamu nebo vícenásobnému hlasování v anketách atp. Na zahraničních webech je tato praxe používá již celkem dlouho, na českých webech se teprve začíná rozšiřovat.
V čem je problém?
Proč ale o CAPTCHA vůbec píšu? Inu, pokud tušíte, že zmíním nějaký problém s přístupností, trefili jste do černého.
Vzhledem k tomu, že obsah obrázku generuje automat, je použití celého formuláře zcela závislé na vizuálním efektu. Pokud tedy některý uživatel nevidí a používá hlasovou čtečku, obsah obrázku pochopitelně nezná. V takových případech obvykle nahradí vizuální vjem obsah atributu alt, jenže u CAPTCHA pochopitelně žádný použitelný alt nenajdete. Alespoň na většině míst, kde jsem zatím tuto metodu viděl.
Jaké jsou možnosti?
Pokud chcete odlišit při vyplňování formuláře robota od skutečného člověka a přitom zachovat přístupnost takového řešení, napadají mě tři řešení, které by šlo použít:
Obsah obrázku v atributu
alt
Myslím, že by nebyl problém uvést u CAPTCHA, která má obsah "HHF763", atributalt="há há ef sedm šest tři". Pro automat, který generuje obsah CAPTCHA by to rozhodně problém nebyl a zcela určitě bychom se ubránili většině komentářového spamu. Nevýhodou tohoto konceptu je to, že se dá obejít úpravou robota realizujícího komentářový spam tak, aby dokázal rozpoznat význam atributualt. Jenže kdo by to dělal? Představit si to dokážu snad je při hlasování ve Hvězdné pěchotě.Alternativní možnost uvedená v atributu
alt
Podívate-li se do atributu alt u CAPTCHA v komentářích na webu Radka Hulána, najdete zdeProsím vložte kód, který vidíte na obrázku, nebo pošlete Váš komentář na info(at)hulan.info.
. Uživatel používající hlasovou čtečku sice formulář nevyplní, ale může komentář poslat e-mailem. Je to sice trochu krkolomné a nejde to použít vždy (například pro přihlášení do administrace webhostingu), ale pro některé případy to použitelné je.Zcela jiný způsob odlišení člověka od robota
Schopnost vizuálně vnímat obrázek je sice odlišujícím prvkem mezi člověkem a robotem, ale rozhodně ne jediným. Další takovou možností je třeba logické myšlení. Představte si, že si pro svůj vygenerujete dvacet různých otázek, které budou velmi jednoduché, ale na které robot nedokáže odpovědět. Tyto otázky pak budete ve formuláři pomocí skriptu jednoduše rotovat. TřebaJaký je první den v týdnu?
, neboKolik barev má vlajka ČR?
. Pokud bude odpověď správná, formulář se odešle. Pokud nebude, můžeme předpokládat, že odesílající je robot.
Věřím tomu, že pokud byste nad tím přemýšleli o trochu intenzivněji, zcela určitě byste nalezli další možné způsoby, které by dokázaly odlišit člověka od robota, avšak nezpůsobily by nepřístupnost takové stránky.
Pokud tedy budete uvažovat, že byste na své stránky umístili nějaký takový mechanismus, pokuste se nemyslet jenom na sebe a své schopnosti a možnosti.

