Richard Šerý
19.10.2009

GUI Design: Použitelnost



Není to tak dávno, co vývojáři webových aplikací zápasili s problémem, jak vůbec vytvořit GUI které by fungovalo. Díky postupující standardizaci se začátkem 21. století podařilo tyto potíže překonat a do ohniska zájmu se dostal druhý stupeň „pyramidy potřeb“ – použitelnost. Móda použitelnosti má ale i svoje stinné stránky – pro mnoho lidí jde víceméně o buzzword aniž by si pod tím dokázali představit něco konkrétního.

Llama 2

Použitelné – ale pro koho?

Když vyrábíme GUI, je třeba se vždy ptát, pro koho je určeno a pro koho naopak není. Většinou nic nezkazíme, když GUI vyrobíme tak aby ho snadno pochopili a používali i hloupí či nezkušení uživatelé. V takovém případě totiž chytrý uživatel nemusí přemýšlet nad ovládáním a může svou chytrost zaměřit jiným směrem, například soustředit se na činnost kterou dělá. Jsou ale uživatelé, kteří mají na GUI vyšší nároky než běžná lama. Nevadí jim učit se věci, např. klávesové zkratky a různé zvláštní funkce, pokud to významně zefektivní jejich práci. Můžeme tedy narazit na dilema – udělat ovládání spíše jednoduché, nebo raději efektivní? A tady je pak nutné vědět co nejvíce o uživatelích, abychom mohli udělat správné rozhodnutí.

Jednoduchost

Důležitým, ale nikoli jediným, prostředkem jak zlepšit GUI je jeho zjednodušení. Jednoduchost je na první pohled docela jednoduchá věc, ve skutečnosti však jde o poměrně složitou problematiku, která má svoje pravidla i designové vzory.

GUI můžeme zjednodušit mnoha různými způsoby – skrýt nebo zmenšit méně používané ovládací prvky, zavést silné konvence a konzistentně je dodržovat, ubírat na počtech (např. redukovat počet účaří, barev, tlačítek, typů písma, dominant atd.), zbavit se rušivých elementů, pracovat s archetypy které již uživatel má v hlavě… Důležitým prvkem jednoduchosti je také nenutit uživatele k rozhodnutí tam, kde to není nezbytně nutné, slovy klasika „zbavit ho tyranie malých rozhodnutí“. Albert Einstein vyslovil velkou pravdu: „Všechno by se mělo dělat nejjednoduší, jak jen to jde, ale ani o píď jednodušší.“ Je tomu tak i v designu, jednoduchost a složitost jsou dvě strany téže mince a nemohou existovat odděleně. Veškeré naše konání a myšlení by mělo být prostoupeno snahou o jednoduchost, ale také vědomím a pochopením komplexnosti, která je za jednoduchostí skryta.

Je počítač nástroj nebo asistent?

V konstrukci uživatelských rozhraní lze rozeznat dva poměrně zřetelné trendy. První považuje počítač za bezduchý nástroj ovládaný kvalifikovaným uživatelem. Druhý trend považuje počítač za „asistenta“, ktreý dokáže rozpoznat činnost uživatele a značně mu ji usnadnit.

Počítač jako nástroj

Při tomto přístupu je důležité, aby funkce byly co nejjednoduší, snadno nalezitelné a spolehlivě fungující. Vývojář UI má tři hlavní úkoly:

  1. vytvořit logický a snadno pochopitelný systém, který uživateli umožní snadno najít a spustit kteroukoli funkci
  2. zajistit, aby funkce byly tak jednoduché, aby je uživatel snadno pochopil do všech důsledků (zákon nejmenšího překvapení)
  3. zjistit, které funkce se používají nejčastěji, a zajistit k těmto funkcím co nejsnadnější přístup (jako bonus může dát uživateli možnost upravit si ovládání podle svých potřeb)

Koncepce „nástroje“ dobře funguje pro uživatele, kteří mají čas a motivaci se se systémem blíže seznámit a kteří mají zcela jasnou představu, co by s ním chtěli dělat – jsou to hlavně programátoři, konstruktéři (CAD), grafici a DTP operátoři a další profesionálové.

Počítač jako asistent

Tento přístup vyžaduje ještě lepší poznání uživatelů a jejich potřeb. Principem je, že uživatel dá pokyn k zahájení poměrně složité činnosti, kterou pak počítač samočinně vykonává a uživatele žádá jen o ty vstupy, které nedokáže získat jiným způsobem. Typickým představitelem takovéhoto typu rozhraní je tzv. „wizard“. Designér má opět tři hlavní úkoly:

  1. co nejlépe popsat typickou činnost uživatele a všechny rutinně prováděné úkony přenést na počítač
  2. statisticky zmapovat vstupy uživatele a ty, které se vyskytují nejčastěji, zanést do systému jako „přednastavené hodnoty“
  3. dobře zpracovat zpětnou vazbu, aby uživatel měl pocit jistoty, že počítač dělá přesně to, co má, a věděl, jaké jsou výsledky (a následky) jeho činnosti.

Použitelnost a přístupnost

V horlivé snaze zpřístupnit webové aplikace pro lidi zrakově, sluchově, pohybově či mentálně postižené, zapomínají občas tvůrci aplikací na uživatele, kteří žádný handicap nemají. Může se tak stát, že ačkoli v jednotlivostech aplikace splňuje všechny poučky o přístupnosti a bezbariérovosti, celkově je k ničemu, protože nesplní očekávání běžných uživatelů a nikdo ji tedy nebude používat. Je tedy dobré si uvědomit, že použitelnost a přístupnost není totéž.

Přístupnost je dobro

Občas se člověk setká s příkazem „na přístupnost se vykašli, postižených je málo a stejně na nich nevyděláme“. To je amorální a slušný člověk by amorální příkazy neměl uposlechnout. Ale realita je složitá a někdy je krátkodobě nutné spolupracovat i s lidmi, o které bychom si jindy ani neopřeli kolo. Je tedy vhodné vědět, že pro přístupnost mluví i objektivní měřítka – bezbariérové aplikace přinášejí úspory nákladů i zvýšené zisky. Jak přístupnost souvisí s úsporami? Máme-li vyjít vstříc handicapovaným lidem, většinou to znamená udělat GUI jednodušší. Jednoduché GUI je však obvykle snazší nejen použít a pochopit, ale dost často je i jednodušší ho naprogramovat, otestovat a udržovat. Chceme-li například zavést automatické testování aplikace, velmi nám usnadní práci, když každý obrázek a každý odkaz má svůj popisek v atributu „title“. Budiž, jednodušší aplikace jistě může přinést úspory, ale zisk? Je třeba si uvědomit, že nejhůře handicapovanými uživateli webových aplikací nejsou lidé, ale stroje. Například takový googlebot – nevidí, neslyší, dokonce ani nepřemýšlí – a přesto se potřebuje na stránkách, které indexuje, vyznat. A pokud se v nich snadno vyzná, ocení to lepším umístěním ve výsledcích vyhledávání, a tedy reklamou zdarma. Způsob, jakým google čte stránky, se velmi podobá způsobu, jakým stránku čte slepecký browser.

Testy použitelnosti

Nauka o použitelnosti je v podstatě naukou o lidech, takže má do exaktní vědy velmi daleko. Téměř žádná z pouček o použitelnosti nemá zcela univerzální platnost, proto je důležité naše návrhy neustále konfrontovat se skutečnými uživateli – a k tomu právě slouží testy použitelnosti. Test použitelnosti spočívá v tom, že uživateli předložíme naši aplikaci, dáme mu úkoly které má s její pomocí splnit, řekneme mu, aby svou činnost hlasitě komentoval a sledujeme, co doopravdy dělá. Mezi tím, co uživatel říká a co dělá, je obvykle rozpor, a právě ten je nejcennějším zdrojem informací. Umožňuje nám totiž nahlédnout do způsobu jeho uvažování a konfrontovat ho s naší původní představou. Úkoly, které uživateli předkládáme, jsou vlastně případy použití přeložené do běžné řeči (někdy se jim „odborně“ říká business use cases nebo user stories), takže uživatel dostává úkoly typu „přihlašte se do systému“ nebo „založte nový účet“. Rozšířeným omylem je, že pro vedení uživatelského testu potřebujeme hotovou aplikaci. Opak je pravdou, většina uživatelských testů se provádí na papírových modelech obrazovek a tyto ranné testy také přinášejí nejcennější výsledky. Kolik testů provést? Guru uživatelského testování Jacob Nielsen tvrdí že stačí 5 uživatelů, abyste odhalili více než 80% všech problémů. Z vlastní zkušenosti s ním musím souhlasit. U testování opět nejde o exaktní vědu, ale o výsledky, takže v průběhu testování můžete měnit testovaný model i úkoly a v případě že je to nutné, můžete uživateli i napovědět nebo mu pomoci překonat místo, s kterým si neporadí. Každý z uživatelů tak může mít test trochu jiný, podle toho jak postupně odhalujete a odstraňujete různé chyby.

Opravdu je použitelnost to, co chceme?

Ve většině případů opravdu chceme hlavně dobře použitelné UI, ale najdou se i výjimky. Typickými představiteli uživatelských rozhraní, kde tradiční přímočará použitelnost není na prvním místě, jsou

  • bezpečná rozhraní – tedy rozhraní odolná proti chybám lidského faktoru
  • komplexní rozhraní – tedy rozhraní určená pro velmi kvalifikovanou obsluhu, která řeší složitý problém
  • herní rozhraní – tedy taková kde stavíme uživateli do cesty určité překážky a chceme aby je překonával

Bezpečná rozhraní

Tam kde je zásadním požadavkem, aby uživatel neudělal chybu, je nutné vytvořit bezpečné rozhraní. Zatímco běžné použitelné rozhraní se přizpůsobuje stereotypu práce uživatele, bezpečné rozhraní se naopak snaží v kritických okamžicích stereotyp narušit, aby nedocházelo k chybám rutinní práce. To je poměrně náročný úkol, protože hrozí, že naše opatření prostě jen nahradí jednu rutinu druhou. Pokud například při každé operaci mazání vyskočí dialog „opravdu chcete toto smazat?“, uživatel si jeho potvrzování zautomatizuje a dialog tak přestane plnit svou ochrannou funkci. Bezpečná rozhraní jsou nepopulární. Uživatel není rád, že ho vytrhujeme z práce a otravujeme různými bezpečnostními pojistkami, že snižujeme jeho efektivitu omezeními a že ho občas zbytečně vyděsíme varováním. Vlastně děláme pravý opak než obvykle – obvykle uživatele nechceme rušit v jeho práci, bezpečné rozhraní má naopak za cíl uživatele vyrušit, zastavit jeho práci, rozbít jeho pracovní stereotyp a přinutit ho chvíli přemýšlet o tom, jestli to, co dělá, není chyba.

Komplexní rozhraní

U některých vysoce specializovaných aplikací se dá očekávat, že i obsluha bude kvalifikovaná a zaškolená. V takových případech nemusíme rozhraní dělat tak, aby ho pochopil každý, stačí když ho pochopí obsluha a tu to můžeme naučit. Preferujeme efektivitu práce a kvalitu informací, které rozhraní poskytuje. Typickými představiteli komplexních rozhraní jsou aplikace typu CAD, programátorská vývojová prostředí a geografické informační systémy.

Herní rozhraní

Představte si hru Doom optimalizovanou na lepší použitelnost. Spustili byste hru, kliknutím byste označili příšery, které chcete zabít, stiskli byste OK a hned byste postupovali do další úrovně. Žádné bloudění labyrintem, celou hru byste velmi efektivně dohráli za pár minut. Ale asi by to nebylo ono, že? Prvek hry spočívá v překonávání překážek a lidé to mají rádi. V některých případech je na místě vkládat herní prvky i do „neherních“ aplikací, jako jsou např. propagační weby. Ale pozor, je třeba rozlišovat, co jsou překážky motivující, které uživatele zaujmou, a co jsou překážky frustrující, které uživatele odradí. I designér herních rozhraní musí mít jasno v použitelnosti, protože hráč chce řešit zábavné úkoly, ne zápasit s uživatelským rozhraním.

Závěrem

Použitelnost je pro obchodní úspěch aplikace nezbytná, ale v posledních letech je stále významnějším faktorem i přístupnost. Jestliže se nám podaří tyto dvě věci vyřešit, přichází na řadu vzhled aplikace, o kterém bude další díl seriálu. Předchozí díl: Funkcionalita Následující díl: Vzhled

Vaše emailová adresa nebude zveřejněna

Komentáře

Děkujeme za váš komentář
Další
  • Uf

    Měl bych poznámky, které se nehodí napsat sem. Mohu je poslat na Richard.Sery@www.aspectworks.com ? Uf

  • Samozřejmě, jakékoli poznámky netýkající se přímo článků prosím pište na můj mail richard.sery@www.aspectworks.com

  • Jo aby nedošlo k nedorozumění (tedy už k němu došlo ;-) - větou "s lidmi, o které bychom si jindy ani neopřeli kolo" jsem nemyslel lidi hadicapované, ale naopak managery, kteří by si nechali raději koleno vrtat, než by zaplatili pár stovek na optimalizaci pro nevidomé.

  • Martin Beránek

    Zaujal mě problém "Bezpečných rozhraní", ale nevidím rešení. Mám pocit že téměř vše může sklouznout ke stereotipu. Máte nějaký příklad řešení?

  • Nejdůležitější v těchhle případech je zkomplikovat akci natolik, aby se musely zapojit vyšší mozkové funkce uživatele a nevystačil si se stereotypním podmíněným reflexem. I reflexivní činnost většinou prochází vědomou kontrolou, ale ta je v těchto případech mnohem pomalejší než samotné vykonání akce. To jsou ty případy, kdy si člověk uvědomí, že mail neměl odesílat, asi tak půl vteřiny poté, co stisknul "OK" v dialogu "Opravdu chcete mail odeslat?" Tahle problematika je velmi zajímavá a určitě je to dobré téma na samostatný článek.

  • Sebastian Bušek

    Osobně si myslím, že k bezpečnému rozhraní se dají vhodně použít animace, jedná se o nenásilnou formu, která dle mého názoru více zapojuje mozek i v případě stereotipu...

    1. Je to jedna z možností, ale i tady je potřeba přemýšlet a ne tam cpát animace hlava nehlava. Vnímání pohybu sice vychází z velmi starých mechanismů, ale i tohle umí mozek překrýt formou "bannerového efektu". Například u lidí, kteří mají doma neustále zapnutou televizi, lze pozorovat, že zapnutá televize neupoutává jejich pozornost, ačkoli je na obrazovce pohyb. Na druhou stranu lidi kteří na televizi nejsou zvyklí (jako třeba já) se při běžící televizi absolutně nejsou schopní soustředit, obrazovka jim stále strhává pozornost. Takže pokud by se pohyb používal příliš, nebo se příliš silně spojil s běžnými jevy, mohlo by i tohle přestat fungovat.