Визуальная индикация выделения
Выделенные объекты должны быть однозначно и отчетливо представ' лены пользователю как таковые. Выделенный объект должен бросать' ся в глаза на экране, заполненном другими объектами, выделение должно быть недвусмысленным и не скрывать детали объекта, види' мые при его нормальном состоянии.
Выделение должно быть визуально отчетливым и недву- смысленным.
В частности, нужно сделать так, чтобы пользователи без труда отлича' ли выделенные объекты от невыделенных. При этом недостаточно про' сто наделить объекты разными цветовыми характеристиками. Помни' те, что значительная часть населения страдает цветовой слепотой, так что цвет – не единственное, что должно характеризовать выделение.
Исторически сложилось так, что для передачи выделения использует' ся инверсия (преобразование белых пикселов в черные, а черных в бе' лые). Хотя это весьма заметный визуальный ход, он может не очень легко читаться, особенно в полноцветных интерфейсах. Среди других средств выделения – цветной фон, очертания объектов, псевдотрех' мерное отображение, маркеры и анимированные контуры.
В приложениях для черчения, рисования, анимации и презентаций, где пользователи имеют дело с визуально насыщенными объектами, выделение легко потерять. Здесь лучшее решение – добавить к объек' ту индикаторы выделения, а не просто изменить его визуальные свой' ства. В большинстве графических редакторов реализуется именно та' кой подход с маркерами– небольшими прямоугольниками, окружаю' щими объект и предоставляющими точки для воздействия на него.
Когда речь идет о выделениях сложной формы (как в приложении для обработки изображений вроде Adobe Photoshop), маркеры могут сби' вать пользователя с толку и теряться на экране. Однако существует один способ гарантировать, что выделение всегда будет заметно вне за' висимости от используемых цветов: использовать движение.
Одна из первых программ для компьютеров Macintosh, MacPaint, предложила замечательную идиому: выделенный объект очерчивался простым пунктиром, и фрагменты пунктирной линии синхронно дви' гались вокруг объекта. Пунктир напоминал колонну муравьев и пото' му получил красочное название: марширующие муравьи. Сегодня эта идиома обычно называется область(marquee).1
1 Термин marquee (фр.) является очень образным: этим словом назывались мерцающие вывески старых кинотеатров. В русской версии Adobe Photo' shop эта идиома получила нейтральное название «область», ставшее стан' дартом де'факто. – Примеч. науч. ред.
В Adobe Photoshop данная идиома применяется для отображения об' ластей выделения на фотографиях и работает чрезвычайно хорошо (опытные пользователи могут одним нажатием клавиши включать и выключать эффект, получая возможность анализировать работу без отвлекающих факторов). Анимацию несложно реализовать, хотя она и требует некоторой проработки, а эффект действует независимо от смешения цветов и насыщенности фона.
Перетаскивание
Из всех идиом непосредственного манипулирования ни одна не харак' теризует графический пользовательский интерфейс лучше, чем пере' таскивание – щелчок по объекту, перемещение по экрану при нажатой клавише мыши и отпускание кнопки в точке назначения. Удивитель' но, но перетаскивание применяется не так часто, как нам кажется, и определенно еще не исчерпало свой потенциал.
В частности, популярность среды Всемирной паутины и миф о том, что веб'интерфейсы – это синоним исключительной простоты использова' ния, сдерживают развитие идиомы перетаскивания в настольных при' ложениях, поскольку разработчики ошибочно копируют ущербный интерфейс веб'броузеров в другие, гораздо менее подходящие для него контексты. По счастью, веб'технологии совершенствуются, и сегодня программисты могут реализовать богатые возможности перетаскива' ния даже в броузере; и хотя задача пока еще не всегда тривиальна, по' хоже, что у мощных, выразительных командных идиом на всех плат' формах начинается вторая жизнь.
Перетаскиваниеможно определить как «щелчок по объекту и перенос его в другое место», хотя подобное определение узковато для такой широкой идиомы. Более точным определением перетаскивания будет такое: «щелчок по некоторому объекту и перенос его с целью преобра' зования».
Компьютеры Macintosh стали первой успешной системой, предложив' шей идиому перетаскивания. С этой идиомой были связаны большие ожидания, которые не воплотились в реальность по двум простым причинам. Во'первых, перетаскивание не было общесистемной функ' цией, а применялось только в программе Finder. Во'вторых, Macintosh в те времена был однозадачным компьютером, и идея перетаскивания объектов из одного приложения в другое еще много лет выпадала из поля зрения разработчиков.
К заслугам Apple следует отнести то, что она описала операцию перетас' кивания в своем первом руководстве по пользовательским интерфей' сам. Корпорация Microsoft, расположенная по другую сторону барри' кад, не только не включила средства перетаскивания в ранние версии Windows, но даже не описала эту процедуру в документации для про' граммистов. Впрочем, в конце концов Microsoft не только наверстала
упущенное, но и первой предложила новые применения для этой идио' мы: плавающие инструментальные панели и паркуемые палитры.
Обычно термин «непосредственное манипулирование» используется для описания всех видов идиом взаимодействия с графическим пользова' тельским интерфейсом, но, когда речь заходит о перетаскивании, полез' но выделить два уровня «непосредственности». Во'первых, есть настоя' щие идиомы непосредственного манипулирования, в которых перетас' кивание означает помещение объекта куда'либо, например перемеще' ние файла из одного каталога в другой, открытие файла в конкретном приложении (переносом пиктограммы файла на пиктограмму приложе' ния) или упорядочение объектов на холсте в графическом редакторе.
Во'вторых, имеются косвенные идиомы перетаскивания: пользова' тель перетаскивает объект в определенную область или на другой объ' ект, чтобы выполнить какую'то функцию. Такие идиомы менее попу' лярны, но могут быть очень полезными. Хороший пример – автомати' зация в Mac OS X (рис. 19.6)
Рис. 19.6. Инструмент Automator, предложенный Apple в рамках Mac OS X, позволяет пользователям описывать рабочие процессы (такие как переимено- вание изображения), а затем представлять эти процессы в виде пиктограмм. Создав пиктограмму переименования, пользователь может перетаскивать на нее файлы и папки, чтобы выполнять переименование. И хотя такая функ- циональность, строго говоря, не является непосредственным манипулирова- нием, она дает достаточно прямой способ воспользоваться командой