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

Примечание

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

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

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

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

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

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

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

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

Чтобы определиться, ответьте на вопросы:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Проблема: Формулировка проблемы или решение непонятны.

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

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

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

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

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

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

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

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

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

Неоправданно суровые сообщения об ошибках

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В этом примере имеется много распространенных ошибок представления.

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

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

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

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

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

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

Кроме того, хорошие сообщения об ошибках отображаются следующим образом:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Устранение неполадок (и способы их предотвращения)

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

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

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

Правильно:

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

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

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

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

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

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

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

Правильно:

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

При определенных причинах устранение неполадок не требуется.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

О чем на самом деле говорится в этом тексте? Примерно следующим образом:

Правильно:

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

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

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

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

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

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

Варианты использования

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

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

Рекомендации

Уровень представления

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Значки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поэтапное представление информации

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

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

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

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

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

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

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

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

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

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

Справка

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

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

Коды ошибок

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

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

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

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

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

Правильно:

1 234

0xC0001234

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

-1

-67113524

  • Используйте команду Показать или скрыть сведения для отображения кодов ошибок. Фраза как код ошибки: <error code>.

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

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

Звук

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

Текст

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

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

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

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

Правильно:

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

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

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

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

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

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

Правильно:

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

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

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

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

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

Правильно:

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

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

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

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

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

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

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

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

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

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

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

Правильно:

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

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

Правильно:

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

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

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

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

Правильно:

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

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

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

Правильно:

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

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

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

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

Названия

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

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

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

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

  • Используйте прописные буквы в стиле заголовка без прекращения знаков препинания.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Правильно:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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