Хорошее сообщение об ошибке отвечает на три вопроса: что произошло, что сохранилось и что делать дальше. Проектирование восстановления начинается до текста — с обратимости действия, сохранения данных и надёжного определения результата. основание Для темы «ошибки и восстановление в пользовательском интерфейсе» артефакт «сценарий ошибки и восстановления» связывает компонент «Тип ошибки» с этапом «Классифицировать сбои»; неподтверждённые рекомендации остаются редакционными гипотезами темы «ошибки и восстановление в пользовательском интерфейсе».
Задача и проверяемые основания
W3C требует текстово идентифицировать автоматически обнаруженную ошибку и указать проблемный элемент. основание
USWDS рекомендует контекстные подсказки, полезные сообщения и встроенную валидацию, помогающие исправить ввод. основание
USWDS рассматривает alert как способ сообщить об ошибке, предупреждении или успешном завершении действия. основание
W3C относит информацию об ошибке, ожидании и результате к статусным сообщениям, доступным вспомогательным технологиям. основание
В артефакте «сценарий ошибки и восстановления» вопрос «Известен ли фактический результат операции?» хранится отдельно от решения «Сохранить работу» и ограничения «часть ошибок требует операционного вмешательства».
Рабочая модель
Тип ошибки. В теме «ошибки и восстановление в пользовательском интерфейсе» этот элемент означает неверный ввод, конфликт данных, отказ доступа, сетевой сбой или неизвестный результат. В артефакте «сценарий ошибки и восстановления» связь с компонентом «Место» проверяют сценарием темы «ошибки и восстановление в пользовательском интерфейсе».
Место. В теме «ошибки и восстановление в пользовательском интерфейсе» этот элемент означает точка рядом с проблемным полем и общий обзор при нескольких ошибках. В артефакте «сценарий ошибки и восстановления» связь с компонентом «Сохранность» проверяют сценарием темы «ошибки и восстановление в пользовательском интерфейсе».
Сохранность. В теме «ошибки и восстановление в пользовательском интерфейсе» этот элемент означает понимание того, какие введённые данные и изменения остались. В артефакте «сценарий ошибки и восстановления» связь с компонентом «Исправление» проверяют сценарием темы «ошибки и восстановление в пользовательском интерфейсе».
Исправление. В теме «ошибки и восстановление в пользовательском интерфейсе» этот элемент означает конкретное действие, которое пользователь способен выполнить. В артефакте «сценарий ошибки и восстановления» связь с компонентом «Повтор» проверяют сценарием темы «ошибки и восстановление в пользовательском интерфейсе».
Повтор. В теме «ошибки и восстановление в пользовательском интерфейсе» этот элемент означает безопасная повторная отправка с защитой от дублей. В артефакте «сценарий ошибки и восстановления» связь с компонентом «Эскалация» проверяют сценарием темы «ошибки и восстановление в пользовательском интерфейсе».
Эскалация. В теме «ошибки и восстановление в пользовательском интерфейсе» этот элемент означает идентификатор обращения, контекст и путь к поддержке. В артефакте «сценарий ошибки и восстановления» связь с компонентом «Тип ошибки» проверяют сценарием темы «ошибки и восстановление в пользовательском интерфейсе».
Порядок проектирования
1. Классифицировать сбои. Команда применяет шаг к теме «ошибки и восстановление в пользовательском интерфейсе»: развести ошибку ввода, запрещённое действие, временный отказ и неизвестный результат. Результат уточняет компонент «Тип ошибки», а спорные варианты темы «ошибки и восстановление в пользовательском интерфейсе» остаются в артефакте «сценарий ошибки и восстановления».
2. Сохранить работу. Команда применяет шаг к теме «ошибки и восстановление в пользовательском интерфейсе»: не очищать корректные поля и черновик из-за локальной проблемы. Результат уточняет компонент «Место», а спорные варианты темы «ошибки и восстановление в пользовательском интерфейсе» остаются в артефакте «сценарий ошибки и восстановления».
3. Показать место и причину. Команда применяет шаг к теме «ошибки и восстановление в пользовательском интерфейсе»: связать сообщение с элементом и использовать понятный текст. Результат уточняет компонент «Сохранность», а спорные варианты темы «ошибки и восстановление в пользовательском интерфейсе» остаются в артефакте «сценарий ошибки и восстановления».
4. Предложить восстановление. Команда применяет шаг к теме «ошибки и восстановление в пользовательском интерфейсе»: дать исправление, повтор, отмену или альтернативный путь. Результат уточняет компонент «Исправление», а спорные варианты темы «ошибки и восстановление в пользовательском интерфейсе» остаются в артефакте «сценарий ошибки и восстановления».
5. Защитить повтор. Команда применяет шаг к теме «ошибки и восстановление в пользовательском интерфейсе»: использовать идемпотентность или проверку текущего состояния. Результат уточняет компонент «Повтор», а спорные варианты темы «ошибки и восстановление в пользовательском интерфейсе» остаются в артефакте «сценарий ошибки и восстановления».
6. Проверить доступность. Команда применяет шаг к теме «ошибки и восстановление в пользовательском интерфейсе»: перемещать или объявлять фокус только когда это помогает. Результат уточняет компонент «Эскалация», а спорные варианты темы «ошибки и восстановление в пользовательском интерфейсе» остаются в артефакте «сценарий ошибки и восстановления».
Практический пример
Редакционный пример: форма регистрации очищала все поля после ответа сервера о занятом адресе. Команда сохранила введённые данные, связала текст ошибки с полем email и предложила войти или восстановить доступ. При сетевом сбое черновик оставался на устройстве, а повтор не создавал несколько аккаунтов. Общий alert использовался только для результата отправки, тогда как локальные ошибки располагались рядом с соответствующими полями.
Пример показывает, как «сценарий ошибки и восстановления» помогает раньше обнаружить ошибку «очищать форму после одной ошибки» и проверить критерий «ошибка описана текстом» для темы «ошибки и восстановление в пользовательском интерфейсе».
Контрольные вопросы
- Известен ли фактический результат операции? Ответ фиксируют в артефакте «сценарий ошибки и восстановления» и связывают с компонентом «Тип ошибки»; мнение отмечают как допущение темы «ошибки и восстановление в пользовательском интерфейсе».
- Какие данные уже сохранены? Ответ фиксируют в артефакте «сценарий ошибки и восстановления» и связывают с компонентом «Место»; мнение отмечают как допущение темы «ошибки и восстановление в пользовательском интерфейсе».
- Может ли пользователь исправить причину? Ответ фиксируют в артефакте «сценарий ошибки и восстановления» и связывают с компонентом «Сохранность»; мнение отмечают как допущение темы «ошибки и восстановление в пользовательском интерфейсе».
- Безопасен ли повтор после обновления страницы? Ответ фиксируют в артефакте «сценарий ошибки и восстановления» и связывают с компонентом «Исправление»; мнение отмечают как допущение темы «ошибки и восстановление в пользовательском интерфейсе».
Типовые ошибки
- Очищать форму после одной ошибки. В артефакте «сценарий ошибки и восстановления» для темы «ошибки и восстановление в пользовательском интерфейсе» ошибка искажает компонент «Место»; рядом записывают последствие, обнаружение и исправление.
- Показывать технический код без действия. В артефакте «сценарий ошибки и восстановления» для темы «ошибки и восстановление в пользовательском интерфейсе» ошибка искажает компонент «Сохранность»; рядом записывают последствие, обнаружение и исправление.
- Помещать все ошибки только наверху. В артефакте «сценарий ошибки и восстановления» для темы «ошибки и восстановление в пользовательском интерфейсе» ошибка искажает компонент «Исправление»; рядом записывают последствие, обнаружение и исправление.
- Предлагать повтор при неизвестном результате. В артефакте «сценарий ошибки и восстановления» для темы «ошибки и восстановление в пользовательском интерфейсе» ошибка искажает компонент «Повтор»; рядом записывают последствие, обнаружение и исправление.
- Делать цвет единственным признаком. В артефакте «сценарий ошибки и восстановления» для темы «ошибки и восстановление в пользовательском интерфейсе» ошибка искажает компонент «Эскалация»; рядом записывают последствие, обнаружение и исправление.
Критерии качества
- Ошибка описана текстом. В артефакте «сценарий ошибки и восстановления» критерий темы «ошибки и восстановление в пользовательском интерфейсе» проверяют после шага «Классифицировать сбои»; рядом сохраняют результат и ответственного.
- Проблемный элемент идентифицирован. В артефакте «сценарий ошибки и восстановления» критерий темы «ошибки и восстановление в пользовательском интерфейсе» проверяют после шага «Сохранить работу»; рядом сохраняют результат и ответственного.
- Корректные данные сохранены. В артефакте «сценарий ошибки и восстановления» критерий темы «ошибки и восстановление в пользовательском интерфейсе» проверяют после шага «Показать место и причину»; рядом сохраняют результат и ответственного.
- Восстановление реально доступно. В артефакте «сценарий ошибки и восстановления» критерий темы «ошибки и восстановление в пользовательском интерфейсе» проверяют после шага «Предложить восстановление»; рядом сохраняют результат и ответственного.
- Повтор не создаёт дубликаты. В артефакте «сценарий ошибки и восстановления» критерий темы «ошибки и восстановление в пользовательском интерфейсе» проверяют после шага «Защитить повтор»; рядом сохраняют результат и ответственного.
- Поддержка получает диагностический контекст. В артефакте «сценарий ошибки и восстановления» критерий темы «ошибки и восстановление в пользовательском интерфейсе» проверяют после шага «Проверить доступность»; рядом сохраняют результат и ответственного.
Ограничения применимости
- Часть ошибок требует операционного вмешательства. Ограничение сужает вывод по теме «ошибки и восстановление в пользовательском интерфейсе» и требует повторно задать вопрос «Известен ли фактический результат операции?»; границу решения сохраняют в артефакте «сценарий ошибки и восстановления».
- Неизвестный результат нельзя выдавать за отказ. Ограничение сужает вывод по теме «ошибки и восстановление в пользовательском интерфейсе» и требует повторно задать вопрос «Какие данные уже сохранены?»; границу решения сохраняют в артефакте «сценарий ошибки и восстановления».
- Юридические тексты могут усложнять сообщение. Ограничение сужает вывод по теме «ошибки и восстановление в пользовательском интерфейсе» и требует повторно задать вопрос «Может ли пользователь исправить причину?»; границу решения сохраняют в артефакте «сценарий ошибки и восстановления».
- Сохранение чувствительных данных ограничено. Ограничение сужает вывод по теме «ошибки и восстановление в пользовательском интерфейсе» и требует повторно задать вопрос «Безопасен ли повтор после обновления страницы?»; границу решения сохраняют в артефакте «сценарий ошибки и восстановления».
- Серверная защита обязательна независимо от интерфейса. Ограничение сужает вывод по теме «ошибки и восстановление в пользовательском интерфейсе» и требует повторно задать вопрос «Известен ли фактический результат операции?»; границу решения сохраняют в артефакте «сценарий ошибки и восстановления».
Вывод
Для темы «ошибки и восстановление в пользовательском интерфейсе» команда связывает компонент «Тип ошибки» с этапом «Классифицировать сбои», проверяет критерий «ошибка описана текстом» и учитывает ограничение «часть ошибок требует операционного вмешательства». Артефакт «сценарий ошибки и восстановления» сохраняет основания выбора и позволяет пересмотреть решение после новых наблюдений.