Взаимодействие пользователя с приложением
3.4. ВЗАИМОДЕЙСТВИЕ ПОЛЬЗОВАТЕЛЯ С ПРИЛОЖЕНИЕМ
Основные операции взаимодействия пользователя с приложениями, такие как навигация, выбор, просмотр, редактирование, создание новых объектов базируются на парадигме объектной обработки, в которой пользователь идентифицирует объект и действие, относящееся к этому объекту. Последовательно реализуя эту технику, вы даете возможность пользователю переносить их навыки и знания на новые задания.
Большинство создаваемых приложений поддерживают основные операции взаимодействия для мыши, клавиатуры и пера. Дополняя или расширяя основной набор операций, учитывайте возможность их реализации с помощью указанных устройств ввода. Техника использования не должна быть единой для всех устройств. Наоборот, она должна быть реализована таким образом, чтобы оптимизировать применение конкретного устройства с учетом его особенностей. Кроме того, старайтесь облегчить пользователю переход между устройствами, с тем, чтобы он мог менять устройства в зависимости от выполняемых действий.
НАВИГАЦИЯ
Перемещая мышь, пользователь может переместить указатель в любую позицию на экране.
Навигация с помощью пера подобна навигаций посредством мыши, за исключением того, что пользователь перемещает перо, не касаясь входной поверхности.
Клавиатурная навигация требует от пользователя нажатия специальных клавиш и их комбинаций. Положение позиции (фокуса) ввода определяется контекстом (текущей ситуацией); в частности, при работе с текстом оно идентифицируется положением текстового курсора.
Рекомендуемые материалы
Основные клавиши навигации
Клавиши навигации — это четыре клавиши управления курсором (которые мы в дальнейшем для краткости будем называть <Вправо>, <Влево>, <Вверх>, <Вниз>), а также клавиши <Home>, <End>, <Page Up>, <Page Down> и клавиша <Tab>. Нажатие клавиш навигации в сочетании с клавишей <Ctrl> позволяет увеличивать шаг перемещения. Например, нажатие клавиши <Вправо> перемещает курсор в текстовой области вправо на один символ, а нажатие той же клавиши совместно с <Сtrl> о6еспечивает перемещение курсора на одно слово.
Табл. 3.3 содержит перечень основных клавиш навигации и их функции. Вы можете определить дополнительные клавиши для навигации.
Таблица 3.3
Основные клавиши навигации
Клавиша | Перемещение курсора | Перемещение курсора для комбинации <Сtrl>+<клавиша> |
<Вправо> | на один элемент вправо | на один (более крупный) элемент вправо |
<Влево> | на один элемент влево | на один (более крупный) элемент влево |
<Вверх> | вверх на один элемент или строку | на один (более крупный) элемент вверх |
<Вниз> | вниз на один элемент или строку | на один (более крупный) элемент вниз |
<Home> | в начало строки | в начало данных или файла (в самую верхнюю позицию) |
<End> | в конец строки | в конец данных или файла (в самую нижнюю позицию) |
<Page Up> | на один экран вверх (в ту же позицию предшествующего крана) | на один экран влево (или на предшествующий экран) |
<Раде Down> | на один экран вниз (в ту же позицию следующего экрана) | на один экран вправо (или на следующий экран) |
<Tab> | на следующее поле (комбинация <Shift>+<Tab> дает перемещение в обратном направлении) | на следующую большую область |
В отличие от навигации с помощью мыши и пера, клавиатурная навигация обычно влияет на текущий выбор. В связи с этим вы можете дополнительно определить использование клавиши <Scroll Lock> таким образом, чтобы навигация выполнялась без изменения текущего выбора. При этом величина шага приращения остается прежней.
ВЫБОР
Выбор является основным средством, с помощью которого пользователь идентифицирует интересующие его объекты. Следовательно, реализация модели взаимодействия, основанной на использовании выбора — один из наиболее важных аспектов проектирования интерфейса.
Выбор, как правило, предполагает прямое указание пользователем идентифицируемого объекта. Этот механизм известен как явный выбор. Если объект выбран, пользователь может определить действие для него.
Возможны также ситуации, когда идентификация (выбор) объекта производится «косвенно», на основе некоторого логического правила или исходя из текущего контекста. Косвенный выбор работает наиболее эффективно в тех случаях, когда между объектом и действием существует простая и видимая ассоциация. Например, когда пользователь «протаскивает» полосу прокрутки, он одновременно определяет и выбор объекта «полоса прокрутки», и связанное с ним действие «перемещение». Косвенный выбор может быть реализован и посредством имеющейся связи между объектами. Например, выбирая символ в текстовом документе, вы, тем самым, подразумеваете выбор параграфа, в котором содержится данный символ.
Операция выбора может относиться как к единственному объекту, так и к множеству объектов. Соответственно различают единичный и множественный выбор. Множественный выбор может быть непрерывным (известен также как выбор области), когда операция выбора выполняется для группы расположенных рядом объектов, либо раздельным, когда выбор содержит группу объектов, которые пространственно или логически разнесены.
Множественный выбор может также быть классифицирован как однородный (гомогенный) или разнородный (гетерогенный), в зависимости от типа или свойств выбранных объектов. Однородность или разнородность выбора влияет на доступность операций, выполняемых над всеми выбранными объектами.
Всегда обеспечивайте визуальную обратную связь для отображения результатов явного выбора, с тем, чтобы пользователь мог контролировать свои действия. Форма отображения выбора зависит от объекта и текущего контекста.
При наличии косвенного выбора обеспечивать визуальную обратную связь значительно сложнее; однако вы можете отобразить эффект косвенного выбора другими способами. Например, когда пользователь протаскивает полосу прокрутки, целесообразно отобразить перемещение указателя. Аналогично, если указание слова в параграфе подразумевает выбор параграфа, вы не должны использовать средства выделения для всего параграфа, достаточно учитывать свойства параграфа, когда пользователь выполняет над ним те или иные действия.
Область выбора — это совокупность объектов одного окна, для которых сделан выбор; при этом область выбора не обязательно будет совпадать с областью видимости этих объектов. Например, вы можете выбрать два файла в одном и том же окне, удаленных друг от друга настолько, что в пределах видимости находится только один из них.
Одновременно может существовать несколько областей выбора. При этом в каждом окне может быть определена только одна область выбора. Область выбора в одном окне не зависит от областей выбора в других окнах.
Учитывать имеющиеся области выбора важно из-за того, что они определяют набор допустимых операций для выбранных объектов и способ выполнения этих операций»
Как правило, области выбора содержат объекты, относящиеся к одному уровню иерархии (например, только файлы внутри папки, либо папки, имеющие равный уровень вложенности). Тем не менее, вы можете предоставить пользователю возможность распространить область выбора на объект следующего, более высокого уровня, если он непосредственно содержит исходный объект выбора (но в пределах того же окна). При этом у пользователя должна сохраняться возможность возврата на исходный уровень. Например, если требуется распространить область выбора, состоящую из одной ячейки в таблице, на соседнюю ячейку (как показано на рис. 3.3), необходимо сначала поднять выбор с символьного уровня на уровень ячейки; при изменении уровня выбора в обратном направлении, следует восстановить выбор на символьном уровне.
| Telephone |
Electricity | Telephone |
Electricity | Telephone |
Рис. 3.3. Иерархический выбор
ОСНОВНЫЕ КОНЦЕПЦИИ ВЫБОРА С ПОМОЩЬЮ МЫШИ
Выбор с помощью мыши основан на использовании двух основных действий: нажатии клавиши мыши и перемещении. В общем случае, нажатие обеспечивает выбор единственного объекта или позиции, а перемещением идентифицируется область, состоящая из всех объектов, начиная от позиции «кнопка нажата» до позиции «кнопка отпущена».
Предоставьте пользователю возможность использовать для выбора обе кнопки мыши. Когда пользователь нажимает кнопку мыши, зафиксируйте начальную точку области выбора. Если, нажав кнопку, пользователь перемещает мышь, расширьте область выбора до объекта, ближайшего к текущей позиции указателя. Если, продолжая удерживать кнопку, пользователь перемещает мышь в пределах области выбора, ограничьте ее объектом, ближайшим к указателю. Согласование области выбора с перемещением указателя при нажатой кнопке мыши позволяет пользователю динамически регулировать область выбора.
Если, завершив выбор, пользователь нажимает вторую (правую) кнопку мыши, отобразите контекстное всплывающее меню для выбранных объектов.
Описанная выше общая форма выбора оптимальна для указания единственного объекта или единственной области. В том случае, если новая область выбора создается в пределах уже существующей области (например, в пределах того же окна), она отменяет предыдущий выбор. Такой подход обеспечивает простой выбор, который должен выполняться быстро и легко. Ту же технику можно использовать и для отмены выбора: если пользователь нажимает кнопку мыши за пределами любой существующей области выбора (но в том же окне), результат выбора должен быть аннулирован. Вместе с тем, при повторном нажатии кнопки мыши над выбранным пунктом не следует отменять прежний выбор. Лучше определите операции, выполняемые над выбранным объектом (областью) при нажатии правой или левой кнопки мыши.
Если пользователь нажимает первую (левую) кнопку мыши и указатель при этом не перемещается, то последующее освобождение кнопки может иметь различный эффект, который определяется контекстом выбора. Вы можете использовать один из следующих вариантов, в зависимости от сущности выполняемого пользователем задания:
• Игнорировать данное событие. Это наиболее распространенный и самый безопасный вариант.
• Объект под указателем может получить некоторое специальное обозначение или признак.
• Выбор может быть отнесен только к объекту, находящемуся под указателем. Как правило, при щелчке ПКМ на области выбора целесообразно отображать для этой области всплывающее меню.
Хотя выбор обычно выполняется посредством установки указателя над объектом, он может быть сделан косвенно, на основе логической связи между объектом и положением указателя. Например, выбирая текст, пользователь может установить указатель в свободной области после конца строки; при этом результат выбора будет таким же, как при указании на конец строки.
Корректировка выбора
Корректировка выбора (добавление или удаление элементов выбора) выполняется на основе совместного использования мыши и клавиш-модификаторов. Например, клавиша <Ctrl> может использоваться как переключатель режима: если пользователь нажимает эту клавишу, выбирая новый объект, добавьте его к существующему выбору. Однако имейте в виду, что непересекающийся выбор может быть полезен далеко во всех ситуациях.
Если выбор, модифицированный клавишей <Ctrl>, выполнен перемещением указателя, состояние выбора изменяется на противоположное для всех объектов, попавших в область выбора.
При использовании клавиши <Ctrl> для изменения выбора следует нажать клавишу прежде, чем использовать кнопку мыши. Непересекающийся выбор выполняется до тех пор, пока пользователь не отпустит кнопку мыши (даже если будет отпущена клавиша <Ctrl>).
Клавиша <Shift> позволяет расширить область выбора. Когда пользователь нажимает ЛКМ, удерживая эту клавишу, фиксируется текущая позиция указателя. Она соответствует началу области выбора. Последующее нажатие ЛКМ при нажатой клавише <Shift> указывает последний объект (граничную точку) области выбора.
Состояние конкретного объекта в области выбора связано с состоянием первого объекта, включенного в область выбора. Если первый объект отображен как выбранный, остальные объекты области также отображаются как выбранные.
При корректировке выбора пользователь должен нажать и удерживать клавишу <Shift> прежде, чем нажать ЛКМ. Корректировка выбора продолжается до тех пор, пока пользователь не отпустит кнопку мыши. Для обозначения объекта (или позиции), с которого было начато выделение области, используется понятие якоря. Все последующие корректировки выбора, выполняемые с помощью клавиш <Shift> и <Ctrl>, производятся относительно позиции-якоря.
Рис. 3.4 показывает, как эта техника может применяться в электронной таблице.
а) пользователь выбирает 4 ячейки, перемещая указатель от ячейки А2 к ячейке ВЗ;
б) пользователь нажимает клавишу <Shift> и, не отпуская ее, щелкает ЛКМ на ячейке С4;
в) пользователь нажимает клавишу <Ctrl> и, не отпуская ее, щелкает ЛКМ на ячейке А6;
г) пользователь нажимает клавишу <Shift> и, не отпуская ее, щелкает ЛКМ на ячейке С6.
Выбор области
В некоторых более сложных ситуациях, когда объекты (точнее, их пиктограммы) могут перекрываться, начальная точка области выбора может находиться в фоновой области окна (иногда называемой белым полем). В таких случаях для визуального отображения области выбора на экране рисуется условная граница области. Обычно она имеет вид пунктирного прямоугольника, но возможны и другие формы.
Рис. 3.4. Расширение выбора в пределах электронной таблицы
Когда пользователь нажимает ЛКМ и перемещает указатель, должна изменяться и граница области выбора (рис. 3.5).
После того, как выбор сделан, условная граница области должна быть убрана. Впоследствии выбор может быть скорректирован с помощью клавиш-модификаторов <Ctrl> и <Shift>.
Дополнительно следует определить, должен ли выбираемый объект полностью лежать в границах выделяемой области, или достаточно, чтобы он только пересекался ею.
КЛАВИАТУРНЫЙ ВЫБОР
Клавиатурный выбор объектов основан на использовании понятия фокус ввода. Фокус ввода может быть представлен на экране в виде позиции ввода с текстовым курсором, прямоугольным полем ввода, либо другим курсором или визуальным указанием позиции, в которой пользователь может выполнить ввод данных с клавиатуры.
В некоторых случаях выбор может быть выполнен косвенно, посредством использования клавиш навигации. Когда пользователь нажимает клавишу навигации, фокус ввода перемещается в соответствующую позицию (определяемую клавишей) и идентифицирует объект, находящийся в этой позиции.
В некоторых случаях более удобно не только переместить фокус ввода, но и потребовать от пользователя сделать явный выбор с помощью клавиши выбора. Рекомендуемая клавиша выбора — <Spacebar> (пробел), если это назначение не противоречит текущей ситуации (в этом случае вы можете использовать сочетание клавиш <CTRL>+<Spacebar>, либо определить другую клавишу, которая лучше подходит в данной ситуации). Иногда клавиша выбора может также использоваться для изменения состояния выбранного объекта.
Непрерывный выбор
При работе с текстовой информацией пользователь перемещает курсор на желаемую позицию, используя клавиши навигации. Зафиксируйте эту позицию в качестве якоря. Когда пользователь нажимает клавишу <Shift> одновременно с любой клавишей навигации (или комбинацией клавиш навигации, например, <Ctrl>+<End>), зафиксируйте соответствующую позицию как активную границу области выбора; все символы, расположенные между якорем и этой позицией, включаются в область выбора. Если пользователь после этого нажимает другую клавишу навигации, отмените выбор и переместите границу области в позицию, определяемую клавишей. Если пользователь нажимает клавиши управления курсором, переместите курсор на границу прежней области выбора.
Вы можете использовать эту технику и при работе с другими типами данных, например, со списками, где объекты логически взаимосвязаны. Тем не менее, в таких ситуациях состояние объектов, включенных в область выбора, зависит от состояния выбора объекта, соответствующего позиции-якорю. Например, если объект в этой позиции выбран, то считаются выбранными также все объекты в области, независимо от их текущего состояния. Если объект в позиции-якоре не выбран, то такое же состояние устанавливается для всей области.
Раздельный выбор
Установка начального выбора выполняется с помощью одной из клавиш навигации или клавиши навигации, модифицированной клавишей <Shift>. Пользователь может затем использовать клавиши навигации, чтобы перейти на новую позицию и впоследствии использовать клавишу выбора, чтобы создать дополнительный выбор.
Люди также интересуются этой лекцией: 37 Динамические структуры данных.
Создание раздельного выбора требует использования клавиш-модификаторов для реализации режима добавления (например, в виде комбинации <Shift>+F8). В этом режиме фокус ввода перемещается, не влияя на существующие выборы или положение позиции-якоря. Когда пользователь нажимает клавишу выбора, установите состояние выбора для новой позиции и обновите связь позиции-якоря с конечной границей области выбора. Чтобы скорректировать выбор относительно текущей позиции-якоря, пользователь может использовать в любой точке области выбора комбинацию клавиши <Shift> с клавишей навигации.
Когда пользователь вторично нажимает клавишу перехода в режим добавления, обеспечьте выход из этого режима, сохраняя установленную область выбора.
Ускоренный выбор
Двойной щелчок ЛКМ представляет собой ускоренный способ выбора объекта. При работе с текстом этот прием обычно используется для выбора слова (без включения знаков пунктуации).
Вы можете определить дополнительный ускоренный способ выбора для некоторых специфических ситуаций. Например, выбор пользователем заголовка столбца может одновременно обеспечить выбор всего столбца. Поскольку такие средства не могут быть распространены на весь интерфейс, не используйте их в качестве единственного способа указания области выбора.