Когда модальные диалоги действительно необходимы?

Модальные диалоги - это зло, но я продолжаю читать "Вам следует удалять модальные диалоги, когда это возможно "

Когда невозможно удалить модальные диалоги? Я имею в виду, какие действительно модальные задачи заставляют нас использовать злые модальные диалоги?

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

  • "Вы уверены, что хотите удалить?" Undelete
  • "Вы уверены, что хотите выйти?" Почему ты спрашиваешь это? Ты что тщеславный?

Зачем нам нужны модальные диалоги?

РЕДАКТИРОВАТЬ

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

РЕДАКТИРОВАТЬ 2

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

Дубликат: Когда приемлем модальный интерфейс ?

12.12.2008 00:00:52
Если вы ответите Lynx на "Quit?" с "N", он отвечает: "Отлично!"
gbarry 12.12.2008 00:13:20
Извините за обман, он не подошел, когда вошел в вопрос. Я назвал это диалогом, они использовали пользовательский интерфейс ...
Pyrolistical 12.12.2008 00:20:16
Нет проблем. Мне все равно не хватает возможности его закрыть. Я просто хотел указать на это, чтобы силы могли решить, что они хотят делать. Иногда они оставляют их открытыми, иногда нет.
George Stocker 12.12.2008 00:27:03
К сожалению, ваш Правка № 2 также делает вопрос спорным .. :-(
George Stocker 12.12.2008 00:32:47
3 ОТВЕТА

Используйте случаи для модальных диалогов

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

(Источник: Википедия )

Когда я их использую

В случаях, когда мешать им делать что-то глупое, абсолютно обязательно. В моей компании есть веб-приложение, в котором пользователи иногда покидают страницу до окончания своей работы. Мы запрашиваем их с помощью Modal (стандартная onbeforeunloadфункция JavaScript), если они не сохранили свою работу.

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

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

6
12.12.2008 00:12:49
Я не могу извинить веб-приложения за использование модальных диалогов, так как они имеют подмножество инструментов пользовательского интерфейса по сравнению с настольными приложениями.
Pyrolistical 12.12.2008 00:08:56
Нет, если я могу помочь. Я хочу иметь возможность создавать веб-приложения, используя полный набор инструментов для настольных компьютеров, с прозрачной безопасностью веб-приложения
Pyrolistical 12.12.2008 00:22:39
Тогда ваша реализация автоматического сохранения несовершенна. Он не может просто перезаписать существующую информацию. Требуется как минимум 1 ревизия назад, чтобы вы могли отменить.
Pyrolistical 12.12.2008 00:24:09
Ты абсолютно прав. Однако именно этого хотели наши клиенты, и именно эту спецификацию нам дали. Я поднял ту же проблему, но сомневаюсь, что она изменится.
George Stocker 12.12.2008 00:25:09
«блокирование потока приложения до тех пор, пока не будет введена информация, необходимая для продолжения ...» - это не сценарий использования модального диалога, поэтому он является злым и его следует избегать.
ShreevatsaR 12.12.2008 00:33:18

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

1
12.12.2008 00:17:56
Вот почему я сказал автоматическое сохранение с отменой. Я бы никогда не перезаписал единственную копию ввода пользователя.
Pyrolistical 12.12.2008 00:25:05
Автосохранение куда? Если я не прошу вас, я НИКОГДА не хочу даже трогать мои файлы. У вас может быть файл данных приложения, где можно поиграть, но не трогайте мои документы!
BCS 12.12.2008 01:02:45
Конечно, должен быть умный способ сделать это, не затрагивающий ваши файлы, нам не нужно это выяснять здесь.
Pyrolistical 12.12.2008 01:16:17
Пользователь может хорошо знать, что он это сделал, и просто хочет вернуться назад и начать заново, тогда автоматическое сохранение (даже с отменой) будет проблемой, как вы узнаете, что они хотели сделать? Представляете ли вы им diff, когда они снова его открывают, что кажется мне ближе к PITA, чем к модалу. $ .02
seanb 12.12.2008 01:48:57
Хотя я, безусловно, понимаю вашу позицию, БКС - разделяю ее! - исследования юзабилити последовательно показывают, что большинство пользователей ожидают, что их действия будут постоянными по умолчанию, что в основном означает непрерывное сохранение (с неограниченным количеством отмен).
Dave Sherohman 12.12.2008 02:01:39

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

0
30.07.2010 19:18:33
да, если вы используете немодальные диалоги без мысли, что произойдет. но при более реалистичном дизайне при изменении чего-либо в одном диалоге оно должно автоматически обновлять другие связанные диалоги.
Pyrolistical 4.08.2010 17:27:50
Это не возможно для всех сценариев.
Mot 5.08.2010 08:33:36