Когда модальный интерфейс приемлем?
По большому счету, модальные интерфейсы сосут большие камни. С другой стороны, я не могу придумать лучшего способа обработки File Open... или Print... и это, я думаю, потому что
- это случайные действия, нечастые и важные, и
- они атомные по своей природе; вы либо заканчиваете указывать все параметры печати и проходите через него, либо отменяете все шоу.
Давайте соберем маленькое руководство по стилю. Предложите любые варианты использования, в которых диалог является предпочтительной презентацией и почему он предпочтителен. Может ли диалог быть немодальным? Если это так, как вы маркируете границы транзакций, так как Отмена перестает иметь четкое значение. Например, вы используете кнопку "Применить"?
5 ответов
IMO, модальные интерфейсы должны использоваться только тогда, когда вам нужно иметь дело с тем, что диалог делает или спрашивает, прежде чем приложение сможет продолжить работу. В любое другое время, если вы используете диалог, он должен быть немодальным.
При работе с немодальными окнами вы можете убедиться, что они уникальны: вам не нужны два одинаковых набора инструментов (например, в графической программе) или два идентичных диалоговых окна настроек (я видел это в продукте), которые можно в лучшем случае сбивает с толку.
С другой стороны, я ценю, когда диалог поиска / замены не является модальным: я могу вернуться к документу и отменить последнее изменение, пропустить в другом месте и т. Д.; без потери текущих настроек.
Так или иначе, модальные диалоги говорят пользователю "остановить все остальное и закончить то, что вы делаете", что имеет свои применения, как указано в ответе Стивена Райтона.
По моему опыту, в пользовательском интерфейсе очень мало вещей, которые должны быть модальными. Одним из лучших примеров этого, и, вероятно, очень хорошо знакомым пользователям сайта, является Eclipse. Хотя в нем есть несколько модальных диалогов, и я говорю здесь только об основной IDE, они в основном делятся на три категории: файловые операции, диалоги настроек и диалоги параметров.
Диалог предпочтений, хотя и является модальным по традиции, также не обязательно должен быть модальным. Все, что вам нужно сделать, это взглянуть на модель предпочтений Mac OS, где изменения конфигурации происходят немедленно, причем модальное поведение вводится только в тех случаях, когда изменение может помешать работе.
Короче, вот что я бы сказал, это хорошее резюме того, что должно быть модальным. Исключения из этого набора должны быть обоснованы использованием.
- Диалоги ввода параметров (пример: мастера рефакторинга. Анти-пример: диалоги поиска)
- Файловые операции
- Подтверждение действия, которое приведет к немедленному разрушительному эффекту
Я думаю, что различие заключается в том, что если что-то вообще может быть доступно пользователю в приложении, пока отображается диалоговое окно, то оно не должно быть модальным. Это включает в себя действия копирования / вставки. Лично я предпочел бы, чтобы диалоги file / open и print не были модальными. Я думаю, что модальные диалоги являются признаком слабого дизайна, необходимого зла для быстрого выхода кода.
Что касается окна входа пользователя, вы не можете (или не должны) использовать остальную часть приложения, пока не вошли в систему, предполагая, что безопасность необходима.