Chybové, prázdné a načítací stavy, které pomáhají pokračovat

Jak navrhnout chybové, prázdné, načítací, offline a úspěšné stavy s jasným dalším krokem, přístupným oznámením a bezpečnou obnovou.

Chybové, prázdné a načítací stavy, které pomáhají pokračovat
Stručná odpověď

Pro každý stav pojmenujte situaci, oznamte ji i asistivní technologii, zachovejte data a nabídněte bezpečnou akci: počkat, zopakovat, upravit nebo kontaktovat podporu.

Rozhraní netvoří jen ideální obrazovka s kompletními daty. Uživatel čeká na síť, otevře prázdný účet, ztratí oprávnění, zadá neplatný vstup nebo narazí na výpadek služby. Pokud systém zobrazí jen spinner, prázdnou bílou plochu či technický kód, člověk neví, zda má čekat, zkusit to znovu, nebo kontaktovat podporu.

Kvalitní stav vysvětluje, co systém ví, zachovává bezpečně provedenou práci a nabízí přiměřený další krok. Nesmí slibovat úspěch, dokud server operaci nepotvrdil, ani odhalovat interní bezpečnostní detaily. Stav je třeba navrhnout jako součást funkce a otestovat při pomalé síti, opakovaném požadavku, ztrátě relace i s asistivní technologií.

Stavový model vzniká společně s uživatelskou cestou

Pro každou obrazovku sepište počáteční, načítací, prázdný, částečný, úspěšný, chybový, offline a neoprávněný stav podle relevance. Rozlište chybu uživatele, síťový problém, obchodní pravidlo a interní selhání. Každá situace potřebuje jiný text a jiný způsob obnovy. Jedno univerzální „Něco se pokazilo“ skrývá potřebné rozhodnutí.

Určete, která data lze zachovat, kterou operaci lze bezpečně zopakovat a kdy hrozí duplicita. U platby, objednávky nebo odeslání formuláře musí rozhraní umět rozlišit neúspěch od neznámého výsledku. Pokud stav nelze potvrdit, nevyzývejte uživatele k bezhlavému opakování kritické akce.

  • zdroj a typ vzniklého stavu
  • data, která se mají zachovat
  • bezpečnost opakování operace
  • vlastník technické a obsahové reakce

Načítání má oznámit rozsah a zbytečně neblokovat

Krátkou operaci lze indikovat lokálně u prvku, delší potřebuje srozumitelný průběh nebo alespoň informaci, co se načítá. Spinner bez textu a bez konce neukazuje, zda aplikace pracuje. Skeleton má odpovídat výslednému rozložení a nesmí vytvářet falešný obsah, který se po načtení dramaticky přesune.

Zablokujte pouze ovládací prvky, které by konfliktně měnily probíhající operaci. Tlačítko po aktivaci oznámí stav a zabrání nechtěnému dvojímu odeslání, zbytek stránky však může zůstat použitelný. Při překročení očekávané doby nabídněte vysvětlení, zrušení nebo bezpečné opakování. Změnu oznamte tak, aby opakovaně nerušila čtečku obrazovky.

Prázdný stav vysvětluje, proč nic není vidět

Rozlišujte nový účet bez dat, vyhledávání bez výsledku, aktivní filtr bez shody a chybějící oprávnění. Každý případ potřebuje jinou zprávu. Novému uživateli ukažte první smysluplný krok, při nulovém výsledku navrhněte úpravu filtru a u oprávnění vysvětlete, koho lze bezpečně kontaktovat.

Nevyplňujte prázdnou obrazovku generickou ilustrací bez informace. Příklad může pomoci pochopit budoucí obsah, musí však být jasně označen a nesmí vypadat jako skutečný záznam. Primární akce má být dostupná i z klávesnice a její název má říct, co vytvoří nebo změní.

  • nový účet bez prvního záznamu
  • filtr nebo vyhledávání bez shody
  • obsah skrytý nedostatečným oprávněním
  • data odstraněná nebo dočasně nedostupná

Chyba nabízí diagnostiku přiměřenou uživateli

Zpráva má pojmenovat neúspěšnou úlohu, co se zachovalo, a možný další krok. Technický identifikátor může pomoci podpoře, zobrazte jej však odděleně od lidsky srozumitelného vysvětlení. Neodhalujte stack trace, názvy databází, tokeny ani bezpečnostní pravidla. U citlivé operace neprozrazujte, zda konkrétní účet existuje.

Pokud je retry bezpečný, zachovejte kontext a umožněte ho na tomtéž místě. Při opakovaném selhání nabídněte alternativu a kontakt s identifikátorem případu. Chyba nemá automaticky přesměrovat na domovskou stránku a zahodit práci. Focus přesuňte nebo stav oznamte podle významu tak, aby uživatel změně rozuměl.

Úspěch, offline režim a regresní testy uzavírají cyklus

Úspěšný stav potvrďte až po autoritativní odpovědi systému. Uveďte, co se stalo, kde výsledek najít a zda následuje další krok. Toast, který rychle zmizí, nemusí u důležité operace stačit. V offline režimu jasně označte lokálně uložené změny a stav jejich budoucí synchronizace.

Testujte pomalé a přerušené spojení, timeout, opakování, návrat, obnovení, dvojí aktivaci, ztrátu relace a nedostupnou závislost. Ověřte ovládání klávesnicí, focus a oznámení čtečky obrazovky. Logujte technická selhání bez citlivých vstupů a spojujte je s anonymním typem úlohy, aby tým opravoval příčiny, nikoli pouze text.

  • potvrzení uložení z autoritativního zdroje
  • viditelný výsledek i po zmizení toastu
  • jasný stav lokální a serverové kopie
  • test bezpečného opakování kritické akce

Časté dotazy

Jak dlouho může zůstat pouze spinner?

Pevný čas neplatí pro každou úlohu. Při znatelném čekání vysvětlete, co se děje, a podle možností nabídněte zobrazení průběhu, zrušení nebo bezpečné opakování.

Má chyba obsahovat technický kód?

Může obsahovat bezpečný referenční identifikátor pro podporu. Nemá zobrazovat interní stack trace, citlivé údaje ani technické detaily, které uživateli nepomohou.

Je toast vhodný k potvrzení úspěchu?

U drobné vratné akce může stačit. U platby, objednávky nebo odeslání má zůstat stabilní potvrzení s výsledkem a dalším krokem.

Zdroje a další čtení

Adam Antoni, vývojář digitálních řešení
Adam Antoni · Webiant

Adam Antoni vyvíja weby, aplikácie a softvér na mieru. Prepája firemné systémy, automatizuje procesy a vytvára AI agentov. Pôsobí v Spišskej Novej Vsi a spolupracuje s firmami na celom Slovensku.

Potřebujete toto téma vyřešit ve svém projektu?

Napište, co chcete zlepšit, s čím dnes bojujete a jaký výsledek očekáváte. Na úvodní konzultaci projdeme vhodný rozsah a další postup.

Vyberte si, které cookies povolíte. Volbu můžete kdykoli změnit přes odkaz v patičce nebo tlačítko cookies.

Ochrana soukromí a podrobnosti o cookies