Поделиться через


Сообщения об ошибках в Windows 7

Примечание.

Это руководство по проектированию было создано для Windows 7 и не было обновлено для более новых версий Windows. Большая часть рекомендаций по-прежнему применяется в принципе, но презентация и примеры не отражают наше текущее руководство по проектированию.

Сообщения об ошибках в Windows 7 оповещают пользователей о проблемах, которые уже возникли. В отличие от этого, предупреждающие сообщения оповещают пользователей об условиях, которые могут вызвать проблемы в будущем. Сообщения об ошибках можно представить с помощью модальных диалоговых окон, сообщений на месте, уведомлений или воздушных шаров.

Снимок экрана сообщения об ошибке: не удается переименовать

Обычное модальное сообщение об ошибке.

Эффективные сообщения об ошибках сообщают пользователям, что возникла проблема, объясните, почему это произошло, и предоставьте решение, чтобы пользователи могли устранить проблему. Пользователи должны выполнить действие или изменить его поведение в результате сообщения об ошибке.

Хорошо написанные, полезные сообщения об ошибках важны для качества взаимодействия с пользователем. Плохо написанные сообщения об ошибках приводят к низкому удовлетворенности продукта и являются главной причиной избегаемых затрат на техническую поддержку. Ненужные сообщения об ошибках прерывают поток пользователей.

Заметка: Рекомендации по диалоговым окнам, предупреждениям, подтверждениям, стандартным значкам, уведомлениям и макету представлены в отдельных статьях.

Это правильный пользовательский интерфейс?

Чтобы решить, рассмотрите следующие вопросы:

  • Представляет ли пользовательский интерфейс проблему, которая уже возникла? Если нет, сообщение не является ошибкой. Если пользователь оповещен о состоянии, которое может вызвать проблему в будущем, используйте предупреждение.
  • Можно ли предотвратить проблему, не вызывая путаницы? Если да, не используйте эту проблему. Например, используйте элементы управления, которые ограничены допустимыми значениями, а не использовать не ограниченные элементы управления, для которых могут потребоваться сообщения об ошибках. Кроме того, отключение элементов управления при щелчке приведет к ошибке, если очевидно, почему элемент управления отключен.
  • Может ли проблема быть исправлена автоматически? В этом случае обработайте проблему и отключите сообщение об ошибке.
  • Могут ли пользователи выполнить действие или изменить его поведение в результате сообщения? Если нет, условие не оправдывает прерывание пользователя, поэтому лучше отключить ошибку.
  • Возникает ли проблема, когда пользователи активно используют другие программы? Если да, попробуйте показать проблему с помощью значка области уведомлений.
  • Не связана ли проблема с текущим действием пользователя, не требуется немедленное действие пользователя и может ли пользователи свободно игнорировать его? В этом случае используйте уведомление о сбое действия .
  • Связана ли проблема с состоянием фоновой задачи в основном окне? Если да, попробуйте показать проблему с помощью строк состояния.
  • Являются ли ИТ-специалистами основного целевого пользователя? Если это так, рассмотрите возможность использования альтернативного механизма обратной связи, например записей файлов журнала или оповещений электронной почты. ИТ-специалисты настоятельно предпочитают файлы журналов для некритических сведений.

Принципы проектирования

Характеристики плохих сообщений об ошибках

Это не должно быть сюрпризом, что есть много раздражающих, неуправляемых и плохо написанных сообщений об ошибках. Так как сообщения об ошибках часто представлены с помощью модальных диалогов, они прерывают текущее действие пользователя и требуют подтверждения перед тем, как разрешить пользователю продолжать работу.

Часть проблемы заключается в том, что есть так много способов сделать это неправильно. Рассмотрим эти примеры из зала сообщений об ошибке позора:

Ненужные сообщения об ошибках

Неправильно:

Снимок экрана сообщения об ошибке: сбой приложения

Этот пример из Windows XP может быть самым худшим сообщением об ошибке когда-либо. Это означает, что программа не могла запуститься, так как сама Windows находится в процессе завершения работы. Нет ничего, что пользователь может сделать об этом или даже хочет сделать об этом (пользователь решил завершить работу Windows, в конце концов). И при отображении этого сообщения об ошибке Windows не позволяет завершить работу.

Проблема: Само сообщение об ошибке является проблемой. Помимо увольнения сообщения об ошибке, для пользователей ничего не нужно делать.

Первопричина: Отчеты обо всех случаях ошибок независимо от целей пользователей или точки зрения.

Рекомендуемая альтернатива: Не сообщайте об ошибках, о которые пользователи не заботятся.

Сообщения об ошибках "Успешно"

Неправильно:

Снимок экрана: сообщение об ошибке: сбой удаления

Это сообщение об ошибке вызвано тем, что пользователь выбирает не перезапуск Windows сразу после удаления программы. Удаление программы успешно выполнено с точки зрения пользователя.

Проблема: С точки зрения пользователя не возникает никаких ошибок. Помимо увольнения сообщения об ошибке, для пользователей ничего не нужно делать.

Первопричина: Задача успешно завершена с точки зрения пользователя, но сбой с точки зрения программы удаления.

Рекомендуемая альтернатива: Не сообщайте об ошибках для условий, которые пользователи считают приемлемыми.

Полностью бесполезные сообщения об ошибках

Неправильно:

Снимок экрана сообщения об ошибке: неизвестная ошибка

Пользователи узнали, что произошла ошибка, но не знаете, какая ошибка была или что делать с этим. И нет, это не нормально!

Проблема: Сообщение об ошибке не дает конкретной проблемы, и нет ничего, что пользователи не могут сделать об этом.

Первопричина: Скорее всего, программа имеет плохую обработку ошибок.

Рекомендуемая альтернатива: Спроектируйте хорошую обработку ошибок в программе.

Непонятные сообщения об ошибках

Неправильно:

Снимок экрана: сообщение об ошибке: резервное копирование не завершено

В этом примере оператор проблемы ясно, но дополнительное объяснение совершенно озадачительно.

Проблема: Оператор проблемы или решение непонятны.

Первопричина: Объясняя проблему с точки зрения кода, а не пользователя.

Рекомендуемая альтернатива: Напишите текст сообщения об ошибке, который пользователи могут легко понять. Предоставьте решения, которые пользователи могут выполнять фактически. Разработка сообщения об ошибке программы не содержит программистов, создав сообщения об ошибках на месте.

Сообщения об ошибках, которые перенаправяют

Неправильно:

Снимок экрана с чрезвычайно подробным сообщением

В этом примере сообщение об ошибке, по-видимому, пытается объяснить каждый шаг устранения неполадок.

Проблема: Слишком много информации.

Первопричина: Предоставление слишком большого количества сведений или попытка объяснить сложный процесс устранения неполадок в сообщении об ошибке.

Рекомендуемая альтернатива: Избегайте ненужных сведений. Кроме того, избегайте устранения неполадок. Если требуется средство устранения неполадок, сосредоточьтесь на наиболее вероятных решениях и объясните оставшуюся часть, связав его с соответствующим разделом справки.

Ненужные сообщения об ошибках

Неправильно:

Снимок экрана сообщения: не удается найти объект

Неспособность программы найти объект вряд ли звучит катастрофично. И предполагая, что это катастрофическое, почему ответ ОК?

Проблема: Тон программы ненужно суровый или драматический.

Первопричина: Проблема возникает из-за ошибки, которая появляется катастрофической с точки зрения программы.

Рекомендуемая альтернатива: Тщательно выберите язык на основе точки зрения пользователя.

Сообщения об ошибках, которые обвиняют пользователей

Неправильно:

Снимок экрана сообщения: недопустимый символ

Почему пользователи чувствуют себя преступником?

Проблема: Сообщение об ошибке фразируется таким образом, что обвиняет пользователя в совершении ошибки.

Первопричина: Нечувствительная фраза, которая фокусируется на поведении пользователя вместо проблемы.

Рекомендуемая альтернатива: Сосредоточьтесь на проблеме, а не на действиях пользователя, которые привели к проблеме, используя пассивный голос по мере необходимости.

Глупые сообщения об ошибках

Неправильно:

Снимок экрана: сообщение об ошибке в отчете об ошибке

В этом примере оператор проблемы довольно иронично, и никакие решения не предоставляются.

Проблема: Операторы сообщений об ошибке, которые являются глупой или не sequitors.

Первопричина: Создание сообщений об ошибках без учета их контекста.

Рекомендуемая альтернатива: Создавайте сообщения об ошибках и просматривайте их с помощью записи. При проверке ошибок учитывайте контекст и состояние ума пользователя.

Сообщения об ошибках программиста

Неправильно:

Снимок экрана сообщения: адрес нарушения доступа

В этом примере сообщение об ошибке указывает на наличие ошибки в программе. Это сообщение об ошибке имеет значение только для программиста.

Проблема: Сообщения, предназначенные для того, чтобы разработчики программы нашли ошибки, остаются в версии выпуска программы. Эти сообщения об ошибках не имеют смысла или значения для пользователей.

Первопричина: Программисты, использующие обычный пользовательский интерфейс для создания сообщений для себя.

Рекомендуемая альтернатива: Разработчики должны условно скомпилировать все такие сообщения, чтобы они автоматически были удалены из версии выпуска продукта. Не тратьте время, пытаясь сделать ошибки, как это понятно для пользователей, потому что их единственная аудитория — программисты.

Плохо представленные сообщения об ошибках

Неправильно:

Снимок экрана сообщения: непредвиденный сбой

В этом примере много распространенных ошибок презентации.

Проблема: Получение всех сведений неправильно в презентации сообщения об ошибке.

Первопричина: Не зная и применяя рекомендации по сообщению об ошибке. Не используйте средства записи и редакторы для создания и проверки сообщений об ошибках.

Характер обработки ошибок заключается в том, что многие из этих ошибок очень легко сделать. Это тревожно понимать, что большинство сообщений об ошибках может быть кандидатами на Зал позора.

Характеристики хороших сообщений об ошибках

В отличие от предыдущих плохих примеров, хорошие сообщения об ошибках имеют следующее:

  • Проблема. Указывает, что возникла проблема.
  • Причина. Объясняет, почему возникла проблема.
  • Решение. Предоставляет решение, чтобы пользователи могли устранить проблему.

Кроме того, хорошие сообщения об ошибках представлены таким образом:

  • Уместный. Сообщение представляет проблему, о которую заботятся пользователи.
  • Действия. Пользователи должны выполнить действие или изменить его поведение в результате сообщения.
  • Центрирование пользователей. В сообщении описывается проблема с точки зрения целевых действий или целей пользователя, а не с точки зрения того, что код недоволен.
  • Короткий. Сообщение как можно короче, но не короче.
  • Ясный. Сообщение использует обычный язык, чтобы целевые пользователи могли легко понять проблему и решение.
  • Специфический. В сообщении описывается проблема с использованием определенного языка, предоставления определенных имен, расположений и значений участвующих объектов.
  • Вежливый. Пользователи не должны быть обвинены или сделаны чувствовать себя глупо.
  • Редко. Редко отображается. Часто отображаемые сообщения об ошибках являются признаком плохого дизайна.

Создав интерфейс обработки ошибок, чтобы иметь эти характеристики, вы можете сохранить сообщения об ошибках вашей программы из зала сообщений об ошибке стыда.

Предотвращение ненужных сообщений об ошибках

Часто лучшее сообщение об ошибке не является сообщением об ошибке. Многие ошибки можно избежать с помощью более эффективной разработки, и часто существуют более лучшие варианты сообщений об ошибках. Обычно лучше предотвратить ошибку, чем сообщить об этом.

Наиболее очевидные сообщения об ошибках, которые следует избежать, — это сообщения об ошибках, которые недоступны для действий. Если пользователи, скорее всего, отклонят сообщение об ошибке, не изменяя его или не изменяя.

Некоторые сообщения об ошибках можно устранить, так как они не являются проблемами с точки зрения пользователя. Например, предположим, что пользователь пытался удалить файл, который уже находится в процессе удаления. Хотя это может быть непредвиденным случаем с точки зрения кода, пользователи не считают это ошибкой, так как их желаемый результат достигается.

Неправильно:

Снимок экрана сообщения: не удается удалить файл

Это сообщение об ошибке должно быть устранено, так как действие было успешно выполнено с точки зрения пользователя.

Например, предположим, что пользователь явно отменяет задачу. Для точки зрения пользователя следующее условие не является ошибкой.

Неправильно:

Снимок экрана сообщения: не удается завершить резервное копирование

Это сообщение об ошибке также следует устранить, так как действие успешно выполнено с точки зрения пользователя.

Иногда сообщения об ошибках можно устранить, сосредоточив внимание на целях пользователей вместо технологии. При этом пересмотреть то, что на самом деле является ошибкой. Проблема с целями пользователя или способностью вашей программы удовлетворить их? Если действие пользователя имеет смысл в реальном мире, оно также должно иметь смысл в программном обеспечении.

Например, предположим, что в рамках программы электронной коммерции пользователь пытается найти продукт с помощью поиска, но литеральный поисковый запрос не имеет совпадений, и нужный продукт выходит из запаса. Технически это ошибка, но вместо предоставления сообщения об ошибке программа может:

  • Продолжайте искать продукты, которые наиболее тесно соответствуют запросу.
  • Если поиск имеет очевидные ошибки, автоматически рекомендуется исправить запрос.
  • Автоматическая обработка распространенных проблем, таких как орфографические ошибки, альтернативные орфографии и несоответствие вариантов плюрализации и глаголов.
  • Укажите, когда продукт будет находиться на складе.

Если запрос пользователя является разумным, хорошо разработанная программа электронной коммерции должна возвращать разумные результаты, а не ошибки.

Еще одним отличным способом избежать сообщений об ошибках является предотвращение проблем в первую очередь. Ошибки можно предотвратить следующими способами:

  • Использование ограниченных элементов управления. Используйте элементы управления, ограниченные допустимыми значениями. Такие элементы управления, как списки, ползунки, флажки, переключатели и средства выбора даты и времени, ограничены допустимыми значениями, в то время как текстовые поля часто не являются и могут требовать сообщений об ошибках. Однако можно ограничить текстовые поля, чтобы принимать только определенные символы и принимать максимальное количество символов.
  • Использование ограниченных взаимодействий. Для операций перетаскивания пользователи могут удаляться только на допустимых целевых объектах.
  • Использование отключенных элементов управления и элементов меню. Отключите элементы управления и меню, когда пользователи могут легко выводить, почему элемент управления или пункт меню отключен.
  • Предоставление хороших значений по умолчанию. Пользователи менее склонны делать входные ошибки, если они могут принимать значения по умолчанию. Даже если пользователи решили изменить значение, значение по умолчанию позволяет пользователям знать ожидаемый входной формат.
  • Делая вещи просто работать. Пользователи менее склонны делать ошибки, если задачи не нужны или выполняются автоматически для них. Или если пользователи делают небольшие ошибки, но их намерение ясно, проблема устранена автоматически. Например, можно автоматически исправлять незначительные проблемы форматирования.

Предоставление необходимых сообщений об ошибках

Иногда вам действительно нужно предоставить сообщение об ошибке. Пользователи делают ошибки, сети и устройства перестают работать, объекты не могут быть найдены или изменены, задачи не могут быть завершены, а программы имеют ошибки. В идеале эти проблемы будут происходить реже, например, мы можем разработать наше программное обеспечение, чтобы предотвратить многие типы ошибок пользователей, но это не реалистично, чтобы предотвратить все эти проблемы. И когда происходит одна из этих проблем, полезное сообщение об ошибке позволяет пользователям быстро вернуться на ноги.

Распространенное убеждение заключается в том, что сообщения об ошибках являются худшим взаимодействием с пользователем и должны избегаться во всех затратах, но более точно сказать, что путаница пользователей является худшим опытом и следует избегать во всех затратах. Иногда это полезное сообщение об ошибке.

Рассмотрим отключенные элементы управления. Большая часть времени, очевидно, почему элемент управления отключен, поэтому отключение элемента управления является отличным способом избежать сообщения об ошибке. Тем не менее, что если причина отключения элемента управления не очевидна? Пользователь не может продолжить работу, и нет отзывов, чтобы определить проблему. Теперь пользователь застрял и должен либо вывести проблему, либо получить техническую поддержку. В таких случаях гораздо лучше оставить элемент управления включенным и дать полезное сообщение об ошибке.

Неправильно:

Снимок экрана: где сохранить резервную копию?

Почему кнопка "Далее" отключена здесь? Лучше оставить его включенным и избежать путаницы пользователей, предоставив полезное сообщение об ошибке.

Если вы не уверены, следует ли дать сообщение об ошибке, начните с создания сообщения об ошибке, которое можно дать. Если пользователи, скорее всего, выполняют действие или изменяют поведение в результате, предоставьте сообщение об ошибке. В отличие от этого, если пользователи, скорее всего, отклонят сообщение об ошибке, не изменяя его.

Проектирование для правильной обработки ошибок

При создании хорошего текста сообщения об ошибке может быть сложной задачей, иногда невозможно без хорошей поддержки обработки ошибок из программы. Рассмотрим следующее сообщение об ошибке:

Неправильно:

Снимок экрана сообщения: неизвестная ошибка

Скорее всего, проблема на самом деле неизвестна, потому что поддержка обработки ошибок программы отсутствует.

Хотя это очень плохо написанное сообщение об ошибке, скорее всего, отражает отсутствие хорошей обработки ошибок в базовом коде нет конкретных сведений о проблеме.

Чтобы создать конкретные, интерактивные сообщения об ошибках, связанные с пользователем, код обработки ошибок вашей программы должен предоставить определенные, высокоуровневые сведения об ошибках:

  • Каждая проблема должна иметь уникальный код ошибки.
  • Если проблема имеет несколько причин, программа должна определить конкретную причину всякий раз, когда это возможно.
  • Если проблема имеет параметры, необходимо сохранить параметры.
  • Проблемы низкого уровня должны обрабатываться на достаточно высоком уровне, чтобы сообщение об ошибке можно было представить с точки зрения пользователя.

Хорошие сообщения об ошибках не просто проблема пользовательского интерфейса, они являются проблемой разработки программного обеспечения. Хороший интерфейс сообщения об ошибке не является тем, что может быть взломано позже.

Устранение неполадок (и как избежать его)

Устранение неполадок при возникновении проблемы с несколькими различными причинами сообщается с одним сообщением об ошибке.

Неправильно:

схема одного сообщения с тремя причинами

правильно:

схема трех сообщений с указанием одной причины каждой из них

Устранение неполадок при возникновении нескольких проблем с одним сообщением об ошибке.

В следующем примере не удалось переместить элемент, так как он уже был перемещен или удален, или доступ был отклонен. Если программа может легко определить причину, зачем ставить нагрузку на пользователя, чтобы определить конкретную причину?

Неправильно:

Снимок экрана: сообщение о двух причинах

Ну, что это? Теперь пользователю необходимо устранить неполадки.

Программа может определить, было ли отказано в доступе, поэтому эта проблема должна быть сообщена с определенным сообщением об ошибке.

правильно:

Снимок экрана: сообщение об одной причине

С определенной причиной устранение неполадок не требуется.

Используйте сообщения с несколькими причинами, только если конкретная причина не может быть определена. В этом примере программе было бы трудно определить, был ли элемент перемещен или удален, поэтому одно сообщение об ошибке с несколькими причинами может использоваться здесь. Тем не менее, вряд ли пользователи будут заботиться, если, например, они не могли переместить удаленный файл. Для этих причин сообщение об ошибке даже не требуется.

Обработка неизвестных ошибок

В некоторых случаях вы действительно не узнаете проблему, причину или решение. Если это было бы неразумно, чтобы подавлять ошибку, лучше быть перед отсутствием информации, чем представить проблемы, причины или решения, которые могут не быть правильными.

Например, если у вашей программы есть необработанное исключение, подходит следующее сообщение об ошибке:

Снимок экрана сообщения: произошла неизвестная ошибка

Если вы не можете отключить неизвестная ошибка, лучше быть перед отсутствием информации.

С другой стороны, предоставьте конкретную, действимую информацию, если она, скорее всего, будет полезной большую часть времени.

Снимок экрана: сообщение Office Communicator

Это сообщение об ошибке подходит для неизвестной ошибки, если сетевое подключение обычно является проблемой.

Определение соответствующего типа сообщения

Некоторые проблемы можно представить как ошибку, предупреждение или информацию в зависимости от выделения и выражения. Например, предположим, что веб-страница не может загрузить элемент управления ActiveX без знака в зависимости от текущей конфигурации Windows Internet Explorer:

  • Ошибка. "Эта страница не может загрузить элемент управления ActiveX без знака". (Фраза как существующая проблема.)
  • Предупреждение. "Эта страница может не работать должным образом, так как Windows Internet Explorer не настроена для загрузки неподписанных элементов ActiveX" или "Разрешить этой странице установить неподписанный элемент ActiveX? Это делается из ненадежных источников, может навредить компьютеру". (Оба фразы в качестве условий, которые могут вызвать будущие проблемы.)
  • Сведения. "Вы настроили Windows Internet Explorer для блокировки неподписанных элементов ActiveX". (Фраза как заявление факта.)

Чтобы определить соответствующий тип сообщения, обратите внимание на наиболее важный аспект проблемы, с которой пользователи должны знать или действовать. Как правило, если проблема блокирует продолжение работы пользователя, его следует представить как ошибку; Если пользователь может продолжить работу, предостережение. Создайте основную инструкцию или другой соответствующий текст на основе этого фокуса, а затем выберите значок (стандартный или в противном случае), соответствующий тексту. Текст и значки основной инструкции всегда должны совпадать.

Презентация сообщения об ошибке

Большинство сообщений об ошибках в программах Windows представлены с помощью модальных диалоговых окон (как и в большинстве примеров в этой статье), но есть и другие варианты:

  • На месте
  • Воздушные шары
  • Уведомления
  • Значки области уведомлений
  • Индикаторы состояния
  • Файлы журналов (для ошибок, предназначенных для ИТ-специалистов)

Размещение сообщений об ошибках в модальных диалоговых окнах позволяет требовать немедленного внимания и подтверждения пользователя. Однако это также их основной недостаток, если это внимание не требуется.

Снимок экрана: остановка действий

Нужно ли прервать пользователей, чтобы они могли нажать кнопку "Закрыть"? Если нет, попробуйте использовать модальное диалоговое окно.

Модальные диалоги являются отличным выбором, когда пользователь должен признать проблему непосредственно перед продолжением, но часто плохой выбор в противном случае. Как правило, вы должны предпочесть использовать самый легкий вес презентации, которая хорошо делает работу.

Избегайте чрезмерного общения

Как правило, пользователи не читают, они сканируются. Чем больше текста есть, тем труднее сканировать текст, и, скорее всего, пользователи не будут читать текст вообще. В результате важно уменьшить текст до основных компонентов, а также при необходимости использовать прогрессивные ссылки на раскрытие и справку, чтобы предоставить дополнительную информацию.

Есть много экстремальных примеров, но давайте рассмотрим еще один типичный. В следующем примере большинство атрибутов хорошего сообщения об ошибке, но его текст не является кратким и требует мотивации для чтения.

Неправильно:

Снимок экрана подробного сообщения

Этот пример является хорошим сообщением об ошибке, но он переинфекционирует.

Что такое весь этот текст действительно говорит? Что-то подобное:

правильно:

Снимок экрана сообщения: cd recorder не обнаружен

Это сообщение об ошибке имеет в основном те же сведения, но гораздо более краткие.

Используя справку для предоставления сведений, это сообщение об ошибке имеет инвертированные пирамидальные стили представления.

Дополнительные рекомендации и примеры чрезмерного взаимодействия см. в разделе "Текст пользовательского интерфейса".

Если вы делаете только восемь вещей

  1. Разработка программы для обработки ошибок.
  2. Не предоставляйте ненужные сообщения об ошибках.
  3. Избегайте путаницы пользователей, предоставляя необходимые сообщения об ошибках.
  4. Убедитесь, что сообщение об ошибке дает проблему, причину и решение.
  5. Убедитесь, что сообщение об ошибке относится к релевантным, интерактивным, кратким, ясным, конкретным, вежливым и редким.
  6. Разработка сообщений об ошибках с точки зрения пользователя, а не точки зрения программы.
  7. Избегайте участия пользователя в устранении неполадок используйте другое сообщение об ошибке для каждой обнаруживаемой причины.
  8. Используйте самый легкий метод представления веса, который хорошо выполняет задание.

Шаблоны использования

Сообщения об ошибках имеют несколько шаблонов использования:

Этикетка Ценность
Системные проблемы
Операционная система, аппаратное устройство, сеть или программа завершилась сбоем или не находится в состоянии, необходимом для выполнения задачи.
Многие системные проблемы можно решить пользователем:
  • Проблемы с устройствами можно решить, включив устройство, повторно подключив устройство и вставив носитель.
  • Проблемы с сетью можно решить, проверив подключение к физической сети и выполнив диагностику сети и восстановление сети.
  • Проблемы программы можно решить, изменив параметры программы или перезагрузив программу.
Снимок экрана сообщения: не удается найти камеру
В этом примере программа не может найти камеру для выполнения задачи пользователя.
Снимок экрана: отключение обнаружения сети сообщений
В этом примере необходимо включить функцию, необходимую для выполнения задачи.
Проблемы с файлами
Файл или папка, необходимые для задачи, инициированной пользователем, не найдена, уже используется или не имеет ожидаемого формата.
Снимок экрана: не удается удалить файл
В этом примере невозможно удалить файл или папку, так как он не найден.
Снимок экрана: не удается воспроизвести этот файл
В этом примере программа не поддерживает заданный формат файла.
Проблемы безопасности
У пользователя нет разрешения на доступ к ресурсу или достаточно привилегий для выполнения задачи, инициированной пользователем.
Снимок экрана: у вас нет разрешений
В этом примере у пользователя нет разрешения на доступ к ресурсу.
Снимок экрана: у вас нет прав
В этом примере у пользователя нет прав на выполнение задачи.
Проблемы с задачами
Существует определенная проблема, связанная с задачей, инициированной пользователем (кроме системы, файла, не найденного, формата файла или проблемы безопасности).
Снимок экрана сообщения: данные не могут быть вставлены
В этом примере данные буфера обмена не могут быть вставлены в Paint.
Снимок экрана: невозможно установить обновление
В этом примере пользователь не может установить обновление программного обеспечения.
Проблемы ввода пользователем
Пользователь ввел неправильное или несогласованное значение с другими входными данными пользователя.
Снимок экрана: неправильное значение времени
В этом примере пользователь ввел неверное значение времени.
Снимок экрана: неправильный формат ввода
В этом примере входные данные пользователя не заданы в правильном формате.

Руководящие принципы

Презентация

  • Используйте диалоги задач при необходимости для обеспечения согласованного внешнего вида и макета. Для диалоговых окон задач требуется Windows Vista или более поздней версии, поэтому они не подходят для более ранних версий Windows. Если необходимо использовать поле сообщения, разделите основную инструкцию из дополнительной инструкции с двумя разрывами строк.

Ошибки ввода пользователем

  • Каждый раз, когда это возможно, предотвратить или уменьшить количество ошибок ввода пользователей, выполнив следующие действия.
    • Использование элементов управления, ограниченных допустимыми значениями.
    • Отключение элементов управления и элементов меню при щелчке приведет к ошибке, если очевидно, почему элемент управления или пункт меню отключен.
    • Предоставление хороших значений по умолчанию.

Неправильно:

Снимок экрана текстового поля с меткой громкости говорящего

В этом примере для ограниченных входных данных используется неограниченное текстовое поле. Вместо этого используйте ползунок.

  • Используйте безрежимную обработку ошибок (ошибки на месте или воздушные шары) для проблем с вводом контекстного пользователя.
  • Используйте воздушные шары для некритических проблем ввода одноточечных пользователей, обнаруженных в текстовом поле или сразу после того, как текстовое поле теряет фокус.Воздушные шары не требуют свободного места на экране или динамического макета, необходимого для отображения сообщений на месте. Отображать только один воздушный шар за раз. Так как проблема не является критической, значок ошибки не требуется. Воздушные шары удаляются при щелчке, когда проблема устранена или после истечения времени ожидания.

Снимок экрана сообщения: неправильный символ

В этом примере воздушный шар указывает на проблему ввода в элементе управления.

  • Используйте ошибки на месте для отложенного обнаружения ошибок, как правило, ошибки, обнаруженные путем нажатия кнопки фиксации. (Не используйте ошибки на месте для параметров, которые немедленно зафиксированы.) За раз может возникать несколько ошибок на месте. Используйте обычный текст и значок ошибки пикселя 16x16, размещая их непосредственно рядом с проблемой по возможности. Ошибки на месте не удаляются, если пользователь не фиксирует и не обнаруживает других ошибок.

Снимок экрана сообщения: неверный адрес электронной почты

В этом примере ошибка на месте используется для ошибки, найденной путем нажатия кнопки фиксации.

  • Используйте модальную обработку ошибок (диалоговые окна задач или поля сообщений) для всех других проблем, включая ошибки, связанные с несколькими элементами управления или не контекстные или неинтервные ошибки, обнаруженные путем нажатия кнопки фиксации.
  • Когда сообщается о проблеме ввода пользователем, задайте фокус ввода для первого элемента управления неверными данными. При необходимости прокрутите элемент управления в представление. Если элемент управления является текстовым полем, выделите все содержимое. Оно всегда должно быть очевидным, на что ссылается сообщение об ошибке.
  • Не очищайте неправильные входные данные. Вместо этого оставьте его таким образом, чтобы пользователь видел и исправлял проблему, не запуская ее.
    • Исключение: Снимите неправильные текстовые поля паролей и ПИН-код, так как пользователи не могут эффективно исправлять маскированные входные данные.

Устранение неполадок

  • Избегайте устранения неполадок. Не полагаться на одно сообщение об ошибке, чтобы сообщить о проблеме с несколькими разными обнаруживаемыми причинами.
  • Используйте другое сообщение об ошибке (как правило, другую дополнительную инструкцию) для каждой обнаруживаемой причины. Например, если файл не может быть открыт по нескольким причинам, укажите отдельную дополнительную инструкцию по каждой причине.
  • Используйте сообщение с несколькими причинами, только если конкретная причина не может быть определена. В этом случае укажите решения в порядке вероятности устранения проблемы. Это помогает пользователям более эффективно решать проблему.

Иконки

  • Диалоговые окна сообщения об модальной ошибке не имеют значков строк заголовка. Значки панели заголовков используются в качестве визуального различия между основными окнами и дополнительными окнами.

  • Используйте значок ошибки. Исключения:

    • Если ошибка является проблемой ввода пользователем, отображаемой с помощью модального диалогового окна или шара, не используйте значок. Это противоречит обнадеживающе тону Windows. Однако сообщения об ошибках на месте должны использовать небольшой значок ошибки (16x16 пикселей), чтобы четко определить их как сообщения об ошибках.

      Снимок экрана: неправильный почтовый формат сообщения

      Снимок экрана: слишком длинное имя компьютера сообщения

      В этих примерах проблемы ввода пользователей не требуют значков ошибок.

      Снимок экрана: неправильный формат номера телефона сообщения

      В этом примере сообщение об ошибке на месте требует небольшого значка ошибки, чтобы четко определить его как сообщение об ошибке.

  • Если проблема связана с функцией, которая имеет значок (а не проблема ввода пользователя), можно использовать значок функции с наложением ошибки. При этом также используйте имя функции в качестве темы ошибки.

    Снимок экрана: проигрыватель мультимедиа не может воспроизводить файл

    В этом примере значок компонента содержит наложение ошибок, и эта функция является предметом ошибки.

  • Не используйте значки предупреждений для ошибок. Это часто делается для того, чтобы презентация чувствовала себя менее серьезной. Ошибки не являются предупреждениями.

    Неправильно:

    Снимок экрана: быстрое переключение сообщений не включено

    В этом примере значок предупреждения неправильно используется для снижения серьезности ошибки.

Дополнительные рекомендации и примеры см. в стандартных значков.

Прогрессивное раскрытие информации

  • Чтобы скрыть дополнительные или подробные сведения в сообщении об ошибке, используйте кнопку прогрессивного раскрытия сведений. Это упрощает сообщение об ошибке для типичного использования. Не скрывайте необходимые сведения, так как пользователи не могут найти его.

Снимок экрана сообщения: activesync не может войти в систему

В этом примере кнопка прогрессивного раскрытия помогает пользователям детализировать дополнительные сведения, если они хотят, или упростить пользовательский интерфейс, если они этого не делают.

  • Не используйте сведения о шоу и скрытии, если на самом деле нет дополнительных сведений. Не просто переформатируйте существующую информацию в более подробном формате.
  • Не используйте сведения о шоу и скрытии для отображения сведений справки. Вместо этого используйте ссылки справки.

Рекомендации по маркировке см. в разделе "Прогрессивные элементы управления раскрытием информации".

Не показывать это сообщение снова

  • Если для сообщения об ошибке требуется этот параметр, измените ошибку и ее частоту. Если у него есть все характеристики хорошей ошибки (релевантной, полезной и редкой), это не должно иметь смысла, чтобы пользователи не подавляли его.

Дополнительные рекомендации см. в диалоговых окнах.

Значения по умолчанию

  • Выберите самый безопасный, наименее разрушительный или наиболее безопасный ответ, чтобы быть по умолчанию. Если безопасность не является фактором, выберите наиболее вероятные или удобные команды.

Помощь

  • Создавайте сообщения об ошибках, чтобы избежать необходимости в справке. Обычно пользователям не нужно читать внешний текст для понимания и решения проблемы, если решение не требует нескольких шагов.
  • Убедитесь, что содержимое справки актуально и полезно. Это не должно быть подробное повторение сообщения об ошибке, а должно содержать полезную информацию, которая выходит за рамки сообщения об ошибке, например способы избежать проблемы в будущем. Не предоставляйте ссылку справки только потому, что вы можете.
  • Используйте конкретные, краткие ссылки справки для доступа к содержимому справки. Не используйте кнопки команд или прогрессивное раскрытие информации для этой цели.
  • Для сообщений об ошибках, которые нельзя сделать конкретным и практическим, рассмотрите возможность предоставления ссылок на содержимое справки в Интернете. Таким образом, вы можете предоставить пользователям дополнительные сведения, которые можно обновить после выпуска программы.

Дополнительные рекомендации см. в справке.

Коды ошибок

  • Для сообщений об ошибках, которые нельзя сделать конкретными и практическими, или они могут воспользоваться справкой, рекомендуется также предоставить коды ошибок. Пользователи часто используют эти коды ошибок для поиска в Интернете дополнительных сведений.
  • Всегда укажите текстовое описание проблемы и решения. Не зависят только от кода ошибки для этой цели.

Неправильно:

Снимок экрана сообщения: не удается открыть файл

В этом примере код ошибки используется в качестве замены текста решения.

  • Назначьте уникальный код ошибки для каждой причины. Это позволяет избежать устранения неполадок.
  • Выберите коды ошибок, которые легко искать в Интернете. Если вы используете 32-разрядные коды, используйте шестнадцатеричное представление с ведущим символом "0x" и верхним регистром.

правильно:

1 234

0xC0001234

Неправильно:

-1

-67113524

  • Чтобы отобразить коды ошибок, используйте сведения о show/Hide. Фраза в виде кода ошибки: <error code>.

Снимок экрана: программа не инициализировалась

В этом примере код ошибки используется для дополнения сообщения об ошибке, которое может воспользоваться дополнительными сведениями.

Звук

  • Не сопровождайте сообщения об ошибках звуковым эффектом или сигналом. Это резкий и ненужный шаг.
    • Исключение: Воспроизведение звукового эффекта критической остановки, если проблема важна для работы компьютера, и пользователь должен принять немедленные меры, чтобы предотвратить серьезные последствия.

Текст

Общие сведения

  • Удалите избыточный текст. Найдите его в заголовках, основных инструкциях, дополнительных инструкциях, ссылках команд и кнопках фиксации. Как правило, оставьте полный текст в инструкциях и интерактивных элементах управления и удалите все избыточность из других мест.
  • Используйте пояснения по центру пользователей. Опишите проблему с точки зрения действий пользователей или целей, а не с точки зрения того, что программное обеспечение недовольно. Используйте язык, который целевые пользователи понимают и используют. Избегайте технического жаргона.

Неправильно:

Снимок экрана: входной синхронный вызов

правильно:

Снимок экрана сообщения: занят приемом звонка

В этих примерах правильная версия говорит язык пользователя, в то время как неправильная версия слишком техническая.

  • Не используйте следующие слова:
    • Ошибка, сбой (вместо этого используйте проблему)
    • Используйте "не удается" вместо "не удалось".
    • Недопустимые, недопустимые, плохие (вместо этого используйте неправильные)
    • Прерывание, убийство, завершение (вместо этого используйте 'остановить')
    • Катастрофические, смертельные (вместо этого используйте серьезные)

Эти термины излишни и противоречат обнадеживающему тону Windows. При правильном использовании значок ошибки достаточно сообщает о проблеме.

Неправильно:

Снимок экрана сообщения: катастрофический сбой!

правильно:

Снимок экрана сообщения: резервное копирование должно закрыться одновременно

В неправильном примере термины "катастрофический" и "сбой" являются ненужными.

  • Не используйте фразу, которая обвиняет пользователя или подразумевает ошибку пользователя. Избегайте использования местоимений "вы" и "ваш" в формулировке. Хотя активный голос обычно предпочтителен, используйте пассивный голос, когда пользователь является субъектом и может чувствовать себя виноватым в ошибке, если активный голос использовался.

Неправильно:

Снимок экрана: сообщение о вводе неправильного входа в систему

правильно:

Снимок экрана сообщения: неверный пароль

Неправильный пример обвиняет пользователя с помощью активного голоса.

  • Быть конкретными. Избегайте расплывчатых слов, таких как синтаксическая ошибка и недопустимая операция. Укажите определенные имена, расположения и значения участвующих объектов.

Неправильно:

Файл не найден.

Диск заполнен.

Значение вне диапазона.

Недопустимый символ.

Устройство недоступно.

Эти проблемы гораздо проще решить с определенными именами, расположениями и значениями.

  • Не предоставляйте, возможно, маловероятные проблемы, причины или решения в попытке быть конкретными. Не предоставляйте проблему, причину или решение, если она, скорее всего, не будет правильной. Например, лучше сказать, что произошла неизвестная ошибка, чем то, что, скорее всего, будет неточным.
  • Избегайте слова "пожалуйста", за исключением ситуаций, в которых пользователю предлагается сделать что-то неудобно (например, ожидание) или программное обеспечение виновато в ситуации.

правильно:

Подождите, пока Windows копирует файлы на компьютер.

  • Используйте слово "жаль" только в сообщениях об ошибках, которые приводят к серьезным проблемам пользователя (например, потере данных или невозможности использования компьютера). Не извиняйтесь, если возникла проблема во время нормальной работы программы (например, если пользователю нужно ждать обнаружения сетевого подключения).

правильно:

К сожалению, но Fabrikam Backup обнаружила неустранимую проблему и была закрыта для защиты файлов на компьютере.

  • Ознакомьтесь с продуктами, использующими их короткие имена. Не используйте полные названия продуктов или символы товарных знаков. Не включайте имя компании, если пользователи не свяжите имя компании с продуктом. Не включайте номера версий программы.

Неправильно:

Снимок экрана: сообщение Microsoft Office Outlook

правильно:

Снимок экрана сообщения: не удается открыть этот элемент

В неправильном примере используются полные названия продуктов и символы товарных знаков.

  • Используйте двойные кавычки вокруг имен объектов. Это упрощает анализ текста и избегает потенциально неловких инструкций.
    • Исключение: Полные пути к файлам, URL-адреса и доменные имена не должны находиться в двойных кавычках.

правильно:

Снимок экрана сообщения:

В этом примере сообщение об ошибке будет запутано, если имя объекта не было в кавычках.

  • Избегайте запуска предложений с именами объектов. Это часто трудно проанализировать.
  • Не используйте восклицательные знаки или слова со всеми прописными буквами. Восклицательные знаки и прописные буквы делают это ощущение, что вы кричите на пользователя.

Дополнительные рекомендации и примеры см. в разделе "Стиль" и "Тон".

Названия

  • Используйте заголовок, чтобы определить команду или функцию, из которой возникла ошибка. Исключения:
    • Если ошибка отображается множеством разных команд, рекомендуется использовать имя программы.
    • Если это название будет избыточным или запутанным с основной инструкцией, используйте вместо этого имя программы.
  • Не используйте заголовок, чтобы объяснить или суммировать проблему , предназначенную для основной инструкции.

Неправильно:

Снимок экрана: сообщение

В этом примере заголовок неправильно используется для объяснения проблемы.

  • Используйте заглавную букву без окончания пунктуации.

Основные инструкции

  • Используйте основную инструкцию, чтобы описать проблему в четком, простом, конкретном языке.
  • Будьте краткими используйте только одно, полное предложение. Анализ основной инструкции вплоть до важных сведений. Вы можете оставить тему неявной, если это ваша программа или пользователь. Включите причину проблемы, если вы можете сделать это кратко. Если вам нужно объяснить что-нибудь больше, используйте дополнительную инструкцию.

Неправильно:

Снимок экрана сообщения: невозможно установить обновление

В этом примере все сообщение об ошибке помещается в основную инструкцию, что затрудняет чтение.

  • Будьте конкретными, если есть объекты, присвойте им имена.
  • Избегайте размещения полных путей к файлу и URL-адресов в главной инструкции. Вместо этого используйте короткое имя (например, имя файла) и поместите полное имя (например, путь к файлу) в дополнительных инструкциях. Однако можно поместить один полный путь к файлу или URL-адрес в главной инструкции, если сообщение об ошибке не требует дополнительной инструкции.

Снимок экрана сообщения: не удается удалить файл fabrikam

В этом примере только имя файла находится в главной инструкции. Полный путь находится в дополнительной инструкции.

  • Не предоставляйте полный путь к файлу и URL-адрес, если это очевидно из контекста.

Снимок экрана сообщения: не удается переименовать новую папку

В этом примере пользователь переименовал файл из проводника Windows. В этом случае полный путь к файлу не нужен, так как он очевиден из контекста.

  • По возможности используйте текущее время.
  • Используйте прописную букву в стиле предложений.
  • Не включайте окончательные периоды, если инструкция является инструкцией. Если инструкция является вопросом, добавьте окончательный вопросительный знак.

Основные шаблоны инструкций

Несмотря на отсутствие строгих правил для выражения, попробуйте использовать следующие основные шаблоны инструкций всякий раз, когда это возможно:

  • [необязательное имя субъекта] не может [выполнить действие]
  • [необязательное имя субъекта] не может [выполнить действие], так как [причина]
  • [необязательное имя субъекта] не может [выполнить действие] в "[имя объекта]"
  • [необязательное имя субъекта] не может [выполнить действие] в "[имя объекта]", так как [причина]
  • Недостаточно [ресурса] для [выполнения действия]
  • [Имя субъекта] не имеет [имя объекта], необходимое для [цели]
  • [Устройство или параметр] отключен так, чтобы [нежелательные результаты]
  • [Устройство или параметр] не [доступно | найдено | включен | включен]
  • "[имя объекта]" в настоящее время недоступно
  • Неправильное имя пользователя или пароль
  • У вас нет разрешения на доступ "[имя объекта]"
  • У вас нет прав на [выполнение действия]
  • [имя программы] возникла серьезная проблема и должна немедленно закрыться

Конечно, внесите изменения по мере необходимости в основную инструкцию, чтобы быть грамматически правильным и соответствовать основным инструкциям.

Дополнительные инструкции

  • Используйте дополнительную инструкцию, чтобы:
    • Укажите дополнительные сведения о проблеме.
    • Объясните причину проблемы.
    • Перечислите действия, которые пользователь может предпринять для устранения проблемы.
    • Предоставьте меры, чтобы предотвратить повторение проблемы.
  • По возможности предложите практические, полезные решения, чтобы пользователи могли устранить проблему. Однако убедитесь, что предлагаемое решение, скорее всего, решит проблему. Не тратьте время пользователей, предлагая возможные, но невероятные решения.

Неправильно:

Снимок экрана сообщения: вне памяти

В этом примере, хотя проблема и ее рекомендуемое решение возможны, они очень маловероятно.

  • Если проблема является неверным значением, введенным пользователем, используйте дополнительную инструкцию, чтобы объяснить правильные значения. Пользователям не нужно определять эти сведения из другого источника.
  • Не предоставляйте решение, если оно может быть тривиально выведено из инструкции проблемы.

Снимок экрана сообщения: неправильное значение времени

В этом примере дополнительная инструкция не требуется; Решение может быть тривиально выведено из инструкции проблемы.

  • Если решение имеет несколько шагов, укажите шаги в том порядке, в котором они должны быть выполнены. Однако избегайте многофакторных решений, так как пользователи испытывают трудности с запоминаниями более двух или трех простых шагов. Если требуются дополнительные действия, обратитесь к соответствующему разделу справки.
  • Следуйте дополнительным инструкциям. Укажите только то, что нужно знать пользователям. Опустить ненужные сведения. Стремитесь к максимальному трем предложениям умеренной длины.
  • Чтобы избежать ошибок, когда пользователи выполняют инструкции, поместите результаты перед действием.

правильно:

Чтобы перезапустить Windows, нажмите кнопку "ОК".

Неправильно:

Нажмите кнопку "ОК", чтобы перезапустить Windows.

В неправильном примере пользователи, скорее всего, нажимают кнопку "ОК" по случайному случаю.

  • Не рекомендуется обращаться к администратору, если это не является одним из наиболее вероятных решений проблемы. Зарезервировать такие решения для проблем, которые действительно можно решить только администратором.

Неправильно:

Снимок экрана сообщения: сервер недоступен

В этом примере, скорее всего, проблема связана с сетевым подключением пользователя, поэтому не стоит обращаться к администратору.

  • Не рекомендуется обращаться в службу технической поддержки. Возможность обратиться в службу технической поддержки для решения проблемы всегда доступна и не должна быть повышена с помощью сообщений об ошибках. Вместо этого сосредоточьтесь на написании полезных сообщений об ошибках, чтобы пользователи могли решать проблемы без обращения в службу технической поддержки.

Неправильно:

Снимок экрана: сообщение

В этом примере сообщение об ошибке неправильно рекомендует обратиться в службу технической поддержки.

  • Используйте полные предложения, прописную букву в стиле предложения и конец препинания.

кнопки фиксации

  • Если сообщение об ошибке предоставляет кнопки команд или ссылки на команды, которые решают проблему, следуйте соответствующим рекомендациям в диалоговых окнах.
  • Если программа должна завершиться в результате ошибки, укажите кнопку выхода из программы. Чтобы избежать путаницы, не используйте Close для этой цели.
  • В противном случае укажите кнопку "Закрыть". Не используйте "ОК" для сообщений об ошибках, так как это означает, что проблемы являются ОК.
    • Исключение: Используйте ОК, если механизм создания отчетов об ошибках имеет фиксированные метки (как и в API MessageBox.)

Документация

При обращении к ошибкам:

  • Ознакомьтесь с ошибками по их главной инструкции. Если основная инструкция является длинной или подробной, обобщайте ее.
  • При необходимости можно ссылаться на диалоговое окно сообщения об ошибке в качестве сообщения. См. сообщение об ошибке только в программировании и другой технической документации.
  • По возможности отформатируйте текст с помощью полужирного шрифта. В противном случае поместите текст в кавычки, только если это необходимо, чтобы предотвратить путаницу.

Пример: Если в сообщении диска нет компакт-диска , вставьте новый компакт-диск в диск и повторите попытку.