Ergonomie není jenom o tom, jak vytvarovat klávesnici a jak vysoko umístit monitor. Záleží i na tom, jak se chová program, se kterým pracujeme.
Při ergonomické optimalizaci uživatelského rozhraní záleží především na tom, o jaký program se jedná. V textovém editoru předpokládáme, že uživatel má po většinu času ruce položené na klávesnici. V grafických editorech naopak používá spíše myš nebo tablet. Ve hrách se často používají všechny typy vstupů najednou, ale musí na to stačit dvě ruce (pokud nepoužíváme pedály).
Ergonomie ovládání počítačových her bývá obvykle na velice dobré úrovni. Je nutné, aby hráč na všechny ovládací prvky, které v daný okamžik potřebuje, pohodlně dosáhl. Přesun pozornosti z obrazovky na klávesnici často znamená osudné zdržení a následnou prohru. Proto je dobrá ergonomie klíčová stránka hry. Hráč si musí na ovládání dané hry co nejrychleji zvyknout, a pokud se mu nelíbí, měl by mít možnost překonfigurovat si ho podle svých potřeb. Nevhodné ovládání může snížit hratelnost natolik, že hráč hru smaže a doporučí všem známým, aby si ji nekupovali. Což je přesně to, co výrobci her nechtějí.
Naproti tomu u "užitečných" programů, které nemají za úkol člověka bavit, ale pomáhat mu s prací, jde často ergonomie ovládání tak trochu stranou. Uživatel daný program většinou nutně potřebuje, a proto výrobci nehrozí, že by ho kvůli nevhodnému ovládání vyměnil za jiný (zvláště pokud k němu neexistuje alternativa). Příkladem mohou být třeba textové editory, kde určité věci nejdou provést jinak než proklikáním se několika nabídkami, nebo grafické editory, kterým je nutné neustále zadávat nejrůznější hodnoty z klávesnice a myši současně.
Hlavní požadavky na ergonomičnost uživatelského rozhraní programů se pokusím shrnout do několika bodů:
Například když píšeme text, máme ruce položené na klávesnici (ergonomii klávesnice samotné ponechme stranou). Program by nás neměl nutit příliš často přehmatávat na myš. V optimálním případě oči sledují obrazovku, jmenovitě textový kurzor a jeho bezprostřední okolí, kontrolují právě napsaný text, zbývající místo apod., zatímco ruce jsou položeny na klávesnici a píší. Někdy se zrak přesouvá i dolů - to když potřebujeme stisknout nějakou málo používanou klávesovou kombinaci, kterou si prsty nepamatují (nebo pokud neumíme psát poslepu - v takovém případě musíme zrakem neustále těkat mezi klávesnicí a obrazovkou, což znamená jak namáhání očí, tak značné zdržování v práci; to je ale problém nás, nikoli programu).
Textové editory by si tedy měly pro naprostou většinu činností vystačit s klávesnicí: pohyb v textu, označování bloků, mazání, vkládání a přesouvání, ukládání a načítání, vkládání často používaných speciálních znaků, přepínání mezi několika otevřenými dokumenty a podobně. Když už se v textovém editoru využije myš, mělo by to být na takové akce, na které se myš hodí opravdu nejlépe, např. kreslení šipek a obrázků do textu nebo posun obrazovky bez ovlivnění kurzoru a případných označených bloků. Zároveň by se při takovýchto činnostech vůbec neměla vyskytovat potřeba či dokonce nutnost zadávat něco z klávesnice. Všechny potřebné povely mají být přístupné z panelů tlačítek a místních nabídek, aby se pozornost uživatele mohla plně soustředit na obrazovku a ruku na myši.
Grafické editory používají pro práci převážně různá polohovací zařízení - myš, tablet apod.. Zde by naopak měla být většina akcí dostupná myší. Zadávání číselných hodnot z klávesnice (např. rozměrů geometrických objektů, úrovně zvětšení nebo R-G-B složek barev) velmi zdržuje práci.
Potřeba velkého množství tlačítek na pracovní ploše obrazovky vyvolává klasickou otázku: kam s nimi? Nejeden jinak velice dobrý editor odrazuje uživatele plovoucími panely, které zakrývají buď kus obrázku, okrajové posuvníky nebo nějaký jiný panel, ale bez kterých se při práci neobejdeme. Neustálé "uklízení" panelů někam, kde by nepřekážely, spotřebuje mnoho času, který by určitě šel využít jinak. Pevně ukotvené panely sice nic nezakrývají, ale zase zmenšují zobrazitelný výřez obrázku. To vadí zejména u obrazovek s menším rozlišením (ne každý má doma 19" monitor 1600×1200), protože často potřebujeme velké zvětšení (třeba abychom viděli, odkud přesně vedeme čáru) a zároveň musíme vidět na velkou část obrázku (abychom viděli celý kreslený objekt). Toto se dá vyřešit programově; stačí, aby uživatel mohl kdykoli během kreslení libovolně zoomovat a posouvat obrazovku (např. kolečkem myši - viz AutoCAD).
Každý příkaz by měl jít provést co nejmenším počtem akcí. Není příjemné, když nějaký povel musíme zadávat několika kliky myši. Zvláště to platí pro příkazy, které se obvykle používají několikrát za sebou: "najdi další výskyt", "přeformátuj vybraný odstavec do dříve uvedeného stylu", "přepni na první otevřený dokument" apod..
Počet kláves na klávesnici a z toho vyplývající počet jejich možných kombinací je omezený, lidská paměť také. Proto se nedá jednoduchými klávesovými zkratkami (X, S, Ctrl+Q, Shift+Ctrl+E apod.) zařídit všechno. Zaprvé by se uživatel musel všechny hned na začátku naučit, což není zrovna pohodlné (viz např. starší souborové manažery - třeba Norton Commander, kde jediným způsobem, jak přepnout na jiný disk, je zkratka Alt+F1 nebo Alt+F2). Zadruhé ne všechny zkratky se dají použít (např. v textovém editoru nemůžu klávesou U ukládat, protože ji potřebuji na psaní).
Dobrým kompromisem je lišta nabídek, kde kombinací Alt + příslušné viditelně označené písmeno nabídku otevřeme a stiskem dalšího písmena vybereme položku z nabídky. Výhodou nabídek je, že se dají ovládat jak klávesnicí (většinou), tak myší (proto není třeba se hned učit složité klávesové kombinace), a že při častém používání si příslušnou klávesovou sekvenci nakonec zapamatujeme a tím bude její použití mnohem rychlejší. Nevýhodou je, že v jiných jazykových verzích příslušného programu (a někdy dokonce verzi od verze i ve stejném jazyce) se tyto zkratky liší. Např. pro uložení v anglické verzi se použije Alt+F,S (File -> Save), zatímco v české Alt+S,U (Soubor -> Uložit). Někdy jde jazyková bariéra obejít vhodnou volbou názvů nabídek, čímž se příslušná písmena zachovají (třeba Options - vOlby), nebo jednoduchou zkratkou společnou pro všechny verze (třeba Ctrl+S pro uložení), která bude s nabídkami koexistovat.
U některých programů nebo operačních systémů se lišta nabídek označí po stisku a puštění samotné klávesy Alt. To není příliš vhodné, protože nechtěným zavaděním o tuto klávesu se "pozornost" počítače přenese jinam a někdy nám třeba zmizí kurzor nebo pak stiskem další klávesy omylem vyvoláme nějakou nevhodnou akci. Proto je lepší všechny příznakové klávesy používat jen v kombinaci s jinými.
Příliš "hluboké" struktury podnabídek jsou nevhodné. Jednak trvá déle, než se do takového místa proklikáme, a jednak se delší klávesové zkratky hůře pamatují. Dle mého názoru je rozumné maximum jedna podnabídka pro každou hlavní nabídku.
Někdy je z hlediska pohodlí a názornosti lepší zařídit spouštění určité akce tlačítkem na obrazovce. Příkladem může být (třeba v textovém editoru) zarovnání vpravo, vložení obrázku nebo tabulky, výběr písma nebo změna stylu celého dokumentu. To jsou akce, které se provádějí pouze občas, a je proto rychlejší přehmátnout na myš a kliknout než pracně hledat příslušný příkaz v nabídkách (klávesovou zkratku stejně v takových případech neznáme).
Optimální je, když program obsahuje v liště nabídek úplně všechno a veškeré klávesové zkratky a tlačítka na panelech nástrojů si může uživatel nadefinovat podle vlastního uvážení (příkladem může být třeba MS Word do verze 2003).
Programátoři by si měli uvědomovat, v jakém pořadí budou která tlačítka na obrazovce obvykle používána. Je nepříjemné, když se například seznam vlastností objektu nachází v liště u levého okraje obrazovky a nejpotřebnější tlačítka Upravit, OK a Zrušit někde daleko napravo. Uživatel pak musí s myší přejíždět sem a tam přes celou obrazovku, místo aby všechno odklikal pohodlně na jednom místě.
Dialogová okna stejného typu by se měla objevovat vždy na stejném místě obrazovky. Výhodné to je třeba v případě, když potřebujeme rychle za sebou odklikat několik upozorňovacích oken, které už známe a nepotřebujeme je číst: umístíme kurzor myši nad tlačítko OK a pak jenom rychle klikáme, dokud je na co (všechna okna, která se objevují, mají toto tlačítko na stejném místě. Příkladem může být Festo Fluidsim). Kdyby se každá další zpráva objevila vždy o kousek jinde než ta předchozí, museli bychom před každým klikem znovu přejíždět myší na správné místo, což znamená výrazné zdržení a zbytečnou práci navíc. Další oblastí, kde se toto výrazně uplatní, jsou dotykové obrazovky. Uživatel, který už zná program zpaměti, přesně ví, že když provede jistou akci, musí pak stisknout tlačítko, které se objeví v pravém dolním rohu obrazovky, a třeba už má nad tím místem připravený prst. Kdyby se tlačítko objevilo jinde... neměl by radost.
Jedním z cílů ergonomie je zvýšení produktivity práce. To znamená mimo jiné to, že se snažíme člověka při práci nijak neomezovat a nezdržovat.
Mnohé programy se přímo vyžívají v různých animacích a grafických efektech. Například jistý nejmenovaný operační systém při startu zobrazí černou plochu, na které se postupně objeví logo (fade-in) a pak se teprve začne skutečně načítat. Je docela dobře slyšet, že během zobrazování loga utichne veškeré "chroustání" pevného disku, čili nic užitečného se v tu chvíli neděje. Je sice pravda, že celý efekt zabere jen něco málo přes jednu sekundu, ale je to zdržení zbytečné.
Drobné zdržení při startu OS většinou nevadí, protože počítač spouštíme jen jednou (před začátkem práce). Jestli ale bude "překrásnou" třísekundovou animaci předvádět program, který potřebujeme spustit každých deset minut, už to začne být horší. A když si připočítáme, že každé nabídce trvá efektní rozbalení 0,3 s, že podnabídky se otvírají až po 0,75 s, že nová okna se při otevření jakoby vynoří zpod obrazovky (0,5 s) a že třeba antivir v pozadí právě nyní spustil kompletní test celého disku, který všechno ostatní zpomalí na čtvrtinu (za což ale náš program nemůže), vyjde nám už poměrně dlouhá doba, která by se dala určitě využít smysluplněji.
Proto: funkčnost programu nikdy nesmí ustoupit estetice. Hlavní je, aby program rychle a spolehlivě fungoval. Tím na uživatele zapůsobí mnohem lépe než záplavou oslnivých efektů. Jedno hezké intro při prvním spuštění programu neuškodí, ale pak by mělo jít vypnout, stejně jako veškeré ostatní zbytečné animace.
Neboli nedělat všechno jedním prstem.
Je dobré, když je práce rovnoměrně rozdělena mezi obě ruce nebo alespoň několik prstů jedné ruky. Každý, kdo si někdy vyzkoušel práci se softwarovou klávesnicí obsluhovanou myší, po chvíli psaní získal nepříjemný pocit, že zatímco pravý ukazovák ho od neustálého klikání bolí, zbytek těla zahálí. Podobné to je při psaní jedním nebo dvěma prsty na skutečné klávesnici.
Program ovládaný jen a pouze levým tlačítkem myši může být sice jinak naprosto v pořádku, ale může člověka časem unavit. Lepší je, když se využijí alespoň obě tlačítka - pro pravé se vždycky nějaké využití najde (ať už jde o často opomíjenou místní nápovědu, nebo třeba opakování poslední akce) nebo se k myši přidají klávesové zkratky.
Existují činnosti, na které se nejlépe hodí klávesnice (psaní textů, zadávání přesných číselných hodnot apod.). Na jiné věci se naopak nejlépe hodí myš (přesouvání objektů, zoomování a posun obrazovky, výběr buňky tabulky atd.). Programátoři na to poměrně často neberou ohledy a sestavují programy tak, aby s tím měli co nejméně práce.
Příkladem "pixel-huntingu" (pracného trefování se myší) může být diagnostický program SAZE, kde se zadává velké množství čísel do tabulky pomocí posuvníků. Na opačném konci spektra stojí některé amatérské programy, které nám třeba řeknou "napište jméno souboru", místo aby nás nechali vybrat jej kliknutím ze seznamu.
Pokud ergonomičnost programu chápeme jako vlastnost, která způsobuje, že se s ním člověku dobře a pohodlně pracuje, pak k ní určitě patří i toto.
Když se průměrný uživatel dostane k nějakému pro něj dosud neznámému programu, první věc, kterou udělá, bude obvykle jeho spuštění. Nanejvýš ještě předtím zběžně prolétne začátek souboru README, aby se dozvěděl, jestli na něj nečeká nějaká záludnost, ale prakticky nikoho nenapadne si napřed prostudovat objemný manuál. Začíná tedy pohledem na hlavní uživatelské rozhraní programu. To by mělo být natolik přehledné a samovysvětlující, aby bylo každému co nejdříve jasné, jak se s ním pracuje. Velice vhodná je pro tyto účely místní nápověda: klik pravým tlačítkem myši na nějaké tlačítko (nebo obecně jakýkoli objekt) vyvolá stručný popis, k čemu slouží a jak se s ním pracuje. Je to mnohem lepší než klasická nápověda ve stylu příručky, ve které chudák uživatel musí pracně hledat, ve které kapitole a podkapitole se o příslušném tlačítku píše (a jestli vůbec).
K intuitivnosti patří také jasně pochopitelné, výrazné a nezaměnitelné ikony na tlačítkách. Není vůbec potřeba, aby obrázky ikon byly v truecoloru, pestrobarevné, pečlivě vystínované a s vysokým rozlišením. Stačí naprosto jednoduchý piktogram, ze kterého ale bude na první pohled jasné, co znamená. Barevnost hraje také poměrně velkou roli. Je lepší, když je každá ikona laděna pokud možno do jednoho unikátního odstínu. Uživatel se pak orientuje mnohem rychleji - stačí vědět, že hledám "takové to žluté trojúhelníkovité" nebo "ten šedý obdélník", a nepotřebuje mezi několika úplně stejně pestrobarevnými zakulacenými obrázky hledat ten, který se nejvíc podobá reproduktoru nebo klávesnici.
Dobré je při návrhu uživatelského rozhraní brát ohled na jisté tradiční "archetypy", které se za léta existence počítačů vžily. Například pro ukládání se stále používá tlačítko s obrázkem diskety a každý ví, co znamená, i když se skutečnou disketou už přijdou do styku snad jen milovníci starého železa. Je to něco podobného jako obrázek parní lokomotivy na dopravních značkách. Existují i jiné vžité tradice, které sice moc logické nejsou, ale lidé si na ně už zvykli (např. odinstalace programů ve Windows přes Start - Nastavení - Ovládací panely). Otázkou je, jestli je udržovat nebo vymyslet něco jiného.
Je dobré, když nám program dokáže ulehčit práci tím, že něco udělá za nás. Ovšem pokud udělá něco, co jsme v žádném případě nechtěli a co po něm musíme pracně opravovat, celá automatizace je najednou spíše na obtíž.
Na jedné straně existují programy, které se nám snaží pomáhat, seč mohou. Někdy to je opravdu užitečné a ušetří to dost práce, ale jindy z toho máme spíše pocit, že se nás počítač snaží naštvat. Příkladem může být třeba automatické softwarové "rovnání" křivě vloženého papíru u některých skenerů, které ale většinou tvar listu špatně pochopí a naopak nám ho úplně rozhodí, nebo automatické odsazování u některých vývojových prostředí (Anjuta, Delphi, MATLAB...), které programátorům vnucují svoji úpravu, místo aby je nechaly, aby si psali tak, jak jim to vyhovuje.
Na straně druhé máme jednoduché programy, které za nás neudělají prakticky nic. Sice se nemusíme bát žádných zlomyslností, ale zase si všechno musíme udělat sami. A na to přece počítač nepotřebujeme.
Netvrdím, že vysoký stupeň automatizace je pokaždé na škodu. Čím "inteligentnější" algoritmy se ale v programu vyskytují, tím důkladněji je musí programátor vyladit, aby skutečně fungovaly správně. O špatně navržené umělé inteligenci, která se lidem vymkla z rukou, se hovořilo již mnohokrát (R.U.R., Matrix...), proto problematiku samostatného "myšlení" počítačových programů shrnu do jedné věty: proč ne, ale všeho s mírou, a hlavně aby to šlo v případě potřeby vypnout.
Na každou akci vždy nutně potřebujeme určité množství ovládacích prvků (tlačítek, přepínačů, posuvníků a podobně). Pak existují prvky, které se hodí občas, a prvky, které využijí jen opravdoví experti (například různé podrobné nastavení parametrů). Důležité je tyto skupiny při tvorbě programu správně určit a oddělit, aby uživatele nemátla záplava nepochopitelných tlačítek a dialogů, ale aby naopak nemusel nějakou volbu, kterou potřebuje poměrně často měnit, dolovat někde v hlavním nastavení aplikace nebo snad nastavovat pomocí samostatného konfiguračního programu (i to se bohužel občas vidí).
Méně používané a pokročilé volby by tedy neměly na uživatele vyskakovat pokaždé, ale měly by být přístupné přes nějaký prvek co nejblíž tlačítka pro vyvolání základní akce. Jenom pozor, aby do "pokročilých" voleb nespadlo něco, co používáme častěji než všechno ostatní dohromady (příkladů bohužel existuje celá řada).
Ta už s ergonomií příliš nesouvisí, ale přesto se o ní zmíním.
Asi největší záchvaty bezmocného vzteku přepadají uživatele ve chvíli, kdy nějaký jinak výborný program nemohou použít jen proto, že běží v obrovském (ale prakticky poloprázdném) okně, které se nevejde na jejich obrazovku a nedá se tak myší dosáhnout na ta nejdůležitější tlačítka. Přitom by stačilo tak málo: aby programátor při tvorbě onoho okna nezakázal ruční změnu jeho velikosti.
Další vyloženě zbytečný problém je, když se uživatel po nainstalování programu dozví, že ho spustí jen a pouze tehdy, pokud bude mít počítač s operačním systémem Windows NT nebo nanejvýš ME verze 1.0, s rozhraním DirectX 8.3, grafickou kartou Geforce 6 a čtyřtlačítkovou myší. Ale proč tohle všechno, když jde o poměrně jednoduchou aplikaci, která neobsahuje žádné extrémní trojrozměrné grafické efekty ani nic podobného? Nový hardware i software se dá dokoupit. Větší problém je, když program potřebuje nějakou starší verzi určitého OS (např. Windows XP + service pack 1), která se z různých důvodů (třeba kvůli automatickým aktualizacím) prakticky vůbec nedá vytvořit.
V dnešní době existuje spousta vývojových nástrojů, které umožňují tvořit uživatelská rozhraní velice rychle a pohodlně. Programování ale není jenom o naházení tlačítek do formuláře a sepsání několika obslužnách procedur. Je třeba si zmíněná tlačítka napřed důkladně promyslet a spolu s nimi i vlastní funkci celého programu: nešlo by ještě někde něco malinko předělat, aby se s ním pak pracovalo lépe? Nezapomínejme, že programátor stráví tvorbou uživatelského rozhraní řádově týdny, ale uživatelé pak s jeho výtvorem tráví celé měsíce až roky. Tak se snažme :-).