Индикация ожидания посредством курсора

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

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

Выделение

Выбор объекта или элемента управления называется выделением. Это простая идиома, обычно реализуемая с помощью указания требуемого объекта и щелчка по нему (хотя существуют и другие методы, связан' ные с клавиатурой и кнопками). Выделение часто служит основой для более сложных взаимодействий – выбрав объект, пользователь пере' ходит в контекст, подходящий для выполнения действий над этим объектом. Последовательность событий, подразумеваемая такой идио' мой, называется порядком «объект – глагол».

Порядок команд и выделение

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

Если задуматься, станет понятно, что любая команда может быть выра' жена двумя способами: либо сначала глагол, затем объект, либо снача' ла объект, затем глагол. Обычно эти два способа называют соответст' венно порядком «глагол – объект»и порядком «объект – глагол». В со' временных пользовательских интерфейсах используются оба варианта.

Порядок «глагол – объект» соответствует порядку формирования ко' манд на естественном языке. Как следствие, системы, управляемые через командную строку, вполне логично копируют эту языковую структуру в своем синтаксисе (к примеру, чтобы удалить файл в систе' ме UNIX, нужно выполнить команду rm filename.txt).




Когда графические пользовательские интерфейсы только появились, стало очевидно, что порядок «глагол – объект» не годится. Не имея же' стких рамок и формальных структур, присущих командной строке, графические интерфейсы должны увязывать различные взаимодейст' вия внутри одной команды посредством состояния. Если пользователь выбрал глагол, система должна перейти в состояние (режим), указы' вающее на ожидание того, что пользователь выберет объект, к которо' му будет применен глагол. В простейшем случае пользователь выбира' ет один объект, и все заканчивается хорошо. Однако если пользователю требуется выполнить действие над многими объектами, система может узнать об этом, лишь если пользователь заранее сообщит количество операндов либо введет еще одну команду, указывающую, что выбраны все нужные объекты. Оба варианта взаимодействия крайне неуклюжи и требуют, чтобы пользователь выражался совершенно неестественным образом, который сложно освоить. То, что замечательно работает в чет' ко структурированной языковой среде, распадается на части в более свободном мире графических пользовательских интерфейсов.

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

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

На абстрактном уровне модель «объект – глагол» может быть малопо' нятной, однако выделение – идиома очень простая для понимания и после одной демонстрации запоминается надолго (щелчок по сооб' щению электронной почты в Outlook с последующим удалением быст' ро становится привычным действием). При разговоре на обычном язы' ке кажется странным начинать с объекта. В то же время в своих не' лингвистических действиях мы часто руководствуемся этой моделью. Так, мы сначала берем в руки банку, а затем открываем ее.

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

лизована команда выполнения действия над списком объектов – кноп' ка OK. Здесь пользователи могут выбрать сначала функцию, а затем один или несколько объектов.

При реализации непосредственного манипулирования порядок «объ' ект – глагол» подходит больше, однако и здесь существуют ситуации, в которых более полезным или удобным оказывается порядок «глагол – объект». Это ситуации, когда нет возможности или смысла указывать объекты вне контекста команды. Так, в картографических приложе' ниях пользователь не всегда может выбрать из списка адрес, для кото' рого нужна карта (в то время как в его записной книжке эта функция должна присутствовать обязательно); ему удобнее сказать «я собира' юсь построить карту для следующего адреса…»

Наши рекомендации