Когда модальный интерфейс приемлем?

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
9
0
3 741
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

IMO, модальные интерфейсы следует использовать только тогда, когда вы ИМЕЮТ имеете дело с тем, что диалог делает или запрашивает, прежде чем приложение сможет продолжить. В любой другой раз, если вы используете диалог, он должен быть немодальным.

Мы используем их здесь для добавления, редактирования и уведомлений. Экранная недвижимость ценится. ;)

willasaywhat 30.09.2008 18:24

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

Stephen Wrighton 30.09.2008 18:57

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

С другой стороны, мне нравится, когда диалог поиска / замены не является модальным: я могу вернуться к документу и отменить последнее изменение, пропустить где-нибудь еще и т. Д .; без потери текущих настроек.

Каким-то образом модальные диалоги говорят пользователю «остановить все остальное и закончить то, что вы делаете», что имеет свое применение, как указано в Ответ Стивена Райтона.

Это может быть первое нетривиальное использование шаблона Singleton, которое я когда-либо видел.

Peter Wone 30.09.2008 17:17

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

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

Joeri Sebrechts 30.09.2008 18:03

Чем в принципе выделение серого отличается от модального? Это не.

Rhubarb 28.05.2012 03:42

@Rhubarb - да, это так. Он передает информацию о том, что возможно.

Peter Wone 17.03.2017 03:41

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

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

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

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

  • Диалоги ввода параметров (пример: мастера рефакторинга. Антипример: диалоги поиска)
  • Файловые операции
  • Подтверждение действия, которое немедленно приведет к разрушительным последствиям

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

Peter Wone 01.10.2008 03:00

Другие вопросы по теме