Dialogová okna útočí!
09.08.2017
Dialogová okna útočí!

​​Každý den na nás aplikace chrlí stovky různých oken a my, frustrovaní uživatelé, je musíme stále dokola zavírat. Je to podobné, jako když se Vás ptá tentýž bezdomovec na ulici každý den na drobné.

Znáte to, typický den v kanceláři... Zapnete po ránu počítač a hned na vás vyskočí okno “Vaše heslo vypršelo a je nutné jej změnit.” Máte k dispozici tlačítka OK a CANCEL. Zcela automaticky, jako pokaždé, chci stisknout OK. V tom se zarazím a začnu přemýšlet…

Picture1.png

A co by se vlastně stalo, kdybych kliknul anarchisticky na CANCEL? Dá mi ještě počítač někdy šanci, abych mohl heslo změnit? Hlavou mi běží řada apokalyptických scénářů, jak situaci řešit. Ale nebudu riskovat, že budu bez počítače.Nemohl bych pak pracovat a svět by se určitě v tom okamžiku zhroutil jako Garfield na gauč po pekáči lasagní (čti „lazání“).

A tak po 3-minutové mozkové simulaci mačkám jako vždy na OK a další minutu vymýšlím nové heslo, které nerozlouskne žádný hacker a zároveň bude natolik krátké, ​abych ho dokázal vepsat fixou na svítivě žlutý “sticker”, který pak přijde nalepit pod stůl. Uf, zvládl jsem to, heslo je změněné a za odměnu se na mě usmály ikonky na ploše milovaného operačního systému. Ale co to?

Vyskočilo na mě další okénko. Tentokrát s textem “S:\ není přístupný. Síťový disk nebyl nalezen.” a nabízí se tlačítko OK. Anebo křížek v rohu na zavření.

Picture2.png

To mi nevadí, “esko” blblo už i včera a stejně je tam jen metodika, kterou nikdo nečte. Klikám na OK, okno se zavřelo a disk S:\ mezi diskovými jednotkami opravdu nevidím. Super, systém funguje bezvadně! Ale co by se stalo, kdybych toto okno zavřel křížkem? Stejný výsledek? Nebo by mě za chvíli systém upozornil znovu? No, zítra to každopádně vyzkouším :)

Dojdu si pro první kávu a otevírám podnikovou aplikaci. Po několika málo minutách práce však s hrůzou zjišťuji, že počítač mi chce uletět! Nastartoval všechny větráky a hučí jak turbovrtulové letadlo na začátku ranveje. Radši se ho nebudu vůbec dotýkat, aby se nevznesl. Kolega z účtárny, kterého proud vzduchu vtáhl dovnitř kanceláře, tvrdí, že to jsou nejspíše aktualizace. A měl pravdu... Vzápětí se totiž objevilo okno s textem “Restartujte počítač pro dokončení důležitých aktualizací systému”.

Picture3.png

K dispozici mám tlačítka RESTARTOVAT nebo ODLOŽIT. Samozřejmě vyhrálo to druhé, přece nebudu hodinu čekat, než se to vše doinstaluje. A tak mám první ranní rozcvičku s počítačem za sebou a zahajuji rutinní práci v našem systému: “Chcete uložit fakturu? ANO. Přejete si vytisknout report? NE. Určitě smazat položku? ANO. Špatná emailová adresa - prosím opravte ji. OK. Email nemohl být odeslán - zkusit znovu? ANO. Určitě nechcete uložit rozpracovaný formulář? NE.” Moment?!... NE jako nechci nebo NE jako chci uložit? Po těch desítkách vyskakovacích oken je mi to už vlastně jedno. Dívám se z okna (opravdového skleněného) na rušnou ulici a mám chuť spáchat defenestraci...

T​​ipy dialogových oken

Na základě podobných hrůzostrašných zkušeností se systémy a aplikacemi, které na nás chrlí proud dialogových oken, se pojďme podívat blíže, co je to vlastně dialogové okno? Jedná se o grafický ovládací prvek, který uživateli dodává informaci a zároveň od něho požaduje odezvu. Existují dva hlavní typy dialogových oken, modální a nemodální. Modální dialogy zablokují běh aplikace, vyruší uživatele z práce a ten je nucen reagovat. Uživatel nemůže dál pokračovat, dokud nestiskne požadovanou volbu a okno nezavře.

Druhým typem jsou tzv. “modeless dialogy”, které zobrazujeme paralelně při běhu aplikace, běh aplikace neblokují. Je možné je využívat např. pro zobrazení méně důležité informace, nabídnutí akce, kterou je možné použít i později, nebo jako toolbar (panel s nástroji).

Jak vyplývá z “reálného” příkladu ze života na začátku článku, dialogová okna (zejména modální) jsou designéry aplikací používána příliš často a více než je zdrávo.. Proč tomu tak je? Odpověď je jednoduchá, dialogová okna je velmi lehké technicky implementovat. Navíc dávají designérovi pocit jistoty, že riskantní operace bude provedena pouze ve správné situaci. Ale už si neuvědomuje, že přenáší odpovědnost za potenciální rizikové jednání na uživatele. Když totiž přijde nešťastný klient, že si například smazal důležitý soubor a zda nejde obnovit, designer mu může alibisticky odpovědět: “Požadovala po Vás aplikace potvrzení pro tuto akci? A kliknul jste na ANO? Tak co se divíte?”.

Správně by však vůbec nemělo k rizikovým operacím v aplikacích docházet. A pokud se jim už nelze z nějakého důvodu vyhnout, uživatel by je měl předem očekávat a po provedení by měl mít ještě možnost, vrátit aplikaci do původního stavu. Tak alespoň fungují dobře navržené aplikace.

Uživatele dialogová okna opravdu ru​​ší!

Dialogová okna uživateli dávají informaci, že se něco “divného” děje. To je pozitivní. Ale tím jejich kladný přínos také končí. Je nutné si uvědomit, že většinou takové okno uživatele překvapí a vyruší jej z práce. Navíc mu předkládá nějaké varianty k řešení a uživatel musí rozhodnout o dalším správném postupu. To znamená, že dialog požaduje od uživatele se zamyslet a provést práci navíc.

No představte si, že jdete po chodníku a dost chvátáte. Jak byste se cítili, kdyby na Vás za rohem “vybafl” cizí člověk a dal Vám logickou úlohu na vyřešení? A že Vás nepustí dál, dokud jí vyřešíte? Asi dost nekomfortně, že? A přesně takto vnímají situaci i uživatelé, na které nečekaně vyskočí dialogové modální okno, které požaduje důležité rozhodnutí.

Picture4.png

Dialogová modální okna zastaví běh aplikace, překvapí uživatele, zdržují jej a nutí dělat neoblíbené činnosti a navíc překryjí kontext aplikace. Proč je tedy používat?

Designer by měl použít dialogy v návrhu aplikace pouze za předpokladu, že k tomu má dobře promyšlený podstatný důvod. Tím může být provádění riskantní operace, která bude mít fatální následky a nelze ji už vrátit zpět. Například při formátování disku počítače musí být uživatel vždy seznámen s rizikem, že přichází o veškerá uložená data a daný proces je nezvratný. Následně musí požadovanou akci potvrdit.

Dalším důvodem k použití dialogového okna je, pokud chceme uživateli sdělit velmi důležitou informaci a musíme mít jistotu, že ji uvidí a potvrdí (záměrně nepíši “přečte” popř. “pochopí”, protože zde nikdy nemáme jistotu, že toto uživatel udělá :). Příkladem je situace, kdy pracujete v cloudovém úložišti a přeruší se internetové připojení. Pokud Váš systém neumí offline synchronizaci, musí Vás bezpodmínečně informovat, že přerušil práci, protože Vaše další aktivita by nebyla uložena. A k tomuto se perfektně hodí právě dialogové modální okno s tlačítkem “OK, rozumím”.

Hrůzostrašná an​​alogie

Z příkladů je patrné, že použití dialogových oken vyžaduje znalosti a je nutné navrhovat GUI s rozmyslem. Jinak budou dialogová okna působit škodlivě, budou snižovat použitelnost a kazit celkový dojem z chování aplikace (tzv. UX = User Experience). Dialogové okno obecně je mocný nástroj, který má velkou režii ohledně UX a většinou lze jeho implementaci obejít jiným způsobem. Ale když už se rozhodneme dialogy používat, jak je tedy navrhovat správně?

Dialogová okna jsou součástí komunikace mezi člověkem a aplikací. A komunikace, aby byla efektivní, musí být očekávaná, přehledná a intuitivní. Komunikace nesmí být dlouhá, ale má být výstižná a snadno srozumitelná. Na to při návrhu dialogových oken musíme myslet, jedná se o stejnou komunikaci jako v reálném světě. Pojďme si uvést příklad analogie modálních oken a běžné komunikace lidí.

Picture5.png

Představte si, že jdete v noci po ulici a najednou se odněkud z křoví vynoří postava a zahuhlá: “Kámo, nemáš ňáký drobný?”. Jedná se o dialog, který nás určitě dost nemile překvapí. Ale otázka je stručná a ihned pochopitelná. Stejně jako v nějaké aplikaci, máme několik možností, jak reagovat. Mohu stisknout tlačítko “Ano, mám” a nebohého bezdomovce podaruji nějakým drobáskem. Nebo stisknu “Ne, nemám” a s dovětkem o hledání práce, týpka odpálkuji. Anebo mohu stisknout křížek a okno zavřít. Tedy tento dialog prostě ignoruji a odcházím, což by asi udělala většina z nás. Ano, křížek na zavření okna je obecně velmi oblíbená funkčnost.

No, ale může se stát, že některá dialogová okna křížek na zavření nemají. V tomto případě je to situace, kdy mě neoholené individuum chytne náhle za rukáv. Zde už nemohu dialog ignorovat a musím řešit tuto nezávidění hodnou situaci. Objevuje se zde velké tlačítko “Ano, nějaké drobné snad najdu”, které bych zřejmě zvolil s nadějí, že bude tento nepříjemný dialog co nejdříve ukončen. Ale je dobré také vědět, že pokud vyndáte peněženku, můžete o ni ihned přijít. Nebo radši stisknout červeně označenou volbu “Ne, nic nedostaneš a koukej mě pustit votrapo”? U tohoto tlačítka ovšem bliká důležité varování, že pokud kliknu na tuto rizikovou volbu, může to pro mě mít pro mě dohru, jak ve špatném ninja filmu!

Rozhodnout se zde opravdu není lehké. Stejně tak uživatelé si v mnoha situacích v aplikacích neví s dialogy rady. Ne vždy totiž můžeme dialog bez obav zavřít a pak jsme nuceni zvolit z několika alternativ, kdy úplně nerozumíme, co vlastně děláme. A to je vždy nebezpečné! Nejlepší je prostě podobným stresovým situacím předcházet. Tedy vyhýbat se opuštěným nočním ulicím a šetřit s použitím dialogových oken v návrhu aplikací!

Jan Čermák