Об авторе

Поиск по сайту:

GUI.ruПерепроектируйте это немедленно!

Проектировать взаимодействие это вам не орешки щелкать

Алексей Копылов
21.11.2006Алексей Копылов

Комментариев:

16

Зоопарк под рабочим столом

Взгляните на область уведомлений (tray) панели задач вашей ОС Windows. Вы увидите, что-то вроде этого:

За каждым значком прячется отдельная программа, работающая в фоновом режиме.

Чаще всего в области уведомлений «сидят» программы-агенты, то есть те, что требуют минимального вмешательства со стороны пользователя. Но, время от времени, мы все же взаимодействуем с ними. И тут имеется закостенелый недостаток принятой модели взаимодействия, а точнее полное отсутствие какой-либо общепринятой модели.

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

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

Щелкаем левой кнопкой (Single Click)

  1. Outlook (MS): открывается контекстное меню (после непродолжительной паузы).
  2. ActiveSync (MS): также открывается контекстное меню.
  3. Abbyy Lingvo: сразу запускается приложение.
  4. Ahead DriveSpeed: Ничего не происходит!
  5. Local Area Connection: открывается окно со свойствами и статусом соединения.

Щелкаем правой кнопкой

  1. Outlook (MS): снова открывается контекстное меню. Причем открытие происходит моментально, без задержки, как это было с левым щелчком.
  2. ActiveSync(MS): контекстное меню. И опять без паузы.
  3. Abbyy Lingvo: контекстное меню.
  4. Ahead DriveSpeed: контекстное меню.
  5. Local Area Connection (MS): вновь контекстное меню.

Двойной щелчок левой кнопкой (Double Click)

  1. Outlook (MS): происходит переключение в окно Outlook.
  2. ActiveSync(MS): открытие окна ActiveSync.
  3. Abbyy Lingvo: открытие окна Lingvo.
  4. Ahead DriveSpeed: открытие окна.
  5. Local Area Connection (MS): открытие окна.

Двойной щелчок правой кнопкой

  • Двойной щелчок правой кнопкой — это просто два щелчка правой кнопкой для всех приложений.

Как видим, картинка неприглядная.

Можно сказать, что есть некий стандарт на поведение приложение при щелчке правой кнопкой на значке. Но двойной и одиночный «левый» клик обрабатывается каждой программой по-своему. Такое разнообразие приводит к тому, что невозможно выработать у себя прочные навыки, помогающие при управлении приложениями, которые так уютно устроились в области уведомлений.

Даже похожие программы ведут себя непохоже: ICQ, Miranda, GTalk – каждая со своим норовом. Еще интереснее, что одиночный щелчок на значке Миранды (если настроить в ней реагирование на один щелчок, а не на двойной) открывает окно с контактами, а второй клик на значке сворачивает окно обратно. GTalk же никак не реагирует на второй щелчок: окно остается висеть, как ни в чем ни бывало. Microsoft в свое время дала разработчикам полную свободу реализации взаимодействия программ в области уведомления с пользователями, которой они, конечно же, не преминули воспользоваться.

Но ситуация меняется: не так давно появился стандарт на проектирование пользовательского интерфейса для MS Windows Vista. Я тут же заглянул в раздел посвященный области уведомлений и нашел там именно то, чего мне не хватало (сам раздел найти, кстати, весьма непросто).

Итак, как должна правильно реагировать программа на щелчки с точки зрения Microsoft?

Одиночный щелчок левой кнопкой (Single Click)

Необходимо отобразить актуальную для пользователя информацию. Например:

  1. Диалоговое окно с популярными опциями;
  2. Окно программы;
  3. Диалоговое окно с подробным описанием статуса программы;
  4. Контекстное меню, где команда по умолчанию выделена полужирным шрифтом.

Двойной щелчок левой кнопкой (Double Click)

  • Безусловное выполнение команды по-умолчанию, которая выделена в контекстным меню полужирным шрифтом.

Как видим, стало легче, но не намного. Я бы более жестко определил поведение приложений по щелчку левой кнопкой. Вызов контекстного меню следует оставить только за правой кнопкой мыши. Если бы Microsoft ограничила разработчиков с помощью жесткого API, то, возможно, им было бы сложнее реализовать нестандартные решения, хотя я понимаю, что в программировании ничего невозможного нет (почти). Apple, например, гораздо сильнее ограничивает разработчиков, что в частности, повышает степень юзабилити всех программ в среде MacOS, но делает разработку программ более дорогой.

В стандарте для MS Windows Vista есть еще много всего интересного, например, что именно необходимо писать во всплывающей подсказке (infotips), каким образом значки используются для отображения статуса приложения, как лучше всего использовать анимацию и так далее.

При этом стандарт для Windows Vista годится для всех версий Windows, начиная с Windows 95. Давайте использовать его уже сейчас, пусть он не будет похоронен под терабайтами данных портала MSDN. Тогда зверушки нашего зоопарка будут совсем ручными.

Комментарии (16)

RSS feed for comments on this post | TrackBack URI

Андрей Сорочан21.11.2006 23:32
1

Познавательные заметки. Благодарности за линк и за то, что нашёл время и поигрался (повзаимодействовал) со «зверушками»

Зверёк Харьковский22.11.2006 02:27
2

ИМХО, вся проблема в непонятном “статусе” иконок в трее. Они не кноки (на кнопке может быть только одно действие) и не объекты (объекты можно выделить). Учитывая официальное название соответствующей области “tray notification area”, видимо, изначально предполагалось, что с этими иконками вообще ничего нельзя делать (чистая информация). Отсюда - поведение их как “почти объектов”:
правый клик: контекстное меню
дабл-клик: запуск “default action” (как правило, открытие окна соответствующего приложения).
левый клик: надо бы “выделить объект”, но такого понятия нет, и каждый извращается как умеет (я видал программу у которой по правому и левому клику появлялись два абсолютно разных контекстных меню). т.е. только в реакции на левый клик все программы и “выделываются”.

Тот вариант, что зафиксирован микрософтовским гайдлайном - чудовищен :) Поскольку контекстное меню по дабл-клику, это совершеннейший нонсенс, ни с чем не вяжущийся. Или в Висте есть другие места, где по дабл-клику должно контекстное меню появляться???

3

Алексей, спасибо за наводку на стандат. Очень полезная в хозяйстве вещь.
А у вас, случаем, нет англо-русского словарика соответствий названий контролов?

4

Конечно есть у меня словарь :) Вот официальный словарь от MS:
http://msdn.microsoft.com/library/en-us/dnwue/html/RUS_word_list.htm
Но он, к сожалению, устаревший, и многих терминов там просто нет (не говоря уже о новых типа “ribbon”).

Надо будет в блогах у MS’овцев поспрашивать, когда будет готова новая версия словаря.

Сейчас в рамках перевода книги Купера About Face 2.0 группой товарищей создается словарь терминов из области юзабилити, который мы с удовольствием опубликуем после окончания работы.

Vladislav Artukov22.11.2006 08:42
5

Сама по себе идея TaskBar выродилась, и бардак в Notification Area является лишь частным случаем общего бардака в TaskBar.
1. Сначала был TaskBar, назначением которого был облегченный доступ к работающим приложениям. Слева [Пуск], справа (обычно) “Часы”и “ндикатор раскладки”. Несколько позже выяснилось, что Приложения трудно опознавать в TaskBar, потому что многие приложения сначала отображали свое название, и лишь затем название документа. Естественно, название документа появлялось примерно в таком виде - “Пла” от “План работа на 1998.xls”.
2. Когда в TaskBar стали появляться значки в Notification Area и их появилось слишком много, MS придумала “конгениальная вещь 1″. Скрывать неактивные значки.
3. Кому-то пришла в голову “конгениальная вещь 2″ - панель “Быстрый запуск”.
4. “Конгениальная вещь 3″ - группы из кнопок Приложений.

И все это в одной панели TaskBar. Наверное, есть лишь один способ привести в чувство MS developers - отбирать у них 21-дюймовые мониторы (и ставить 17-дюймовые).

upo22.11.2006 11:34
6

На мое ИХМО такое количество иконок в трее обратно пропорционально количеству мозгов его владельца. Ничего личного - просто первое впечатленние …

Если кто то имеет схожие ассоциации - прошу прокомментировать.

7

upo: спасибо за очень полезное замечание. Надеюсь у вас с этим лучше? Ничего личного :)

dmitre22.11.2006 23:24
8

Термин tray устарел :}. Надо notification area, по-русски “область отражения состояния” (странно).

dmitre22.11.2006 23:43
9

“Apple, например, гораздо сильнее ограничивает разработчиков, что в частности, повышает степень юзабилити всех программ в среде MacOS, но делает разработку программ более дорогой.”

Из опыта у меня не сложилось такого впечатления. Стандартные вещи даются в OSX гораздо легче чем у WinXP.

10

Елена, есть еще сводная табличка на usability.ru, основанная в том числе на приведенном Алексеем официальном словаре - http://usability.ru/Articles/GUI_Term_Table.htm

Павел25.11.2006 11:04
11

2dmitre
Вы бы не позорились, notification area переводится как “область уведомлений” (в данном случае).

12

2Павел
Прошу полегче — мы собрались не для того, чтобы подлавливать людей на ошибках. Тем более, что Дима давно уже сидит на Маке.
Спасибо за понимание.

sbb27.12.2006 17:29
13

Грубейшая ошибка в переводе.

Left double-click: Perform the default command on the shortcut menu означает, что двойной щелчок левой кнопкой )_выполняет_ default-пункт контекстного меню, а вовсе не показывает его.

Пинчук Виталий05.01.2007 13:03
14

Если подходить к Notification Area с точки зрения пользователя, то там при возникновении события (либо начала длительного события - например архивирование WinRar) должны появляться значки оповещающие об этих событиях. Левый одинарный щелчок по идее не должен обрабатываться. Двойной щелчок левой кнопкой должен разворачивать окно с подробностями об этом событии, если подробностей на целое интерактивное окно не набирается, то двойной щелчок не обрабатывать и достаточно лишь ToolTip’а при наведении курсора на иконку. Правый щелчок должен выдавать контекстное меню с соответствующим КОНТЕКСТОМ - то бишь списком адекватных действий пользователя по данному событию (например: событие “Обнаружен вирус” - контекстное меню: “файл содержащий вирус: удалить, вылечить, поместить в карантин”).

Пинчук Виталий05.01.2007 13:09
15

Использование программами Notification Area вместо Quick Launch Bar, считаю дурным тоном.

c0smic14.03.2008 16:15
16

Такое ощущение, что тут очень немногие читают стандартные руководства типа, Windows XP UX Design Guidelines. Вы считаете это тоже дурным тоном, Виталий? Майкрософт дала возможность разработчикам через SDK помещать свои приложения в область уведомлений. И кто виноват в том, что они используются не по назначению? Можно и из пушки по воробъям пулять…
Между прочим, значки в области уведомлений это все таки объекты, их можно выделить, они имеют фокус. Человек, умеющий пользоваться клавиатурой в Windows, без труда сможет это проверить.
Поведение значков в области уведомлений, способы взаимодействия с приложением и сценарии их использования достаточно подробно и внятно описаны в MSDN, а также в справке SDK.

Оставить комментарий