Альтернатива диалогам предупреждения / подтверждения / ошибки? - PullRequest
5 голосов
/ 30 октября 2008

Мы все знаем, что оповещения плохие. Если вы не знали, прочитайте это

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

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

Я приведу один в качестве примера и для использования всеми:

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

Решение: вместо того, чтобы показывать окно предупреждения, когда пользователь нажимает ok / next / submit, показывает четко стилизованный (например, красный на белом bg) «кадр» вокруг / рядом с пользовательским вводом, который неверный ввод с информативным текстом о том, что не так. Для облегчения работы пользователя рассматриваемый ввод должен получить фокус и, при необходимости, вернуться к виду.

Ответы [ 8 ]

6 голосов
/ 31 октября 2008

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

  1. Удалить элемент, который может привести к ошибке. Вам действительно нужна дата рождения пользователя? Можете ли вы также справиться с чем-то еще, что не требует проверки, например с кнопками выбора для «До 18 лет» и «18 или старше»?

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

  3. Принять ввод и, возможно, исправить его автоматически и передать результат пользователю. Сделайте что-то из ввода. Если пользователь вводит 4--14 # 008 для даты, автоматически исправьте ее до 14 апреля 2008 года. Если формат не соответствует номеру версии, проверьте, является ли он номером выпуска, и найдите соответствующий номер версии. Если он не соответствует вашему представлению о действительном адресе, просто предположите, что это (возможно, для другой страны). Действительно ли имеет значение, если дата рождения пользователя искажена?

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

  5. Предоставить текст предупреждения и ошибки в основном окне или на самой веб-странице; текст должен быть видимым, не дезориентирующим, немодальным и исчезать автоматически после исправления ошибки. Когда вводится нераспознанная дата, подчеркните ее красным и поместите рядом с ней текст «нераспознанная дата», возможно, включая ссылку «Справка» для получения дополнительной информации.

  6. Модальное окно сообщения.

3 голосов
/ 30 октября 2008

Многие окна предупреждений и все те, которые меня раздражают, в основном скрывают недостатки базовой программы.

Обычно сводится к i.s.o. предоставление надлежащей поддержки отмены, «Вы уверены?» окно предупреждения добавлено.

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

1 голос
/ 20 ноября 2008

Что по этому поводу: Коробки Монолога и Прозрачные Сообщения Аза Раскин.

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

Это довольно интересно.

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

alt text

1 голос
/ 30 октября 2008

Я думаю, что самое важное - это иметь полезные сообщения на простом (понятном человеку) языке. «Хочешь, чтобы технология - технология?» Не помогает.

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

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

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

0 голосов
/ 05 декабря 2008

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

0 голосов
/ 30 октября 2008

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

Уведомление о неверных данных, с другой стороны, является критически важной потребностью в приложении. Прежде всего, на мой взгляд, вы должны попытаться предотвратить ввод неверных данных, если это возможно. Существует множество сторонних инструментов управления для большинства платформ (ASP.NET, .NET WinForms, WPF, Java Swing, JSP и т. Д.), Которые помогут в этом. (Хотя он не пользуется популярностью в этих областях, я на самом деле неравнодушен к Infragistics NetAdvantage.)

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

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

В Интернете я большой поклонник средств проверки. Они предоставляют много уведомлений, без слишком навязчивого пользовательского интерфейса. Комбинируя простое свойство Text из *, подробное свойство ErrorMessage и удобное размещение и визуально очевидное ValidationSummary, я получаю всю проверку практически без кошмаров пользователя. Эти элементы управления для тех, кто не находится в .NET, выполняют различные проверки введенных данных и отображают свои свойства Text, где бы элемент управления не находился на странице (обычно рядом с проверяемым элементом управления). Свойство ErrorMessage имеет значение ValidationSummary, обычно расположенное в верхней части страницы.

В среде WinForms я использовал комбинацию встроенного элемента управления ErrorProvider и всплывающих окон в стиле Outlook в Infragistics. В моем последнем приложении WinForms я использую два разных типа всплывающих окон: один из них полупрозрачный и отображается в правом нижнем углу. Он имеет зеленый значок галочки и существует для уведомления пользователя об успешных сообщениях. (Мои пользователи не доверяют компьютерам; если они не видят какого-либо подтверждения, они думают, что машина съела их данные. Длинная история.) Эти поля исчезают через семь секунд, или пользователь может закрыть их вручную.

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

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

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

0 голосов
/ 30 октября 2008

Сообщение в строке состояния и изменения цвета / текста / элемента, указывающие на проблемы, аналогичные примеру @ Rob с ASP.NET. И многоуровневая система отмен / повторов является лучшей.

0 голосов
/ 30 октября 2008

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

Я бы всегда старался держать ваши сообщения на странице / форме, если это возможно. Шкалы времени могут диктовать иное.

...