Skip to content
PПромтбук
RUEN
02UX-флоу

Дизайн ошибок и edge-состояний

Все способы как может пойти не так: формы, сеть, авторизация, лимиты — и что показывать.

Спроектируй ошибки и edge-состояния для: {{flow}}.

1. Каталог ошибок

Для каждого типа — отдельный дизайн:

ТипГдеЧто показатьДействие
Валидация поляInline под полемЧто не так + как исправитьЮзер исправляет, продолжает
Невозможно отправитьНад формойСводка ошибок + ссылки к полямПрокрутка к первому
Сеть упалаToast / banner"Нет соединения" + retryRetry или offline-mode
401 — выкинулоПолная страницаСессия истекла + loginЗалогиниться
403 — нет правInline / страницаКто может, как получитьЗапросить доступ
404 — нетСтраницаЧто искал, что предложитьНазад / поиск
429 — rate limitToastСколько ждатьПодождать
5xx — серверBanner / page"Что-то пошло не так" + ID + retryRetry / поддержка
Долгая загрузкаInlineПрогресс + опция отменитьОтмена
Пустой результатInlineЧто не нашли + как изменить запросИзменить фильтр

2. Принципы текста ошибки

ЧТО произошло.
ПОЧЕМУ (если знаем и не страшно сказать).
ЧТО ДЕЛАТЬ дальше.

Плохо: "Произошла ошибка" Хорошо: "Не удалось сохранить — нет связи с сервером. Попробуйте ещё раз."

3. Восстановление

  • Не теряй ввод пользователя при ошибке
  • Auto-save черновика
  • На retry — пробуй то же действие, не возвращай на старт
  • Покажи когда retry разрешён ("через 5с"), не давай спамить

4. Логирование (для разработчика)

  • Каждая ошибка → лог с stacktrace + контекст
  • Уникальный ID в UI → юзер сообщит, ты найдёшь в логах
  • НЕ показывай stacktrace пользователю

5. Цвета и иконки

  • Ошибка — красный (но не кровавый — приглушённый красно-розовый)
  • Warning — янтарь
  • Info — синий / нейтральный
  • Иконка слева от текста, не одна сама по себе

6. Hierarchical errors

Если поле в форме невалидно, но форма в целом ок — НЕ блокируй кнопку submit, дай попробовать. Покажи ошибку на submit.

7. Accessibility

  • role="alert" для inline ошибок
  • aria-live="polite" для не-критичных
  • aria-invalid="true" на поле
  • aria-describedby связь поле ↔ ошибка

Анти-паттерны

  • "Ошибка #42" — что это значит?
  • Чисто красный экран без кнопок
  • "Нажмите ОК" чтобы убрать ошибку — что ок?
  • Сразу подсвечивать поле красным когда юзер только начал писать
К подразделу «UX-флоу»
Похожие промты