Готовый перевод Mac OS X Human Interface Guidelines / Руководство по проектированию пользовательских интерфейсов для Мак ОС X: Chapter 7 — UI Element Guidelines: Windows
Глава 7. Элементы пользовательского интерфейса: Окна.
Окно представляет собой область, в которой отображаются данные, элементы управления и взаимодействия с пользователем.
С точки зрения пользователя любая область, ограниченная прямоугольником — это окно, но разработчик должен значть, что окна существуют нескольких разновидностей:
* Окна документов, содержащие данные, хранящиеся в файлах.
* Окна приложений, не работающих с документами.
* Палитры, располагающиеся поверх окон приложения и отображающие инструменты и элементы управления, необходимых для работы с открытыми документами. Иногда их можно делать прозрачными (см. «Panels», (стр.195))
* Диалоговые окна, вызываемые по команде пользователя и ожидающие некоторых действий, необходимых для завершения команды. Диалоговые окна требуют от пользователя определённого ответа, прежде чем закроются. (см. «Dialogs» (стр.201))
* Окна сообщений — особый тип диалогового окна, появляющегося при возникновении проблем, например ошибок. Также требуют ответа пользователя перед закрытием. (см. «Alerts» (стр.220))
Примеры перечисленных окон приведены ниже:
-Окно приложения
-Палитра
-Сообщение
-«Ящик» (разновидность модального диалога)
-Окно документа
Как видим в примерах выше, внешний вид окон в Mac OS X v10.7 прост и понятен, благодаря чему пользователь может сфокусировать внимание на том, что для него важно.
Заметьте, что существует вид всплывающего сообщения (так называемый «пузырь»), который не является окном де юре, но может восприниматься пользвателем именно как окно (в частности, если его можно отделить от родительского компонента или области). Подробнее см. «Popovers» (стр.191).
Рамка окна заполняется серым цветом с градиентом. в MacOs X v10.7 используются специальные элементы, предназначенные для размещения в панели инструментов. Подробнее см. «Window-Frame Controls» (стр. 196).
Подробнее о внешнем виде и поведении окон
Типичное окно включает в себя рамку тело окна. К рамке также относится заголовок окна, панель инструментов под заголовком (изредка — нижнюю панель). К телу окна относится пространство от нижней кромки заголовка (или панели инструментов) до нижней части окна (или верхней части нижней панели, если она есть). В теле окна располагается всё основное содержимое. К примеру, в окне просмотра Mail-а в него входят панели почтового ящика, список сообщений и отображаемое сообщение.
[Изображение]
Рамка окна выделяется серым градиентом. В Mac OS X v10.7 предлагается использовать специальные элементы управления, предназначенные для этой области. Подробнее см. «Window-Frame Controls», (стр 225).
Тело окна, содержащее данные (такие, как текст, или таблицы) по-умолчанию заполняется белым цветом. Остальная часть окна обычно заполняется серым цветом с бликом.
Элементы окна
Каждое окно приложения, документа, или палитры состоит, как минимум, из следующих элементов:
* Заголовка. Даже если названия у окна нет, заголовок нужно оставлять, чтобы окно можно было перемещать.
* Кнопки закрытия, чтобы окно можно было в любое время убрать.
Окно документа кроме перечисленных содержит следующие элементы:
* Полосы прокрутки: вертикальную и горизонтальную (если необходимо).
* Кнопки «Свернуть» и «Раскрыть»
* Значок документа и меню версий (появлеется, после того, как документу будет дано имя и выбрано место располоение в файловой системе).
* Заголовок документа
* уголки для изменения размера.
К примеру, окно документа TextEdit на рисунке ниже включает в себя заголовок, значок документа, кнопки «Закрыть», «Свернуть», «Развернуть», а также полосу прокрутки. Уголок для изменения размера окна невидим, пока на него не наведён курсор. Также, меню версий не видно, пока документ не заблокирован (и при этом изменён), а курсор не находится в правой части заголовка окна документа.
[Изображение]
Также на рисунке можно заметить особый элемент окна, называемый панелью навигации. Панель навигации располагается ниже панели инструментов и позволяет воспользоваться операциями поиска, фильтра объектов, и прочими подобными операциями, определяемые набором характеристик. Подробнее см. «Using a Scope Bar to Enable Searching and Filtering» (стр. 173).
Реже встречается так называемая нижняя панель, располагающаяся в нижней части окна. Там обычно располагаются элементы управления для управления содержимым и порядком его отображения в окне, такие как кнопки управления контактами и чатом в окне iChat.
[Изображение]
Полосы прокрутки
Полосы прокрутки необходимы для отображения данных, не помещающихся в пределах текущего окна. В Mac OS X начиная с версии 10.7 полосы прокрутки по умолчанию скрыты
и появляются в окнах при:
* Открытии окон, содержащих прокручиваемые данные и изменении их размеров
* Отображении данных любых данных вне окон, если их размеры не позволяют отобразить их целиком.
* активации прокручиваемых элементов
Во всех подобных случаях полосы прокрутки появляются на короткое время и исчезают по окончании взаимодействия с окном и его содержимым, что позволяет отображать полосы прокрутки только когда они нужны, а значит не расходовать под них место на экране.
Важно: пользователь может запретить скрытие полос прокрутки через настройки системы. Ширина полосы прокрутки — 15 пикселей, и она отображается поверх содержимого окна.
Некоторые приложения для более ранних версий Mac OS отображают полосы прокрутки старого образца даже под Mac Os X v.10.7. Такие полосы прокрутки отображаются не поверх содержимого окна, а для них выделяется место у его границы.
И наконец, полосы прокрутки не будут скрываться, если к компьютеру будет подключена мышь без колеса.
Подробнее об включении полос прокрутки см. «Enabling Scrolling» (стр. 170).
К примеру, на рисунке ниже размер окна был недавно изменён, поэтому отображаются обе полосы прокрутки.
[Изображение]
Размер движка (по отношению к длине границы прокручиваемого виджета) показывает отношение видимой части данных к скрытой. Если движок полосы прокрутки очень маленький, это значит, что область просмотра очень мала по сравнению с отображаемыми данными. Положение движка указывает на положение видимой части от начала документа.
Прокручивать документ можно несколькими способами:
* Прокруткой с помощью трекпада. Это просто и естественно, так как используются приёмы прямого управления (см. «Direct Manipulation (стр. 29)). Заметьте, что в Mac OS X v10.7 пользователь может изменять поведение прокрутки в этих случаях, используя как прокрутку в направлении движения пальцев, так и в противоположную.
* Поворотом колеса мыши. Скорость прокрутки можно регулировать в настройках системы.
* перетаскиванием движка прокрутки. Этот метод пригодится для навигации по большим документам. Содержимое окна моментально меняется вслед за сменой положения движка.
Когда полоса прокрутки не видна, пользователь должен должен дождаться её появления, чтобы прокрутить. Тогда движок появляется на несколько секунд, ожидая пока пользователь не воспользуется им.
* Нажатием на полосу прокрутки. При каждом нажатии область отображения сдвигается по документу на одну страницу (по умолчанию), либо к месту нажатия, в зависимости от настроек системы. При постраничном способе область отображения сдвигается на свою ширину, за вычетом одной строки содержимого. Аналогично действуют кнопки Page Up и Page Down.
Если нажать и удерживать кнопку мыши на полосе прокрутки, страницы будут перелистываться до курсора (или пока не будет отпущена кнопка мыши).
Действия с полосой прокрутки доступны, пока она видна. Между появлением и скрытием полосы прокрутки проходит несколько секунд, если не воспользоваться ей.
Чаще всего пользователь сам управляет прокруткой документа, но иногда прокрутка происходит автоматически, когда область выделения выходит за пределы активного окна. Подробнее о автоматической прокрутке см. «Enabling Scrolling» (стр.170).
Перемещение окна
Перемещать окна можно, захватывая за любую часть рамки окна (подробнее о частях окна см. «About Window Appearance and Behavior» (стр. 156)). При перетаскивании окна вместе с ним перемещается и его содержимое. Пользователь может перемещать окна как в пределах рабочего стола, так и между несколькими рабочими столами, если поднести окно к боковой границе экрана.
Если перемещать неактивные окна, удерживая Command, они не становятся активными. Подробнее об активных и неактивных окнах см. «Main, Key and Inactive Windows» (стр. 161).
Перекрытие окон.
Если на рабочем столе несколько окон, они могут перекрывать друг друга. Если нажать на окно, оно перемещается на передний план, не влияя на расположение других окон.
Какое окно будет перекрывать другое зависит от порядка, в котором окна ранее вызывались пользователем. Когда пользователь вызывает неактивное окно нажатием на него, или выбором через меню «Окно», оно выходит на передний план.
Пользователь может вывести на передний план все окна текущего приложения, если выберет соответствующую функцию в меню. При этом окна будут расположены в том же порядке в пределах приложения, но выше всех окон других приложений.
Окна-палитры располагаются выше других окон приложения, но скрываются, как только все окна приложения становятся неактивными.
Пользователь может увидеть все окна открытых приложений, если воспользуется программой «Expose». С её помощью можно увидеть все окна на текущем рабочем столе, либо на других, используя скроллинг. Переключаться между окнами можно с помощью сочетаний клавиш Command+ и Command+Shift+. Если включен полный доступ к клавиатуре, можно использовать сочетания Control+F4 и Shift+Control+F4.
Основные, и неактивные окна, а также окна с фокусом ввода.
Окно может выглядеть по-разному, в зависимости от того, как пользователь обращался к нему. Окно документа или программы, расположенное на переднем плане, на которое обычно сосредоточено внимание пользователя называется основным. В этом окне чаще всего находится фокус ввода, то есть оно принимает команды с клавиатуры. К примеру, если пользователь даст команду на закрытие окна, нажав Command+W, её воспримет окно, в котором находится фокус ввода.
Фокус ввода не всегда находится в основном окне. Иногда он перевеодится в другое окно приложения. К примеру, работая с документом пользователь может вызвать окно инспектора объектов или выбора цвета. В этом случае окно документа остаётся основным, но фокус ввода переключается на окно инспектора объектов или выбора цветов.
Как основное окно, так и окно с фокусом ввода остаются на переднем плане, но команды пользователя принимает лишь окно с фокусом ввода.
И основное окно, и окно с фокусом ввода остаются активными. У активного окна заголовок (и панель инструментов, если она есть) отображается в стандартном цвете. У активного окна без фокуса ввода элементы управления остаются активными, но чистыми.
Неактивные окна — это окна, которые пользователь открыл, но они не расположены на переднем плане. В таких окнах заголовок (и панель инструментов) отображается в более светлых тонах. На рисунке ниже можно увидеть различие между основным, неактивным и окном, принявшем фокус ввода
[Изображение]
Заметьте: заголовок прозрачного окна-палитры, получившего фокус ввода, отображается [с лёгким эффектом отражения] и белым текстом, а у неактивного заголовок более тёмный, а текст заголовка — светло серый. (см. «Transparent Panels» (стр.170))
Полноэкранный режим.
Начиная с версии 10.7 в Mac OS X можно развернуть приложение на весь экран, чтобы полностью погрузиться в работу с приложением. Развёрнутое на весь экран приложение отображается в отдельном рабочем столе.
Следует использовать современный API для полноэкранных приложений. Если в вашем приложении использовался старый механизм полноэкранного режима, следует переписать программу, чтобы можно было воспользоваться преимуществами полноэкранного режима Mac OS X v10.7. Тогда станет возможно помещать приложение в отдельный рабочий стол, между которыми можно переключаться, а также просматривать их состояние с помощью Mission Control. С современным API можно пользоваться всеми преимуществами поддержки этих функций системой, которые будут понятны пользователям. Подробнее о данных программных интерфейсах см. «Implementing the Full-Screen Experience».
Не стоит назначать для полноэкранного режима нестандартную кнопку. Если вы используете API для полноэкранного режима, в правом верхнем углу окна автоматически появляется двухпозиционная (←→ и →←)кнопка полноэкранного режима, сигнализируя о наличии данной функции. Также необходимо включить соответствующую команду в меню «Вид» (подробнее см. «The View Menu (стр.125)). Подробнее о полноэкранном режиме см. «Implementing the Full-Screen Experience»
Следует создавать собственные эффекты для анимации переключения полноэкранного режима, чтобы анимация была более плавной и мягкой, чем заданная системой. В частности, следует удостовериться, что все части окна движутся одинаково плавно, и ни одна из них не задерживается. К примеру, «линия отрыва» программы iCal движется вместе с панелью инструментов, когда программа разворачивается на весь экран.
Элементы заголовка окна
У каждого окна за редкими исключениями должен быть заголовок, только в полноэкранном режиме он не виден.
В строке заголовка должно отображаться только перечисленные 4 элемента: название окна, кнопки управления окном, кнопка полноэкранного режима и значок документа (в окнах приложений, работающих с файлами). Чаще всего напрямую изменять можно лишь название окна; остальные элементы строки заголовка управляются операционной системой, в зависимости от заданных свойств окна.
Название окна.
Название окна располагается посередине строки заголовка. Если оно не помещается в строке заголовка, оно обрезается, и в конце добавляется многоточие.
Давайте окнам привычные имена. В назваии окна документа должно быть имя открытого файла, а в главном окне приложения — название приложения. Заголовок палитры должен указывать на её назначение, например «Media» или «Layout».
Можно менять заголовок окна в зависимости от контекста. Например, это может понадобиться если пользователь изменил содержимое окна. К примеру, заголовок окна-инспектора Keynote показывает выбранный пользователем элемент.
Части заголовка следует разделять длинным тире (—), отделённым от слов пробелами с двух сторон. К примеру, если пользователь выбрал почтовый ящик в программе Mail, в заголовке окна просмотра отображаются последовательно имя аккаунта и имя почтового ящика. Если пользователь открыл сообщение в отдельном окне, заголовок сообщения содержит имя сообщения и имя аккаунта.
Не следует помещать в заголовок окна путь к файлу. В заголовке окна должно быть лишь имя документа, а также если этого требует пользователь — и расширение. Путь к файлу должен отображаться в специальном элементе — строке пути (см. «Path Control» (стр.251).
Кнопки управления окном.
Кнопки «Закрыть», «Свернуть» и «Раскрыть» составляют группу кнопок управления окном, обязательную для всех окон, за исключенем сообщений и модальных диалогов.
В окнах документов и приложений всегда должны быть активными кнопки закрытия и сворачивания (подробнее о них см. «Closing Windows» (стр.188) и «Minimizing and Expanding Windows» (стр.187)). Кнопка раскрытия окна нужна, если размер окна можно изменять (см. «Resizing and Zooming Windows» (стр. 186)).
У палитр должна быть только кнопка «Закрыть», потому что сворачивается и скрывается палитра только тогда, когда сворачивается или становится неактивным основное окно.
Кнопки управления окном можно делать неактивными, но не скрывать. Исключение — окна палитр, где отображается лишь кнопка закрытия окна (подробнее см «Panels» (стр 195).
Ниже представлены варианты отображения группы кнопок управления окном (в том числе для сообщений и модальных диалогов).
x+-
xoo
ooo - Сообщения и модальные диалоги
Заметьте, что в приложениях, не работающих с документами в кнопке закрытия может быть точка, сигнализирующая о несохранённых изменениях. В приложениях, работающих с файлами такая точка требуется реже, потому что в них используется функция автосохранения (подробнее см. Auto Save and Versions» (стр. 64)).
Кнопка раскрытия на весь экран
Если используется стандартный пакет AppKit и приложение разрешено разворачивать на весь экран, в правом верхнем углу окна появляется кнопка полноэкранного режима.
--
Нажимая на кнопку полноэкранного режима пользователь может развернуть окно на весь экран и вернуть его к обычным размерам. Подробнее см. «Allow Users to Go Full Screen (if Appropriate)» (стр. 40).
Значок документа и меню версий.
В заголовке окна документа может располагаться значок документа, который появляется сразу после того, как документ был сохранён в первый раз. Если включена опция автосозранения, появляется также меню версий, позволяющее просмотреть список старых версий документа.
Значок документа — небольшой значок, указывающий на его тип. Если нажать и удеривать кнопку мыши на это значке, можно им манипулировать. К примеру, перетащив значок документа на окно электронного письма, можно присоединить файл как вложение.
--
Если нажать на этот значок, удерживая Command, можно увидеть путь к документу. (Если конечно не назначить на это действие собственное меню). Учитывая, что Mac OS X — это многопользовательская ОС, путь может быть необходим, чтобы не перепутать документы разных пользователей. К примеру, ниже показан документ в окне Preview, и виден путь к нему, включая имя документа, папки, в которые он вложен в том числе домашнюю папку и корень файловой системы.
Меню версий даёт пользователю в том числе запретить изменение документа неавторизованными пользователями, продублировать, вернуть к другой версии, а также просмотреть все предыдущие версии. Возможные состояния документа: правится, заблокирован, или — реже — не сохранён. На рисунке ниже документ, открытый в TextEdit, где видно, что документ сохранён, с тех пор редактировался и теперь у него есть более старые версии.
--
Панель инструментов.
Панель инструментов позволяет расположить на ней наиболее часто используемые команды приложения. К примеру, стандартная панель инструментов Mail включает в себя команды просмотра, правки и организации сообщений электронной почты.
Пользователи пользуются панелью инструментов достаточно часто, но когда окно развёрнуто на весь экран, её можно скрыть на время, пока она не нужна. К примеру, в Preview в полноэкранном режиме панель инструментов скрыта, так как пользователю нужно лишь просматривать документ, а не комментировать. Если панель инструментов скрыта, она должна появляться вместе со строкой меню когда курсор касается верхней границы экрана.
---
Так как в панели инструментов располагаются наиболее часто используемые команды, она становится очень важной частью интерфейса пользователя. Данное руководство поможет разрабатывать панели инструментов, которые которые сделают вашу программу удобнее.
Заметьте: панели инструментов, которые расположены в окнах-палитрах и окнах свойств выглядят и работают иначе, нежели панели инструментов в обычных окнах. О палитрах подробнее можно узнать в разделе «Panels» (стр. 195), а об окнах свойств — в разделе «Preferences Windows» (Стр. 206).
В панелях инструментов должны располагаться команды, которые нужны наиболее часто. Определить, какие команды нужны чаще всего поможет ментальная модель (см. «Mental Model» (стр. 26)).
Располагайте команды панели инструментов в соответствии с основными задачами вашего приложения. Наиболее часто используемые команды лучше расплагать в левой части панели инструментов, так как там они наиболее нужны (за исключением версий программ для языков, требующих письма справа налево). Понятие «Наиболее нужные» можно толковать по-разному для разных программ. В одних программах, «нужность» пропорциональна частоте использования, в других — зависит от важности, значения, или другой характеристики в иерархии объектов. На рисунке ниже изображены возможные варианты расположения команд на панели инструментов.
Частоиспользуемые>Редкоиспользуемые
Важные>неважные
Высокий уровень>низкий уровень
По возможности следует объединять команды в группы, и уже их распределять по панели в порядке важности. Иногда команды можно объединить в группы по назначению, например, команды работы с параграфами, списками и таблицами. В этом случае команды внутри группы следует распределять согласно важности, или частоте использования, и по тем же критериям размещать группы на панели инструментов.
К примеру, ниже приведена стандартная панель инструментов Keynote. В ней команды сгруппированы по функциям, а у каждой группы есть захват для возможности перемещения группы по панели. На рисунке видна часть этих групп.
--
Не следует использовать в панели инструментов элементы управления в стиле Aqua. Они плохо смотрятся на ней. Вместо них следует использовать специальные кнопки, предназначенные для панели инструментов, в том числе выпуклые кнопки (наподобие показанной ниже кнопки «быстрый поиск» с панели инструментов Finder-а). Подробнее см. Window-Frame Controls» (стр. 225).
--
Важно: не следует также использовать кнопки, предназначенные для панели инструментов в основной области окна. Эффекты прозрачности на этих кнопках оптимизированы для панели инструментов, а не для основной области окна, где они будут выглядеть, как неактивные кнопки.
Следует убедиться, что назначение элементов панели инструментов достаточно ясно для пользователя. Хорошо, когда пользователь сразу догадывается о назначении элемента управления, не экспериментируя с ним и не прибегая к справке. Поэтому для стандартных действий, таких как меню действий или быстрого просмотра, лучше использовать стандартные системыне значки такие, как * или <о>. Пользователи, знакомые с этими значками, сразу догадаются об их назначении, а разработчику не нужно будет рисовать лишние значки. (подробнее о системных значках см. «System-Provided Icons» (стр 303)).
Внимание: используя системные значки нужно использовать их по назначению. К примеру, значок * должен располагаться только на кнопке «Действия», а не на кнопке «Собрать», или «Дополнительно».
Если необходимо, можно использовать свои значки для кнопок панели инструментов. Подробнее см. «Designing Tollbar Icons» (стр 108).
Не следует располагать на панели инструментов различные элементы-переключатели. Когда пользователь выбирает команду на панели инструментов программы или документа, тот подсвечивается, и происходит какое-то событие, к примеру, открывается новое окно, происходит переключение между различными способами отображения, выводится меню, вставляется или удаляется объект. Так как нажимая на кнопку пользователь ожидает какого-то события, не следует назначать на неё изменение состояния. Есть из этого правила исключения, такие как кнопка переключения режимов отображения в Finder-е, позволяющая выбрать способ отображения файлов в окне.
---
Каждая команда панели инструментов должна быть доступна из меню. Пользователь может помещать в панель команды по своему усмотрению (правда некоторые функции могут быть скрыты), и панель инструментов не должна становиться единственным способом доступа к командам.
Заметье, что обратное утверждение неверно: не все команды меню можно помещать в панели инструментов, но все команды с кнопок панели инструментов должны быть доступны из меню.
Следует разрешать пользователю скрывать и показывать панель инструментов. Пользователь может скрыть её, чтобы она не отвлекала его, или чтобы оставить больше место под остальные элементы. (Заметьте, что в полноэкранном режиме панель инструментов скрывается автоматически). Команды управления расположены в меню «Вид» (подробнее см. «The View Menu» (стр.125)).
Следует разрешать пользователю изменять список команд в панели инструментов. По-умолчанию панель должна содержать в себе команды, необходимые большинству пользователей, но не следует запрещать пользователю помещать в него команды, необходимые лично ему. К тому же, следует разрешать выключать подписи к кнопкам, или значки (по-умолчанию подписи и значки включены). В меню «Вид» должна быть функция «Настройка панели инструментов» (см. «The View Menu» (стр. 125)). И хотя можно изменять размер кнопок панели инструментов, большинству пользователей это не нужно (если же вы решили поддержать данную функцию, вам нужно несколько комплектов значков разных размеров).
Также можно включить контекстное меню для панели инструментов. В нём следует располагать команды для настройки контекстного меню
Не следует располагать на панели инструментов особенное контекстное меню. Пользователь, вызывая контекстное меню в любом месте панели инструментов ожидает видеть команды его настройки. Вызывая контекстное меню в заголовке окна документа пользователь должен видеть путь к нему. Других контекстных меню в пределах заголовка окна и панели инструментов быть не должно. Если нужно меню для выбранных в окне объектов, используйте кнопку «Действия» (подробнее см. «Action Menu» (стр.215)).
Если нужно, добавьте возможность доступа к панели инструментов «в одно нажатие». Эта функция позволяет пользоваться элементами управления даже когда окно неактивно. Можно включить функцию активации «в одно нажатие» для любой группы команд в панели инструментов. Эту функцию желательно включать для команд, которые не вносят необратимых изменений, и при этом могут быть нужны даже когда пользователь работает с другим окном. Подробнее см. «Enabling Click-Through» (стр. 163).
Работа с полосами прокрутки
Прокрутка применяется в разных приложениях очень часто. Следуйте данным рекомендациям, и они помогут включить удобные и понятные полосы прокрутки со всеми преимуществами прозрачных и скрывающихся полос прокрутки Mac OS X v10.7
Не следует использовать устаревший механизм полос прокрутки. В Mac OS X v10.7 по-умолчанию включены прозрачные полосы прокрутки. Пользователь может изменить их отображение в настройках системы, поэтому не следует навязывать пользователю свой вариант полос прокрутки. Не следует также располагать на полосе прокрутки собственные значки состояний или элементы управления, так как они потребовали бы включения устаревшего механизма полос прокрутки.
Пока видны полосы прокрутки, содержимое окна должно быть неподвижным. Полосы прокрутки в Mac OS X v10.7 по-умолчанию не видны, и содержимое документа отображается под ними. Иначе нарушается порядок расположения содержимого окна и пользователь может запутаться
Следует помогать пользователю ориентироваться в документе, когда он прокручивается. Так как в Mac OS X v10.7 полосы прокрутки по-умолчанию не видны, пользователь должен понять, что содержимое окна выходит за его пределы. К примеру, в таблице или в списке можно отображать нижнюю строку «обрезанную» нижней границей окна. Благодаря этому пользователь поймёт, что список простирается за нижнюю границу окна.
Не думайте, что нужно обязательно показывать, что текст выходит за пределы окна обязательно обрезая нижнюю строку. Помните, что полосы прокрутки — это понятный и недеструктивный интерфейс, и пользователь не побоится попробовать им воспользоваться. К примеру, большинство пользователей видя окно, заполненное текстом с верху до низу скорее всего попробуют прокрутить его, проверив, есть ли текст ниже границы окна.
Проверяйте, что важные элементы пользовательского интерфейса не перекрываются полосами прокрутки. Может случиться, что для некоторых частей пользовательского интерфейса придётся запретить возможность прокрутки. В Mail, к примеру, метки непрочитанного сообщения покидают своё место когда появляется полоса прокрутки, чтобы не создавать визуального шума. Если вы хотите сделать что-то подобное, помните, что ширина полосы прокрутки обычно составляет 10 пикселей (или 8 пикселей у малой полосы прокрутки). Так что не следует располагать важных элементов управления ближе 10 пикселей к краю окна (или 8 пикселей при использовании малой полосы прокрутки).
Необходимо правильно подобрать цвет полосы прокрутки под интерфейс программы. Если интерфейс программы достаточно тёмный, полосу прокрутки следует сделать светлее, чтобы она была лучше видна. Можно выбрать светлую, тёмную или стандартную полосу прокрутки. К примеру, на рисунке ниже — полоса прокрутки стандартного цвета.
--
Следует понимать, как будет вести себя полоса прокрутки при нажатии на неё. Движок может переместиться на одну страницу (по-умолчанию), либо до курсора, в зависимости от настроек системы. (см. «Scrolling» (стр. 137)). Под страницей понимается содержимое прокручиваемого окна от верхней до нижней (или от левой до правой) границы за вычетом одного объекта отображаемого содержимого. Этот объект можно выбирать, что позволит сделать прокуртку удобнее. К примеру, это может быть строка текста, один значок, или область изображения определённой ширины. Помните, что кнопки Page Up и Page Down похожим образом перелистывают содержимого окна на одну страницу вверх или вниз.
Если пользователь нажимает на полосу прокрутки, не отпуская кнопку мыши, содержимое окна последовательно перелистывается, пока движок полосы прокрутки не достигнет курсора, либо пользователь не отпустит кнопку мыши.
Если необходимо, прокручивайте содержимое окна в автоматическом режиме. В большинстве случаев пользователь должен сам контролировать прокрутку, но в некоторых случаях следует делать это за него:
* Когда после выполнения какой-либо операции текстовый курсор или выделение перемещается к следующему объекту. К примеру, когда работает поиск по тексту, и найдена ещё одна строка, документ следует прокрутить, чтобы найденная строка была видна.
* Когда пользователь вводит что-либо с клавиатуры, а курсор ввода расположен за пределами видимой области окна. К примеру, пользователь установил курсор ввода на одной странице, а затем прокрутил документ к другой, документ должен вернуться к странице, где производился ввод, чтобы пользователь мог видеть изменившийся текст.
Из приложения можно задавать место, куда документ будет прокручен.
* Когда пользователь выделяет объекты курсором мыши и курсор уходит за пределы окна, нужно прокручивать документ в том направлении, в котором находится курсор
* Когда пользователь выбрал что-то в документе, затем прокрутил окно на другую часть документа, а потом решил произвести какие-то действия над выделенными объектами, нужно вернуть прокрутку к месту, где находятся выделенные объекты, чтобы пользователь видел, что эти команды будут применены именно к этим объектам.
Следует прокручивать документ только, если автопрокрутка необходима. Чтобы пользователю было удобнее пользоваться ориентироваться в документе, вмешательство автоматической прокрутки должно быть минимальным. К примеру, если часть выделения во при выполнении команды видна, не следует прокручивать документ, чтобы выделение было видно целиком. Если выделение можно увидеть, прокрутив документ в одном направлении, не следует его прокручивать в другом.
Если возможно, следует показывать выделение вместе с окружающими его объектами, когда сработала автопрокрутка. Если в окне будет видно только выделенная область, пользователь может сложнее запомнить её положение по отношению к остальным объектам.
Подумайте об использовании малой полосы прокрутки, если это понадобится. Если свободного места мало, можно использовать малые полосы прокрутки в окнах-палитрах, а также в других окна. Заметьте, что если используются малые полосы прокрутки, другие элементы управления следует выбирать также меньших размеров.
Не следует использовать полосы прокрутки там, где нужен ползунок. Ползунок нужен для изменения значения параметра, а полоса прокрутки — для навигации по документам или спискам. Подробнее о ползунках см. «Slider» (стр. 223).
Панель поиска и фильтрации содержимого
Панель поиска позволяет найти элемент по определённому запросу, или отфильтровать содержимое по заданным критериям. По умолчанию эта панель не видна, пока пользователь не запросит поиск или подобную команду. К примеру, на рисунке ниже с помощью панели поиска пользователь ищет слово на веб-странице, открытой в Safari.
--
Следует использовать панель поиска, чтобы помочь пользователю сузить рамки поиска, или отфильтровать значения. Панель поиска можно включать, чтобы пользователь мог уточнить запрос поиска, не теряя фокус ввода. Если пользователю необходимо предоставить способ для навигации, выбора групп значений или данных, содержащихся в окне, следует использовать боковую панель (см. «Providing a Soruce List» (стр. 152)). На рисунке ниже изображено окно программы Dictionary, где с помощью панели поиска можно отфильтровать вывод по источнику (среди них: толковый словарь, словарь синонимов и словарь из справки Apple).
--
Если необходимо, следует позволять пользователю уточнить границы поиска или фильтрации. Пользователь может добавлять новые правила, чтобы сузить рамки критериев фильтрации содержимого, установленных в строках фильтрации ниже панели поиска. В строках фильтрации могут быть поля для ввода текста и кнопки выбора области поиска с закруглёнными углами (используются для выбора и сохранения критериев поиска). На рисунке ниже видно окно Finder-а с поиском, где можно нажать кнопку «Добавить», чтобы увидеть новую панель фильтра, где можно выбрать ещё одно условие фильтрации, чтобы сузить область поиска.
--
В панели поиска можно использовать и другие удобные элементы управления. Кроме строки поиска можно добавлять другие элементы, предназначенные для использования в панели поиска: упрощённую кнопку и кнопки со скруглёнными углами. Упрощённая кнопка показывает область поиска и категории, а с помощью кнопок со скруглёнными углами можно управлять функциями поиска. Подробнее см. «Scope Button» (стр. 202).
Следует предусмотреть сохранение поискового запроса. Так можно помочь пользователю снова использовать уже введённый поисковый запрос, даже спустя длительное время.
Боковая панель
Боковая панель (или список мест) — это область окна, чаще всего всего отделённая от остальной части окна линией изменения размера, с помощью которой можно выбирать объекты или перемещаться между ними (подробнее о линиях изменения размеров см. «Split View» (стр.241)). Обычно, когда пользователь выбирает объект в боковой панели, это отражается на остальной части окна.
Боковую панель можно сделать основным элементом навигации в приложении, как это сделано в Finder-е и Mail-е, или просто для выбора какой-либо функции в части приложения, как это сделано в окне настройки сети. В зависимости от выбранного назначения панели могут быть различия в их внешнем виде. В том числе:
* Если боковая панель является основным элементом навигации, или выбора функции, она обычно отображается с синим фоном.
* Если же она используется для выбора функции окна, а не всего приложения, фон панели должен быть белым.
К примеру, в Finder-е боковая панель необходима для навигации по файловой системе, потому имеет синий фон
--
О том, какими должны быть значки в боковой панели, чтобы быть похожими на такие из боковой панели Finder-а, см. «Designing Sidebar Icons» (стр. 97).
На рисунке ниже изображена боковая панель окна настройки сети, позволяющая выбрать сетевой интерфейс, который необходимо настроить, и у неё белый фон.
Следуйте этим указаниям, чтобы построить удобную боковую панель.
Боковая панель должна позволять пользователю абстрагироваться от файловой системы. Она должна оградить пользователя от необходимости знать тонкости организации хранения файлов и документов, а также предоставлять возможность работать с настраиваемыми под конкретные приложения контейнерами для хранения необходимых данных. Боковая панель может пригодиться в однооконных приложениях, которые не работают с документами, но позволяют пользователю создавать содержимое и управлять им. К примеру, iTunes позволяет пользователю не учитывать расположение песен и других аудио- и видеороликов, так как работает с библиотеками и списками воспроизведения. Так же и iWeb позволяет сосредоточиться на создании сайтов, а не над управлением файлами.
В частности, боковую панель можно использовать, когда:
* Основной его задачей является поиск и выбор содержимого
* Важнейшей ментальной моделью являются коллекции объектов (см. «Mental Model» (стр.27)).
* Основным способом навигации является иерархия
* Иерархическое расположение объектов позволяет снизить сложность работы с ними
Если возможно, следует помещать заголовки внутрь боковой панели. У боковой панели в основном нет таких заголовков, как у обычных списков, но есть возможность указывать заголовки для групп объектов или данных. К примеру, в боковой панели Finder-а отображаются несколько групп местоположений, таких как «Устройства», «Общие файлы» и «Места»
--
Не следует размещать в боковой панели объекты с иерархией, большей двух уровней. Если же это понадобится, лучше использовать несколько уровней боковых панелей, а не скрывать уровни иерархии под раскрываемыми треугольничками в одной боковой панели. Если же приложение завязано на объектах с многоуровневой иерархией, следует использовать список, наподобие списка файлов, а не боковые панели
Следует правильно устанавливать фон для боковой панели. Если в программе только одна боковая панель, которая используется для навигации и выбора объектов, фон в ней должен быть синим. Во всех прочих случаях фон должен быть белым. В частности, белым должен быть фон, если
* В окне более одной боковой панели
* Боковая панель располагается в окне настроек
Если возможно, пользователю следует разрешить изменять состав боковой панели. Лучше всего, когда пользователь сам решает, какие контейнеры объектов важнее. Следует также позволить пользователю использовать Spotlight для использования смарт-контейнеров.
Подробнее об использовании Spotlight читайте в «Spotlight Overview»
Если необходим интерфейс, чтобы добавлять, удалять, управлять, или получать информацию об объектах в боковой панели, можно установить специальные кнопки в нижней части боковой панели. Они будут хорошо смотреться возле нижнего края окна (подробнее см. «Gradient Button» (стр. 203)).
Можно использовать всплывающее окно-«пузырь», а не боковую панель. Если боковая панель нужна не для доступа к основным функциям приложения, можно использовать окно-«пузырь», так как оно будет видно только когда оно нужно пользователю. Подробнее см. «Popovers» (стр.165).
Нижняя панель
Нижняя панель располагается у нижнего края окна, ниже основного содержимого окна. Она редко используется в современных приложениях для Mac OS X. Если в более ранней версии приложения она использовалась, лучше перестроить интерфейс, чтобы её нагрузка легла на другие элементы, такие, как панель инструментов. При создании нового приложения лучше отказаться от использования нижней панели.
Обычно элементы нижней панели используются достаточно часто, но реже, чем элементы панели инструментов. К примеру, нижняя панель в iChat позволяет добавлять друзей, писать сообщения, звонить, в том числе с видео, выбранному другу, в то время как элементы обычной панели инструментов сосредоточены на пользователе приложения
--
Так как нижняя панель является частью рамки окна, она заполняется серым цветом, так же как панель инструментов.
В нижней панели можно располагать также элементы заголовка окна, как обычного, так и уменьшенного размера, но не следует располагать значки, самописные элементы и кнопки в стиле Aqua, предназначенные для основной части окна. Подробнее см. «Window Frame Controls» (стр. 196) — так описаны компоменты, которые можно использовать в нижней панели.
Не следует использовать нижнюю панель для частоиспользуемых команд. Пользователь гораздо реже обращается к нижнему краю окна, чем к верхнему, поэтому важные элементы управления, расположенные внизу пользователю будет сложнее найти.
Следует, пока возможно, использовать только системные значки в компонентах нижней панели. Пользователю они будут гораздо привычнее. Заметьте, что в нижней панели можно использовать текстовые обозначения, например «Правка». Если же требуется нестандартный значок, следует стараться делать его в том же стиле, что и системные (подробнее см. «Designing Toolbar Icons» (стр. 94)).
Важно: системные значки можно использовать только по прямому назначению. К примеру, значок «быстрый просмотр» можно использовать только для быстрого просмотра, но не для изменения масштаба.
Все команды, доступные из нижней панели должны быть доступны и из строки меню. Также в нижней панели не должно быть контекстных меню. Если нужен доступ к командам, относящимся к выбранным пользователем объектам в основном теле окна, следует использовать кнопку «Действия» с системным значком (подробнее см. «Action Menu» (стр. 215)).
Для того, чтобы создать нижнюю панель нужного размера, следует использовать Interface Builder. Если в приложение нужно вставить нижнюю панель, следует выбрать объект «окно» в рабочей области Interface Builder, и открыть инспектор размеров. Можно выбрать большой или малый размер нижнего края во всплывающем меню «Content Border». В большой нижней панели следует использовать обычные элементы управления, а в малой — уменьшенные.
Выезжающие панели
Выезжающая панель представляет собой дочернее окно, выезжающее из основного, которое можно открыть только когда открыто основное окно. Выезжающие панели редко используются в современных приложениях Mac OS X. Если возможно, следует отказываться от них в новых приложениях, а в уже созданных — менять интерфейс так, чтобы исключить их использование.
Обычно на выезжающих панелях располагают частоиспользуемые элементы управления, которые, однако, нужны не всё время. К примеру, в Keynote выезжающую панель использует инспектор построений, чтобы отображать дополнительные сведения о построении.
--
Хотя выезжающая панель похожа на выезжающее окно тем, что она соединена с окном и выезжает при показе, назначение этих элементов различно. Выезжающие окна — это модальные диалоги, в то время как выезжающие панели отображают дополнительные функции. Когда открыто выезжающее окно, оно перекрывает основное и другие функции приложения недоступны, а когда открыта выезжающая панель, все функции основного окна остаются видны и доступны.
Выезжающие панели не слишком часто используются в современных приложениях для Mac OS X, и ещё реже их устанавливают на основном окне приложения. Если в приложении есть выезжающая панель, лучше заменить её на палитру или окно-«пузырь» (подробнее о палитрах см. «Panels» (стр. 168), а об окнах-«пузырях» — в разделе «Popovers» (стр. 165)). Если всё же без выезжающей панели не обойтись, следуйте указаниям из этого раздела
Не следует включать выезжающие панели в полноэкранном режиме. В этом случае она будет выезжать из-за края окна, и для ней просто не будет места.
Следует помещать в выдвижную панель только элементы, которые используются достаточно часто, но должны быть видны не всё время. В отличие от палитр, выезжающие панели остаются видны даже когда окно неактивно (подробнее о палитрах см. «Panels» (стр. 168)).
Не следует использовать выезжающие панели для навигации. Для навигации по иерархическим спискам должна использоваться боковая панель. Подробнее см. «Providing a Source List» (стр. 152).
Если это будет удобно, следует предусмотреть автоматическое раскрытие выезжающей панели при перетаскивании объектов вблизи неё. Обычно для раскрытия и скрытия выезжающей панели нужно нажать на кнопку, или выполнить соответствующую команду. Однако, если в выезжающей панели есть место, куда можно перетащить какой-либо объект, следует открывать её когда пользователь перетаскивает объект вблизи этой панели.
Следует убедиться, что при открытии выезжающая панель не перекрывается краем экрана. Когда выезжающая панель раскрывается, она может появиться из-под левого, правого или нижнего края окна. Если пользователь расположил окно так, что край окна, откуда будет выезжать панель расположен так близко к краю экрана, что не остаётся место для панели, она должна выезжать из-за другого края экрана. Если окно слишком большое, и места нет ни с одной стороны окна, панель придётся перекрывать краем экрана.
Следует убедиться, что выезжающая панель меньше, чем основное окно. Тогда создаётся впечатление, что она выезжает из-под окна. Если размер окна можно менять, размер панели тоже должен меняться так, чтобы это соотношение сохранялось.
Следует предусмотреть автоматическое скрытие выезжающей панели, если пользователь уменьшил её до слишком маленького размера. Пользователь может менять размер этой панели, двигая её внешнюю границу. Когда пользователь передвигает границу так близко к окну, что отображаемые на ней элементы нельзя отобразить целиком, она должна скрываться. К примеру, если в выезжающей панели есть прокручивающийся список, пользователь должен иметь возможность уменьшить размер до границы этого списка. Но если пользователь уменьшил панель до такого размера, что значения в списке сложно различить, панель должна скрыться. Если же пользователь просто изменил размер панели, тот должен сохраниться и восстановиться при повторной загрузке приложения.
Следует запоминать состояние панели, когда окно становится неактивным, или его закрывают. К примеру, если она была раскрыта перед декативацией или закрытием окна, при последующей активации она должна раскрыться. Когда пользователь сворачивает окно, выезжающая панель должна скрыться, но когда пользователь снова разворачивает окно, и выезжающая панель должна вернуться.
Опасно устанавливать выдвижные панели на основное окно программы. В этом случае, не следует затенять элементы управления, когда окно получило фокус, и наоборот. Когда используется доступ только с клавиатуры, все элементы, расположенные на выдвижной панели должны быть включены в компоненты окна, чтобы пользователь мог получить к ним доступ через Tab.
Использовать следует только элементы управления в стиле Aqua. Можно располагать элементы управления согласно назначенных на них функций.
Открытие окон
Пользователь ожидает открытия окна, после:
* Двойного щелчка на значке документа в Finder-е
* Двойного щелчка на значке приложения
* Выбора документа в Finder-е и выбора пункта «Открыть» в его меню «Файл» (или нажатия Command+O)
* Выбора файла в диалоге открытия
* Выбора команды «Создать» в меню «Файл»
* Нажатия на значок приложения в Dock (Если не открыто ни одного окна)
В Mac OS X v 10.7 большинство пользователей после входа в систему ожидают увидеть открытыми те же окна, что были открыты при выходе. Для этого нужно удостовериться, что опция «Resume» включена. Подробнее об этой опции см. «User Interface Preservation» в Mac OS X Application Programming Guide (Заметьте: пользователь может и выключить эту опцию в настройках системы)
Следует убедиться, что страницы в окнах отображаются так, как этого ожидает пользователь. В первую очередь, пользователь ожидает при повторном открытии приложения выбранными те же страницы, какие были выбраны при открытии окна в прошлый раз. В частности, в окне должны быть открыты те же страницы, что и были открыты ранее всё время, пока приложение открыто, но стоит пользователю выйти из приложения, вкладки должны вернуться к прежнему состоянию.
В окнах с несколькми панелями инструментов, если они предназначены для того, чтобы выбирать одно из нескольких возможных представлений (например, список избранных ссылок), по умолчанию должны отображаться все элементы, а не какая-то одна вкладка. Если же в панели доступны все возможные варианты, по умолчанию должна быть раскрыта та вкладка, которая была выбрана в последний раз. К примеру, при открытии настроек системы, все возможные варианты видны, но выбрана только вкладка «Mail», потому что её выбрал пользователь перед закрытием программы.
Следует давать подходящие названия открытым окнам. Когда пользователь открывает существующий документ, в заголовке окна должно быть его название, причём расширение должно быть показано или скрыто по желанию пользователя. Не следует отображать путь к файлу в заголовке окна. Подробнее см. «Naming New Windows» (стр. 159)
Именование новых окон
Название большинства окон включает в себя имя приложения и имя документа, или имя его особой функции, например, «Инспектор». Название окна помогает пользователю быстро найти окно и определить тип его содержимого. Следуйте указаниям в данной главе, чтобы давать правильные названия окнам.
Основному окну приложения, не работающего с документами нужно давать имя приложения. Если у приложения есть короткое имя, следует использовать его (подробнее см. «The Application Menu» (стр. 116)).
Новый документ должен называться «безымянный». Писать «безымянный» нужно со строчной буквы, чтобы было очевидно, что в окне — безымянный документ. Не следует после слова «безымянный» ставить цифру «1», так как пользователь может и не создавать новых безымянных документов.
А в следующих открытых окнах к слову «безымянный» нужно добавлять номер, например «безымянный 2» и т.д.
--
Когда пользователь закрыл все окна безымянных документов, новый документ должен снова называться «безымянный», потом — «безымянный 2» и т.д.
Положение и перемещение окон
Когда приложение открывает окно, нужно решить, в каком месте экрана оно должно быть и какого размера. Нужно дать подходящий ответ, когда пользователи перемещают окна приложения
Следует располагать окно нового документа в середине экрана по горизонтали и быть такого размера, чтобы отобразить максимально возможное количество информации. Верхняя часть окна документа не должна быть перегорожена строкой меню (или панелью инструментов, если она расположена под строкой меню). Последующие окна следует открывать на 20 пикселей правее и на 20 пикселей ниже предыдущего. Следует убедиться, что новое окно не перекрывает Док. (подробнее о Доке см «The Dock» (стр. 62)).
В целом, окна программ, не работающих с документами тоже следует располагать по центру. По вертикали положение окна тоже должно быть визуально отцентрировано: расстояние от нижнего края окна до Дока (если он расположен внизу экрана) должно быть в два раза больше, чем расстояние от верхней границы окна до строки меню. Новые окна должны открываться ниже и правее на 20 пикселей. Следует убедиться, что окна не перекрывают Док.
--
Если возможно, повторно открывать окно следует в том месте, где его закрыл пользователь и в том же размере. Пользователь ценит возможность определить, где будет открыто окно. Перед повторным открытием следует убедиться, что размер и положение окна подходит под текущее разрешение экрана, которое пользователь мог изменить после последнего открытия окна. Если же невозможно восстановить и размер, и положение окна, лучше несколько уменьшить окно, чтобы оно поместилось на экране. Если невозможно вернуть размер, или положение, следует постараться оставить окно на том дисплее, где будет видно больше содержимого окна. Если пользователь перемещал окно на другой дисплей, а позже открыл его на при наличии только одного, следует также сохранять размер окна, если возможно.
Заметьте, что когда пользователь открывает, перемещает и закрывает окна документов не делая других изменений, сохранять нужно только новое положение окна, но не время последнего изменения файла.
На системах с несколькими экранами первое окно должно открываться на том экране, где расположена строка меню. Если пользователь не перемещает это окно, новые окна должны располагаться каскадом вниз-вправо относительно открытого. Если пользователь переместил окна, новые окна следует открывать там, где открытых окон больше.
--
В частности, не следует открывать окна, чтобы они располагались на нескольких экранах. Начальное положение окна должно быть таким, чтобы оно располагалось только на одном экране. Если пользователь открывает несколько окон на многоэкранной системе, следует продолжать располагать окна на одном экране, пока край одного окна не подберётся к краю экрана.
Не следует позволять пользователю перемещать окно так, чтобы он потом не мог переместить окно обратно. К примеру, не следует позволять располагать заголовок окна позади Дока, или на второй дисплей пока он отключен.
Изменение размера окон
Можно задавать положение и размер окна при открытии, так называемое стандартное положение. Если пользователь изменит положение или размер окна более, чем на 7 пикселей, новое положение и размер будут называться пользовательским положением. Пользователь может переключаться между стандартным и пользовательским положением, если он будет нажимать на кнопку «раскрыть» в заголовке окна. Следуйте указаниям в этом разделе, чтобы можно было пользоваться этими функциями.
Следует выбирать стандартное положение окна так, чтобы наилучшим образом отображались все элементы окна. К примеру, окно документа должно быть открыто так, чтобы отображать наибольшую часть содержимого документа. Не следует устанавливать стандартный размер окна по ширине экрана, а наоборот, следует делать его удобным для использования приложения. Если уместно, можно включить возможность перехода в полноэкранный режим, если для работы нужно много места на экране.
Следует подгонять стандартный размер под содержимое окна. Пользователь не может самостоятельно изменить сатндартный размера окна, но само приложение может, и не требует для этого дополнительных настроек. К примеру, текстовый процессор может подгонять стандартный размер под размер документа, который в свою очередь определяется с помощью диалога «Настройки страницы».
На нажатие кнопки раскрытия следует откликаться наиболее удобным способом. Когда пользователь нажимает на кнопку «раскрыть» в окне в пользовательском положении, оно должно переходить в стандартное. В частности, придание окну наименьшего возможного размера можно определить как стандартный размер, если окно определённое время оставалось развёрнутым на ширину экрана. Кнопка «развернуть» не должна раскрывать окно на всю ширину экрана даже если пользователь вручную выставил такую ширину.
Если пользователь раскрывает окно при использовании многоэкранной системы, стандартное положение окна должно предполагать нахождение его там, где находится большее количество окон, а не обязательно на том окне, где расположена строка меню. Если пользователь перемещает окна на другой экран, стандартное положение может предполагать разные экраны в разное время. Стандартное состояние для любых окон должно работать и при одном подключенном дисплее.
Окно после нажатие на кнопку «Развернуть» не должно перекрывать Док. Пользователь должен всегда иметь возможность пользоваться и окнами, и доком. Подробнее о Доке см. «The Dock» (стр. 62).
Как сворачивать и разворачивать окна
Когда пользователь нажимает на кнопку «свернуть» в заголовке окна, дважды щёлкает по заголовку, либо нажимает Command+M, окно должно скрыться в Док. Значок окна должен оставаться в Доке, пока пользователь не нажмёт на него, либо, если у приложения только одно окно, пока пользователь не нажмёт на значок окна приложения. (подробнее о Доке см. «The Dock» (стр. 62)). Действие, обратное нажатию на кнопку «свернуть» называют «развернуть».
Нажатие на значок в Доке должно приводить к появлению окна — окна документа, или другого требуемого окна — и оно должно стать активным. Если в приложении, работающем с документами не открыто ни одного документа, при нажатии на его значок в Доке должен быть создано новый документ под названием «безымянный».
Когда пользователь нажимает на значок приложения в Доке, приложение, окно которого было открыто должно принять фокус ввода, а свёрнутые окна должны оставаться в Доке. Если все окна приложения свёрнуты, а пользователь нажал на значок приложения в Доке, должно раскрыться последнее свёрнутое окно. Если не открыто ни одного документа, должно быть открыто новое окно. (Если приложение не работает с документами, должно появиться его основное окно)
Закрытие окна
Пользователь может закрыть окно, выбрав в меню «Файл» команду «Закрыть», нажав Command+W, или на кнопку закрытия в заголовке. Следуйте указаниям в этом разделе, чтобы окна в приложении закрывались так, как этого ожидает пользователь.
Следует использовать современные API для хранения состояния окна. Вне зависимости от того, используется ли функция восстановления состояния окна, необходимо сохранять размер и положение окна на экране и восстанавливать его после повторного открытия окна (или приложения). Подробнее об использовании современных API см. «User Interface Preservation» в Mac OS X Application Programming Guide
В основном после закрытия всех окон приложения нужно закрывать и само приложение. Если приложение не работает с документами, пользователь ожидает выхода из приложения по закрытию основного окна. Но некоторые приложения имеет смысл не выгружать из памяти после закрытия основного окна, потому что они продолжают выполнять какие-либо действия. К примеру, iTunes будет продолжать играть музыку даже если основное его окно закрыто. Если же пользователь закрыл последнее окно в программе, работающей с документами и переключился на другие задачи, приложение желательно выгрузить.
Если при закрытии приложения остались несохранённые данные, следует выводить диалог сохранения файла. Заметьте, при использовании функции автосохранения он выводится автоматически. Диалог сохранения, выводимый при закрытии файла отличается от стандартного вопросом: хочет ли пользователь сохранить изменения? Пользователь может закрыть окно для того, чтобы отказаться от сделанных правок, но если он этого не хочет, он может подтвердить желание сохранить данные, либо нажать «отмена» и не закрывать окно. Заметьте также, что диалог подтверждения сохранения не отображается, если окно было закрыто по другой причине, например, пользователь вышел из программы. В прочих ситуациях следует автоматически сохранять данные, чтобы пользователь мог вернуться к работе позже но с возможностью отменить изменения.
После того, как документ сохранён впервые, диалог подтверждения сохранения выводить не нужно, так как пользователь предполагает, что все изменения будут сохранены без его участия. (подробнее о диалоге сохранения см. «Save Dialogs» (стр. 188)).
Активация в одно нажатие
Для некоторых элементов управления следует предусмотреть возможность их использования даже если окно неактивно, так называемую активацию в одно касание. (Если элементу не назначена данная функция, чтобы им воспользоваться, сначала необходимо, чтобы фокус ввода перешёл на окно, в котором он располагается). Активация в одно нажатие позволит делать некоторые вещи проще, но может запутать пользователя, если он нажал на этот элемент непреднамеренно.
Эта опция не зависит от класса элемента, и доступна для любого из них, в том числе элемента панелей управления. Это также означает, что активацию в одно касание можно применить к любому набору элементов, но не ко всем элементам окна вместе. Следуйте указаниям в этом разделе, чтобы включать эту функцию там где это будет уместно.
Заметьте: поддержка активации в одно касание на самом деле предполагает отключение этой функции для тех элементов, где она не нужна. По умолчанию она включена для всех элементов библиотеки Cocoa.
Следует выключать активацию в одно нажатие для команд, выполнение которых может быть небезопасным, в частности для операций, которые:
* Могут привести к потере данных, и пользователь не сможет их отменить (к примеру, кнопка «Удалить» в Mail
* Сложно или невозможно отменить (к примеру, кнопка «Отправить» в Mail)
* Закрывают диалоговое окно и никак не уведомляют пользователя о выполненном действии (к примеру, кнопка «Сохранить» в диалоге сохранения, которая автоматически перезапишет файл не выводя диалогового окна).
* Меняют текущий контекст (к примеру, выбор нового файла в Finder-е — тогда все операции будут применены к вновь выбранному файлу)
Подобные команды должны откликаться на нажатие мышки только в том случае, если содержащее их окно активно.
Будет безопасно включать активацию в одно нажатие для команд, которые будут требовать у пользователя подтверждения перед выполнением, даже если результат результат их выполнения может привести к потере данных. К примеру, можно включить активацию в одно нажатие для кнопки удаления, если у пользователя будет выбор: подтвердить или отменить выполнение данной команды перед тем, как она будет выполнена.
Следует дважды подумать, прежде чем включать активацию в одно нажатие для команд, которые не запрашивают подтверждение. В частности, следует оценить, насколько может быть опасно ошибочное выполнение этой команды и как сложно потом будет отменить её действие. К примеру, в Mail на кнопке «Удалить» выключена активация в одно касание потому, что сообщение удаляется без запроса подтверждения, что потенциально опасно, а результат сложно отменить. В то время как для кнопки «Создать» эта функция включена, потому что результат не приводит к потере данных и его легко отменить.
Команды, которые не поддерживают активацию в одно касание не должны затеняться, когда окно неактивно. Затенять следует команды, которые в этот момент выполнить нельзя вообще. К примеру, команды «Удалить» и «Пометить, как мусор» в Mail не затеняются, когда окно неактивно, но не поддерживают активацию в одно нажатие.
--
Окна-«Пузыри»
Пузырь — это элемент, появляющийся на короткое время, чтобы предоставить пользователю функции, напрямую относящиеся к какому-либо элементу, такому, как элемент управления, или область на экране. Он появляется, когда нужен пользователю и обычно исчезает, как только действие с его участием завершено. К примеру, iCal отображает пузырь, когда пользователю нужно вписать новую или изменить существующую встречу в календарь.
--
Пузырь располагается поверх окна, содержащего объект, к которому относится, и содержит уголок (который называют также стрелкой, или якорем), указывающий на этот объект. Иногда пользователь может отделить пузырь от объекта-цели, и тогда он превратится в окно-палитру. К примеру, iCal позволяет отделить форму правки задания, чтобы пользователь мог изменять задание, параллельно работая с другими окнами.
--
О том, как добавить окно-«пузырь» в программу, см. NSPopover. Следуйте указаниям в текущем разделе, чтобы использовать окно-пузырь наиболее удобным образом.
Следует использовать пузырь для размещения функций, необходимых в только в определённый момент. Пузырь отлично справляется с несложными задачами, ориентированными на конкретный объект. К примеру, пользователь может выделить в тексте термин, открыть контекстное меню, и выбрать в меню словарь терминов, чтобы просмотреть значение термина (а также дополнительную информацию, относящуюся к этому термину) из программы «Dictionary» в открывшемся окне-«пузыре»
--
Так как пузырь будет скрыт как только пользователь закончит взаимодействие с ним, он может сосредоточиться на других задачах и лишний раз не заботиться о наведении порядка на рабочем месте.
Возможно иногда следует использовать окно-пузырь вместо боковой панели, палитры или изменяемых панелей. Его можно использовать вместо этих элементов, чтобы получить более понятный интерфейс. К примеру, пользователю может быть нечасто нужно искать или выбирать объекты в боковой панели окна. Если использовать для этой цели не боковую панель, а окно-«пузырь», можно освободить место в окне для других более нужных элементов интерфейса, относящихся напрямую к задачам пользователя.
Использовать окно-пузырь вместо палитр, содержащих вспомогательную информацию иногда тоже целесообразно, потому что оно гарантированно исчезнет, стоит пользователю нажать в любом месте за его пределами. К примеру, пузырь загрузок в Safari хорош, потому что он не исчезнет, пока пользователь не продолжит взаимодействие с окном Safari.
И ещё пузырь можно использовать, чтобы избавиться от настраиваемых окон в основном окне и сделать интерфейс более стабильным. К примеру, если нужно добавить в палитру вторую временно появляющуюся функцию, которую пользователь может скрыть или вызвать, вместо этого можно поместить её в пузырь. Так как пузырь появляется только когда он нужен, внешний вид окна не изменится. Пользователю обычно удобнее пользоваться окнами, которые изменяются не слишком часто.
Следует разрешать пользователю отделять пузырь от объекта, если нужно. Пользователь может оценить возможность преобразовать пузырь в палитру, если он хочет увидеть другое окно продолжая видеть содержимое пузыря.
Не следует использовать пузырь как предупреждение. Это совершенно разные элементы. Для одних вещей пользователь собирается увидеть пузырь, он не хочет видеть предупреждение. Если пузыри и предупреждения чередуются, различия между ними стираются и пользователь может запутаться. В частности, если пузырь используется, чтобы сообщить о серьёзной проблеме, или чтобы сообщить, что бездействие может привести к потере данных, пользователь может нажать за пределами пузыря и он пропадёт до того, как пользователь прочитает его содержимое. Если нужно предупредить пользователя о важном событии (которое случается не слишком часто), следует использовать окно предупреждения, см. «Alerts» (стр. 191).
Если возможно, уголок пузыря должен гарантированно указывать на элемент, к которому он относится. Стрелка поможет вспомнить, при взаимодействии с каким объектом появился пузырь, с каким объектом он связан. Лучше использовать стандартный вид пузыря, который определяется по константе NSPopoverAppearanceMinimal. Можно использовать вид «HUD», но его следует использовать для окон, оформленных в тёмных тонах, или работающих с мультимедиа.
Не следует использовать в пузырях кнопку закрытия. Пузырь должен автоматически закрывать, когда он не нужен пользователю, что помогает ему сосредоточиться на выполнении его работы и не беспокоиться о наведении порядка на рабочем столе. К примеру, когда пользователь закончил исправлять задание в iCal, он может нажать «Готово», или нажать за пределами пузыря, чтобы закрыть его. Вне зависимости от выбранного метода, изменение будут сохранены.
Следует выбирать набор команд в зависимости от контекста, в котором открыт пузырь. Пузырь может быть закрыт в ответ на действия пользователя (кратковременное взаимодействие), в ответ на взаимодействие пользователя с родительским элементом (полукратковременное взаимодействие), или по способом, определяемым в программе. Если пользователю нужно выбрать какой-то элемент в пузыре, может быть удобно закрыть его когда пользователь сделает выбор (это и представляет собой кратковременное взаимодействие). Так как тогда пузырь становится похож на меню, пользователю это будет удобно. Если же пузырь используется для выполнения задания, которое требует нескольких действий от пользователя, как в iCal можно редактировать задание, можно использовать полукратковременное взаимодействие, и чтобы закрыть его нужно нажать на окно за пределами пузыря.
Не следует вкладывать пузыри друг в друга. Пузырь, появляющийся из другого пузыря сложен для восприятия и может запутать пользователя. Также пользователь не знает точно, что случится, если пользователь нажмёт за пределами обоих пузырей.
Не следует делать пузырь слишком большим. Пузырь не должен перекрывать границей экрана. Но он должен быть достаточно большим, чтобы отображать всё его содержимое полностью и указывать на место, откуда он был вызван.
Не следует менять положение элементов, когда пузырь отделяют от объекта. Если пользователю разрешено отделять пузырь от объекта, внешний вид объектов на нём должен сохраняться. Если же получившееся окно выглядит иначе, пользователь может не понять, откуда оно взялось.
Можно менять размер пузыря, пока он виден. Можно менять размер пузыря, если он нужен для отображения информации в минимальном, расширенном, комбинированном или другом виде. К примеру, iCal показывает минимальный пузырь, когда пользователь дважды нажимает на встречу и создаёт встречу. Если пользователь хочет изменить встречу, минимальный пузырь расширяется, чтобы вместить в себя больше информации о встрече и элементов для её правки. Переход из одного размера в другой сопровождается анимационными эффектами, чтобы пользователь видел, что он продолжает работать с тем же пузырём.
Палитры
Палитры — это вспомогательные окна, в которых располагаются элементы управления и функции, которые можно применить к активному документу или выбранной области. Панель инструментов, распространяющую действие на всё приложение и располагающемся в отдельном окне называют палитрой инструментов.
Палитры могут быть как относящиеся к определённому приложению, так и ко всей системе. Палитры приложения располагаются поверх окна приложения и исчезают, когда окно неактивно. Системные палитры, такие как окно «Цвета» или «Шрифты» располагаются поверх всех окон. (подробнее об окне выбора цвета см. «The Colors Window» (стр. 73), а об окне выбора шрифта см. «The Fonts Window» (стр. 74)).
Многие палитры — стандартные, и используют такие же текстуры в теле окна и заголовке, как и у стандартных окон. В стандартных палитрах обычно используются уменьшенные версии элементов управления. Некоторые палитры делают полупрозрачными, и тогда их оформляют в тёмных тонах с маленькими чёрно-белыми элементами управления. На рисунке ниже можно увидеть несколько видов палитр.
--
Чаще всего следует использовать стандартный вид палитр. Для некоторых приложений, работающих с изображениями и мультимедиа лучше использовать прозрачные палитры, но для большинства лучше использовать стандартные. Пользователь не ожидает видеть прозрачные палитры там, где программа не работает с изображениями, или интерфейс основного приложения не выполнен в тёмных тонах. Подробнее о полупрозрачных палитрах см. «Transparent Panels» (стр.170).
Следует использовать палитры для доступа к важным функциям или данным, напрямую относящимся к выполняемой работе. К примеру, можно можно создать немодальную палитру, так называемую палитру инструментов, где будут располагаться элементы управления или настройки, влияющие на документ в активном окне. Так как палитры занимают место на экране не следует использовать их когда лучше использовать окно-«пузырь», немодальный диалог, или несколько дополнительный элементов управления на панели инструментов.
Палитры должны скрываться и появляться когда нужно. Когда пользователь делает документ активным, все палитры приложения должны быть выведены на передний план вне зависимости от того, какой документ был открыт когда пользователь открывал палитру. Когда приложение неактивно, все палитры следует скрывать.
Палитры не должны отображаться в меню «Окно» как документы, но в этом меню может быть команда, позволяющая скрыть или показать все палитры.
У палитры должен быть заголовок. Даже если у палитры нет название, заголовок нужно оставлять, чтобы палитру можно было перемещать.
В палитре не должно быть активной кнопки «Свернуть». Пользователю не требуется сворачивать палитры, так как они все должны исчезать когда приложение неактивно, или свёрнуто в док. Однако кнопка «Закрыть» в палитре должна быть обязательно, также можно включить кнопку «развернуть», хотя чаще всего остаётся только кнопка «Закрыть» (см. рисунок ниже). Ниже можно увидеть правильное расположение кнопок и некоторые неправильные конфигурации.
Инспекторы
Инспектор — это палитра, которая позволяет просматривать атрибуты выбранного объекта. Инспекторы (их иногда называют окнами инспекторов) также позволяют изменять эти атрибуты. Примеры приложений, в которых есть инспекторы: Pages, Keynote, Preview (на рисунке ниже можно увидеть также инспектор из Numbers).
--
Содержимое инспектора должно автоматически обновляться при выборе нового объекта. Пользователь ожидает, что это должно произойти сразу же после выбора, в отличие от окна «Информация», показывающего атрибуты объекта, который был выбран в момент вызова этого окна и не изменяющегося при выборе другого объекта. Дело в том, что окно «Информация» не является палитрой, оно даже должно отображаться в меню «Окно» и не должно исчезать, когда приложение теряет фокус ввода.
В приложении могут быть как инспекторы, так и окна «Информация», так как пользователю могут понадобиться как окна, показывающие атрибуты выбранного объекта (инспекторы), так и окна, показывающие атрибуты заранее выбранных объектов (окна информации). Заметьте, что пользователь может открыть сразу несколько инспекторов и окон информации одновременно.
Прозрачные палитры
Прозрачные палитры нужны, чтобы можно было быстро внести изменения. Прозрачные панели работают так же как и обычные, но предназначены для работы с приложениями, сосредоточенными на визуальной составляющей, либо требующие погружения в работу — такие, как просмотр рисунков в полноэкранном режиме. К примеру, в iMovie прозрачные палитры выводятся, когда нужно изменить параметры видеозаписи.
--
Нужна веская причина, чтобы использовать прозрачные палитры вместо стандартных. Неуместное появление прозрачной панели может запутать или отвлечь пользователя. В целом, использовать панели следует исключительно в следующих случаях:
* Когда приложение сосредоточено на работе с мультимедиа: видеозаписями, фотографиями, или слайдами.
* Окно приложения выполнено в тёмных тонах или в виде, сосредоточенном на задаче (часто внешний вид таких программ строится не на основе стандартного внешнего вида).
* Предполагается, что пользователь сделает небольшие правки, и сразу уберёт палитру.
Стандартная палитра будет загораживать содержимое, которое требует постоянного контроля со стороны пользователя.
Можно использовать палитры обоих типов. Если приложение сосредотачивается на визуальных элементах лишь в определённых режимах, можно использовать необходимый тип палитры в зависимости от режима. К примеру, инспектор Keynote позволяет менять способ смены слайдов, править таблицы и графики и форматировать текст. Для этих целей используется стандартная палитра, так как ни одна из этих команд не работает исключительно с мультимедийными функциями.
В Keynote есть также палитра настройки изображений, позволяющая изменять некоторые характеристики отображения слайдов. Эта палитра сделана прозрачной, так как её функции сосредоточены на отображении, и результат можно просматривать сразу же.
--
Не следует изменять вид палитры при смене режима программы. К примеру, если используется прозрачная палитра в режиме погружения, не следует переключать её на стандартный режим при переключении режима программы.
Если возможно, следует использовать простые виды элементов управления на прозрачных палитрах. В частности, не следует использовать элементы, где нужно вводить или выбирать значения. Лучше использовать такие элементы, как движки и счётчики — их значения можно легко и быстро изменять, не фокусируя на них лишнего внимания.
На прозрачных палитрах следует использовать элементы управления, выполненные в белых линиях с серыми акцентами с белым или серым текстом. Светлые элементы и текст хорошо смотрятся на тёмном фоне прозрачной панели. Белые линии как бы плывут поверх элементов основного окна.
Осторожнее с цветами! На тёмном фоне прозрачной палитры цвет смотрится слишком заметным и загромождает интерфейс. Часто нужно лишь немного цветных элементов, чтобы предоставить некоторое количество дополнительной информации. К примеру, в палитре настроек изображения Keynote на рисунке выше использование цветных значков у движков регулировки баланса белого и экспозиции в дополнение к настройкам цветности понятно и уместно. Следует также проверять, достаточно ли контрастно смотрятся цветные значки на тёмном фоне палитры.
Не следует увеличивать прозрачные палитры. Прозрачные палитры должны быть ненавязчивыми, что противоречит с возможностью увеличения их размера. Прозрачная палитра не должна загораживать содержимое, пока пользователь пытается отрегулировать какие-то его параметры, или пытаться завоевать слишком много внимания пользователя.
Окна информации о программе
Окна информации о программе отображают версию программы и информацию о правообладателе. Ниже изображено окно информации о iCal
--
В отличие от других окон, это окно может вести себя как палитра и как обычное окно: как палитра это окно не попадает в список меню «Окно», при этом оно не исчезает когда приложение неактивно, как и обычное окно.
Окно информации о программе не должно быть модальным, пользователь может работать с приложением, когда окно открыто. Если нужно подключить окно информации о программе, следует убедиться, что оно:
* Содержит строку заголовка, но не имеет названия
* Может перемещаться
* Содержит в заголовке только активную кнопку закрытия
* Содержит значок приложения
* Содержит полное название приложения и номер версии (номер версии не должен отличаться от того, который можно увидеть через Finder).
* Содержит информацию о правообладателе, о технической поддержке и о назначении программы.
Если нужно предоставить данные для обратной связи, используйте кнопку в окне «О программе». Она может открыть Ваш сайт в окне браузера, или форму для отправки Вам электронной почты. Это лучше, чем просто размещать текстовую гиперссылку, потому что пользователь может не знать точно, какое действие будет ассоциировано с текстом. Также желательно размещать большинство ссылки для обратной связи на первой странице справочной документации (см. «The Help Menu» (стр. 128)).
Можно размещать рекламные элементы, такие как логотипы и слоганы в окне «о программе». Им там самое место. А в окнах и меню размещать такие элементы не следует.
Диалоги
Диалог — это окно для выполнения операций, требующих вмешательства пользователя перед началом. Большинство из них — к примеру, диалог печати — требуют от пользователя ответа на несколько вопросов.
В Mac OS X предусмотрено три основных способа показа диалогов:
* Модальный для окна документа. Такой диалог блокирует возможность обращения к конкретному документу, пока открыт. Пользователь может продолжать работать с другими документами в том же приложении. Такой диалог нужно выполнять в виде выезжающего окна — см. «Using Sheets (Document-Modsl Dialogs» (стр. 174).
* Модальный для окна приложения. Такой диалог приостанавливает выполнения приложения пока не будет ответа от пользователя — при этом он может пользоваться другими приложениями. Пример такого диалога — диалог открытия файла (подробнее см. «The Open Dialog (стр. 180)).
* Немодальный. Немодальный диалог позволяет изменить какие-либо настройки, не перекрывая доступа к окну приложения. Пример такого диалога — диалог поиска. Также в Mac OS X доступны окна предупреждений — специальные типы диалогов, которые тоже могут быть модальными как по отношению к документу, так и к приложению. Если ошибка или событие, требующее оповещения относится к документу, нужно вызывать документно-модальный диалог (выезжающее окно). Если выводится сообщение о состоянии приложения, или нескольких документов одного приложения, предупреждение должно быть модальным, по отношению к приложению. Подробнее о работе с предупреждениями см. «Alerts» (стр. 191).
Выезжающие окна (документно-модальные диалоги)
Выезжающее окно — это модальный диалог, прикреплённый к документу или окну, перекрывающий доступ к содержимому документа или окна, пока диалог не будет закрыт. Чтобы не раздражать пользователей, следует использовать модальные диалоги только когда без них не обойтись.
Так как выезжающее окно присоединяется к заголовку родительского окна, пользователь всегда знает, откуда оно появилось. Пример ниже — диалог блокировки документа TextEdit
--
Показ выезжающего окно анимируется, будто оно появляется (выезжает) из-под панели инструментов или заголовка окна. Когда выезжающее окно открывается в окне, расположенном близко к границе экрана, и при этом выезжающее окно шире родительского, последнее перед открытием выезжающего отодвигается от границы окна. Когда же выезжающее окно закрывают, родительское окно возвращается на исходную позицию.
На одном окне одновременно может быть открыто не более одного выезжающего. Если же при открытом выезжающем окне требуется открыть ещё одно, первое должно быть закрыто прежде чем откроется второе.
Выезжающие окна лучше использовать в следующих ситуациях:
* Когда назначение модального диалога относится непосредственно к текущему документу: экспорт, добавление файла, печать.
* Когда у приложения только одно окно и оно не работает с документами. Например, однооконная программа может использовать выезжающее окно для запроса согласия с лицензионным соглашением.
* В подобных случаях, когда содержимое диалога относится к конкретному окну и продолжать работу нельзя, пока диалог не будет закрыт.
Следуйте указаниям в данном разделе, чтобы быть уверенными, что выезжающие окна будут работать так, как ожидает пользователь.
Если необходимо, следует отображать выезжающее окно поверх палитр, относящихся к текущему окну. Однако, если пользователь выбирает другое окно текущего приложения, неактивное окно и его модальные диалоги должны перемещаться на задний план.
Не следует использовать выезжающие окна когда один документ отображается в нескольких окнах. Выезжающее окно не подходит для подобных случаев потому, что событие, которое произойдёт в результате закрытия выезжающего окна повлияет на содержимое других окон. В подобных случаях лучше использовать диалог, модальный по отношению к приложению, что позволит пользователю понять, что результат выполнения операции в диалоге будет относиться к нескольким окнам программы.
Однако стоит использовать выезжающие окна, когда несколько документов отображаются в одном окне. Пример — браузер со вкладками, который отображает несколько веб-страниц в одном окне. В этом случае использование выезжающего онка уместно, так как диалог относится только к документу в открытой вкладке. Чтобы увидеть содержимое других документов, пользователь должен будет закрыть модальный диалог, а потом уже переключиться на другую вкладку.
Не следует использовать выезжающие окна, когда для ввода информации в диалог необходимо взаимодействовать с содержимым основного окна. К примеру, в диалоге нужно ввести какую-то строчку, которую нужно найти в текущем документе — в подобных случаях использовать выезжающие окна не следует, а лучше использовать немодальный диалог, который не будет препятствовать тому, чтобы пользователь просмотрел или скопировал информацию из основного окна, прежде чем закроет диалог.
Не следует использовать выезжающее окно для неодальных операций, эффект от которых пользователь может увидеть во время изменения параметров в диалоге. В этом случае лучше использовать палитру, так как пользователь может оставить её открытой, пока пользователь вносит изменение в документ.
Не следует использовать выезжающие окна, если на основном окне нет строки заголовка. Выезжающее окно должно появляться из-под видимой границы.
Подтверждение и внесение изменений, введённых пользователем в диалоге.
Так как диалог является небольшим элементом, появляющимся на короткое время, не следует требовать от пользователя слишком глубокого взаимодействия с ним. Диалог эффективен лишь когда он позволяет пользователю упростить ввод информации и сразу внести необходимые изменения.
При разработке диалогов, следует помнить несколько моментов, которые помогут упростить взаимодействие с ними:
* Когда уместно, следует отображать положение элементов управления и значение полей ввода по умолчанию, ведь чтобы пользователь мог проверить их, чем вводить информацию с нуля
* Фокус или курсор ввода должен находиться в первом элементе или поле ввода.
* Если необходимо вывести какое-то уведомление, следует предоставить возможность выделять текст. К примеру, пользователю может понадобиться скопировать сообщение об ошибке, серийный номер, или IP-адрес в другое место.
В большинстве случаев, изменения, сделанные пользователем в диалоговом окне должны применяться сразу же. Для этого возможно потребуется проверять вводимые данные перед тем, как ими воспользоваться. Следуйте указаниям в этом разделе, чтобы диалог работал лучше.
Если возможно, следует проверять данные в процессе ввода. Можно, конечно, дождаться когда пользователь попытается закрыть диалог, и уже тогда выводить ошибку — но это не лучший выход. Лучше сообщать об ошибке как можно раньше, чтобы пользователь мог исправить ошибку прежде, чем потеряет контекст диалога.
Не следует проверять ввод после каждого нажатия клавиши. Слишком частые сообщения об ошибке могут вызывать раздражение. Неплохо сделать так, чтобы неверный ввод был невозможен. К примеру, если нужно ввести слово в верхнем регистре, а пользователь ввёл в нижнем, данные автоматически бы исправлялись.
Нужно следить за скоростью выполнения операций. В зависимости от времени, необходимого для применения введённых данных к документу можно либо применять их по мере ввода, либо запросит у пользователя подтверждение на начало операции — например, с помощью кнопки. Автоматически желательно выполнять операции, которые занимают не более пары секунд. Если операция потребует больше времени, следует также предупредить пользователя об этом, прежде чем он подтвердит её запуск.
Кнопку «Применить» нужно использовать только когда это действительно необходимо. Кнопка «Применить» может например понадобиться, если выполнение операции возможно лишь после ввода нескольких значений. Тогда пользователь, нажав на эту кнопку, может посмотреть, к какому результату приведут те или иные выбранные или введённые значения.
С осторожностью следует использовать кнопку «Применить» для операций, которые требуют много времени для выполнения или отмены. Пользователь может не понять, как остановить или повернуть вспять выполнение операции. В частности, кнопку «Применить» не следует размещать в диалогах сохранения файлов, или для операций, которые сложно отменить.
Следует помнить, что назначение у кнопки «Применить» иное, чем у кнопки «ОК». В частности, после нажатия на кнопку «Применить» диалог не должен закрываться — для этого пользователь может нажать на «ОК», чтобы подтвердить внесённые изменения, либо на «Отмену», чтобы отказаться от них. Если пользователь закроет диалог каким-то другим способом, изменения также не должны быть внесены.
Расширенные функции в диалогах
Иногда в диалог нужно добавить дополнительную информацию или функцию, которую не хотелось бы отображать в окне постоянно. Для этих целей можно использовать скрывающиеся контейнеры, которые раскрываясь показывают пользователю дополнительные элементы управления или сообщения.
Используйте контейнер с кнопкой для того, чтобы разместить в нём дополнительные варианты выбора. В частности, кнопку можно использовать для добавления вариантов к уже выбранному элементу, с использованием всплывающего или выпадающего меню в диалоге. Когда пользователь нажмёт на кнопку, диалоговое окно расширится, чтобы вместить дополнительные элементы в дополнение к перечисленным во всплывающем или выпадающем меню (подробнее см. «Disclosure Button» (стр. 238)).
Чтобы разместить пояснения к сообщениям в диалогах, следует использовать элемент «треугольник». Когда пользователь нажимает на треугольник, диалог расширяется и в дополнение к имеющемуся сообщению отображается более подробное, или если необходимо — дополнительные элементы управления (см. «Disclosure Triangle (стр. 237)).
Окно, содержащее многоколоночный список, должно правильно реагировать на изменение размера. Когда пользователь растягивает окно, колонки сначала должны увеличиваться в размерах, а потом — появляться новые. Остальные элементы должны сохранять размер при увеличении окна.
Закрытие диалогов
Пользователи [Mac OS] привыкли, что кнопки, расположенные в правой части диалога закрывают диалог. Кнопка, которая приводит к выполнению какого-то действия после закрытия обычно располагается правее всех. Эту кнопку называют кнопкой подтверждения. Кнопка отмены действия располагается слева от неё.
Обычно кнопка подтверждения или отмены выделена по умолчанию. Она обозначается цветом и мигает, приглашая пользователя нажать Return или Enter.
--
Следуйте рекомендациям в этом разделе, чтобы быть уверенным, что диалоги выглядят и работают как этого ожидает пользователь.
Умолчание следует назначать на наиболее желательное и безопасное действие. Кнопка по умолчанию обычно ставится на действие, которое в диалоге требуется выполнять чаще всего, но оно не должно нести потенциальной опасности. Пользователь может нажать Return не прочитав сообщения, поэтому убедиться, что нажатие на неё будет безопасно очень важно.
Не следует назначать умолчание вообще, если нажатие на любую кнопку диалога несёт потенциальную опасность: например, может привести к потере данных. Если умолчание не назначено, нажатие на Return или Enter не приведёт ни к какому результату, и пользователю нужно будет нажать на кнопку с помощью мыши. Это позволит избежать потери данных, если пользователь не прочитал и не понял сообщение. Таким образом, можно назначать умолчание на безопасную кнопку, например «Отмена», либо не назначать его вообще.
Не следует назначать умолчание на какую-либо кнопку, если кнопка Return может потребоваться при вводе данных в диалоге. Иначе кнопка Return работает по-разному в зависимости от фокуса ввода, что может ввести пользователя в заблуждение. Пользователь может нажать Return забыв, где находится фокус ввода и закрыть окно, когда он этого не собирался.
В любом диалоге желательно наличие кнопки «Отмена». Она позволяет вернуть данные к состоянию, предшествовавшему открытию диалога. Или «Забыть, что диалог открывали». На кнопку «Отмена» следует назначать клавишу Esc (Escape) на клавиатуре.
Кнопка «Отмена» должна отменять уже внесённые изменения. Если в диалоге есть кнопка «Применить», необходимая для просмотра результата, к которому может привести диалог, кнопка «Отмена» должна отбросить в том числе изменения, внесённые при нажатии этой кнопки. Нажатие на отмену не должно приводить к молчаливому подтверждению уже внесённых по нажатию кнопки «Применить» изменений. Подробне см. «Accepting and Applying User Input in Dialog» (стр. 176).
Дополнительные кнопки, которые приводят к закрытию диалога следует размещать слева от кнопки «Отмена». Если такие кнопки могут привести к потере данных — к примеру, кнопка «Не сохранять», лучше разместить её на расстоянии около 24 точек от «безопасных» кнопок (наподобие «Сохранить» или «Отменить»).
Кнопки, которые влияют на содержимое диалога следует размещать у левого края диалога. Если там уже расположена кнопка «Помощь», их нужно располагать справа от неё. На примере ниже — кнопка «Помощь» располагается слева от кнопки «Подробности» в диалоге печати, и она позволяет расширить диалог, чтобы отобразить больше информации об очереди печати.
--
Окно настроек
Окно настроек — это немодальный диалог, содержащий настройки, которые пользователь меняет нечасто. В целом, пользователи открывают этот диалог, чтобы установить представление данных или работу программы, отличные от выбранных по умолчанию, и эти настройки должны сохраниться после закрытия окна. (Подробнее о настройках программ см. «Preferences» (стр. 80)).
Часто в окне есть панель инструментов, которая переключает функции окна наподобие панели вкладок. Когда пользователь нажимает на элемент этой панели, в основной части окна появляется новый набор элементов управления, так называемая страница. Такое окно подходит в случаях, когда настройки приложения можно разделить на категории. Например, в окне настроек Safari на рисунке ниже есть страницы конфигурации закладок, внешнего вида, а также RSS
--
Не следует позволять изменять внешний вид переключателя страниц в окне настроек. Он не предназначен для вызова частоиспользуемых команд, он нужен для упрощения группировки настроек. Если бы пользователи её настраивали, они могли бы забыть, какие из скрытых настроек продолжают быть доступными. По этой же причине не следует предоставлять возможности скрывать переключатель страниц.
Следует выделять выбранный элемент панели переключателя страниц. Когда пользователь нажимает на другой элемент, отображается другая страница. Важно, чтобы пользователь видел, к какому разделу относятся элементы управления активной страницы. К примеру, на рисунке в окне настроек Mail выбрана страница настроек RSS, и соответствующее значения на переключателе подсвечено.
Окно настроек должно быть неизменных ширины и высоты, в нём не должно быть активных кнопок «Свернуть» и «Развернуть». Окно настроек предназначено для того, чтобы настраивать другие окна приложения и его работу, и изменять его размер и потом восстанавливать после закрытия не требуется.
Следует отображать название выбранной страницы в заголовке окна настроек. Название окна должно соответствовать названию выбранной страницы, если конечно используется панель переключения страниц. (Заметьте, если этой панели нет, окно должно называться «Настройки [название приложения]). Также при закрытии окна текущая выбранная вкладка должна запоминаться, чтобы после повторного открытия можно было сразу вернуться к ней же.
Следует использовать стандартные команду в меню и сочетания клавиш для вызова окна настройки. Пользователь привык, что команда «Настройки» находится в меню приложения, а нажатие на Command+, также приведёт к открытию окна настроек.
Диалог открытия файлов
Диалог открытия файлов позволяет пользователю найти и выбрать файл, который откроется в приложении. Диалог открытия модален по отношению к приложению, поэтому приложение перестаёт принимать команды, пока этот диалог открыт.
В диалоге открытия есть следующие элементы:
* заголовок — «Открыть»
* кнопки «Назад» и «Вперёд», позволяющие ориентироваться в списке файлов
* Всплывающее меню, содержащее наиболее распространённые места, куда пользователь мог сохранить файл, а также последние места (точнее 5 последних папок, где пользователь открывал или сохранял документы)
* Боковую панель, как в Finder
* список файлов в виде колонок или списка
* Кнопки «Отмена» и «Открыть» (на последней — умолчание)
* По нажатию Command+Shift+G пользователь может ввести путь к файлу вручную (в качестве разделителя используется «/»).
Все перечисленные элементы можно увидеть на диалоге открытия файла Safari, изображённом ниже.
Можно ввести дополнительные элементы в диалог открытия, если необходимо. На рисунке ниже — диалог TextEdit, в котором есть возможность выбора кодировки для открываемого файла.
Рекомендации в текущем разделе помогут настроить диалог открытия наилучшим образом.
--
Если возможно, кнопка открытия должна называться «Открыть», а не «сделать». Диалог открытия предназначен для того, чтобы пользователь мог найти файл, который будет открыт в программе. Если необходимо найти файл для выполнения другой операции, лучше использовать диалог выбора файла (подробнее см. «The Choose Dialog» (стр. 182)).
По нажатии на кнопку «открыть» должен открываться диалог открытия файла. В отличие от диалога выбора файла, который может открываться по разным командам в разных программах. Желательно также, чтобы он открывался по стандартному сочетанию клавиш «Command+O», так как пользователям так привычнее.
Следует назначить подходящий путь по умолчанию. Обычно это — одна из стандартных папок в домашнем каталоге пользователя. Если пользователь выбрал другую папку, следует вернуться к ней при открытии диалога в следующий раз.
Подумайте о размещении всплывающего меню, позволяющего отобрать файлы, отображающиеся в окне открытия по типу. Файлы не подходящий под критерий отбора следует затенить. Можно также дополнить список собственными типами и выбрать тот, который будет отображаться по умолчанию. Также следует добавить пункт «все возможные файлы», но нельзя его оставлять выбранным по умолчанию.
Кроме команды «открыть» в меню желательно добавить пункт «последние файлы». Он позволит пользователю быстро найти файлы, над которыми он недавно работал, не открывая диалог открытия файла.
Функциональность диалога открытия можно расширять. К примеру, неплохо встроить в него область предварительного просмотра, чтобы пользователь мог увидеть документ до того, как откроет его. Также можно включить опцию множественного выбора, чтобы открывать сразу несколько файлов.
Диалог выбора файла.
Диалог выбора файла позволяет выбрать файл для выполнения над ним уже выбранного действия. В приложении таких диалогов может быть несколько.
Особенности диалога выбора файла:
* Он может открываться по различным командам
* Позволяет выбрать несколько файлов
* Позволяет просматривать файл перед открытием
* Размер окна можно менять
К примеру, в iCal такой диалог позволяет выбрать файл для импорта календаря.
--
Следуйте указаниям в данном разделе, чтобы использовать диалог выбора файлов там, где это уместно.
Следуйте указаниям в данном разделе, чтобы использовать диалог выбора файлов там, где это уместно.
Если выбираемый файл относится к открытому документу, следует поместить его в выезжающее окно. К примеру, в Mail таким образом выполнен диалог для вложений к письму.
--
Нажвание окна диалога должно отражать его назначение (если, конечно, он не выполнен в виде выезжающего окна). По умолчанию, у такого диалога выставлен заголовок "выбрать". Если нужно выбрать изображение, окно следует назвать "Выбор изображения". Можно также изменить название кнопки "Выбрать".
Можно включить всплывающее меню с выбором фильтрации по типу файлов. Файлы, не попадающие под критерии фильтрации обычно затемнены. Можно добавить в этот список необходимые типы файлов и выбрать тип файла, отображаемый по умолчанию. Обязательно наличие пункта "Все доступные типы файлов", но он не должне быть выбран по умолчанию.
Диалог печати и настроек страницы.
Пользователь ожидает ото всех документов возможность его распечатки, или наличия версии для печати. В Mac OS X существуют стандартные диалоги, позволяющие унифицировать печать документа во всех приложениях, их использующих.
Основной задачей диалога печати является печать текущего документа, однако в него можно добавлять особые команды, зависящие от приложения или модуля принтера. Диалог "Настройки страницы" сосредоточен на размере и ориентации документа, которые выбриаются на основе выбранного в принтере размера бумаги.
По умолчанию, количество элементов в окне диалога печати минимально (такой диалог можно видеть на иллюстрации ниже -- там он присоединён к окну TextEdit). Чтобы увидеть дополнительные функции диалога печати, можно нажать кнопку "Показать сведения".
--
В расширенном диалоге печати дополнительные функции доступны через всплывающее меню, с помощью которого отображаются страницы, которые отрисовываются и управляются через расширения диалога печати (PDE). Эти расширения можно разделить на системные, расширения модулей принтеров и приложений. Apple предоставляет несколько страниц расширений печати. В диалоге на рисунке ниже можно увидеть расширения, позволяющие печатать колонтитулы, а также перераспределять строки для лучшего размещения по странице.
--
Можно добавлять собственные расширения диалога печати, необходимые для работы приложения. К примеру, в Addres Book печатать контактную информацию можно в нескольких разных стилях, в том числе в виде почтового конвета и списка контактов. Запомните эти рекомендации, если нужно добавить расширение в диалог печати:
* Название раздела не должно совпадать с названием уже существующих разделов, и при этом должно точно соответствовать назначению и содержанию. Для расширений конкретного приложения имя раздела должно соответствовать названию приложения.
* Следует удостовериться, что данные расширения действительно необходимы. К примеру, печать в обратном направлении — это системная функция, её не нужно не нужно добавлять к расширениям конкретного приложения. (К тому же данная функция требует поддержки на аппаратном уровне).
* Если одна функция зависит от другой, это должно быть очевидно из интерфейса. К примеру, следует запрещать двустороннюю печать на прозрачной плёнке.
* Следует отделять частоиспольщуемые функции от редкоиспользуемых. редкоиспользуемые функции следует помещать в раздел «Дополнительные функции [название]».
* Если возможно, следует показывать, к какому результату приведёт выбор той или иной опции. К примеру, при выборе настроек тона результат, отображаемый на панели предпросмотра поможет определить настройки, необходимые пользователю.
* Выбранные настройки печати для документа следует сохранять, чтобы при повторной печати не устанавливать их заново.
Если необходимо, чтобы пользователь мог использовать различные настройки под принтеры и различные размеры бумаги, нужен диалог «Настройки страницы». Параметры, выбранные в данном диалоге должны сохраняться вместе с документом. Ниже можно увидеть диалог настроек страницы приложения TextEdit
--
Диалог поиска
Окно поиска — это немодальный диалог, который открывается, когда пользователь выбирает команду поиска в программе. К примеру, ниже можно видеть диалог, свойственный программе Mail, позволяющий искать (и если нужно — заменять) текст в сообщении.
--
Диалог поиска наиболее подходит к приложениям, работающим с документами, так как тогда часто возникает необходимость поиска слов и фараз в разных документах. Также некоторые функции поиска можно предоставлять через панель поиска. Панель поиска открывается внутри окна и позволяет производить как поиск, так и фильтрацию информации. Подробнее о панели поиска см. «Using a Scope Bar to Enable Searching and Filtering» (стр. 173).
Диалог сохранения файла пользователь должен видеть при первом сохранении документа — чтобы указать место, куда изменения в документе будут сохраняться, и больше он появляться не должен.
Диалог сохранения файла
Пользователю часто необходимо указать файл, куда будут сохраняться изменения при работе с документом. В этом случает пользователь ожидает увидеть стандартный диалог сохранения файла.
Заметьте: если возможно, пользователя следует избавить от лишней мороки по подводу сохранения файлов. В частности, не следует думать, что пользователь будет сохранять файлы с помощью пункта «Сохранить» в меню «Файл», чтобы предотвраить потерю данных.
Диалог сохранения файла может иметь два состояния: сокращённое (или свёрнутое) и полное. Чтобы переключаться между ними, нужно нажать кнопку раскрытия. К примеру, ниже представлен сокращённый вид диалога сохранения файла TextEdit с кнопкой раскрытия справа от поля названия документа.
--
В сокращённом виде диалог сохранения включает в себя:
* Поле «Сохранить как:» для ввода названия документа. Следует позволить пользователю вводить путь к файлу, нажимая Command+Shift+G (разделителем папок служит символ «/»).
* Всплывающее меню, включающее смонтированные тома и папки из боковой панели Finder-а, а также последние выбранные папки (пять последних мест, куда сохранялись файлы в текущем приложении).
* Кнопка «Сохранить» (выбрана по умолчанию)
* Кнопка «Отмена», закрывающаяя диалог без изменения состаяния файла и приложения.
* Кнопка раскрытия диалога. По нажатию на неё появляется расширенная версия диалога сохранения (подробнее о кнопке раскрытия см. «Disclosure Button» (стр. 274)).
* Место для дополнительных сообщений и функций, таких как настройка кодировки текста (в основном следует избегать использования этой панели)
Расширенный диалог сохранения файлов отображает больше функций выбора пути к файлу, чем всплывающее меню в сокращённом диалоге. К примеру, в расширенном диалоге отображается список папок.
--
Таким образом, кроме элементов сокращённого диалога сохранения в расширенном есть также:
* Кнопки «Вперёд» и «Назад», позволяющие перемещаться по списку файлов;
* Боковая панель, как у Finder-а;
* Список файлов, позволяющий перемещаться по файловой системе;
* Всплывающее меню выбора типа файла, позволяющее выбрать один из поддерживаемых типов файла для сохранения.
* Кнопка создания папки, вызывающая модальный диалог, запрашивающий имя папки и создающий её.
* Флажок «Скрыть расширения», при снятии которого отображаются расширения файлов (например .jpg).
Кроме обычного диалога сохранения, в приложениях, работающих с документами можно встретить диалог подтверждения сохранения файла, появляющийся при закрытии. Он появляется при закрытии окна документа когда содержащиеся в нём данные не были сохранены, и представляет собой тот же диалог сохранения в сокращённом или расширенном виде. К примеру, ниже изображён диалог подтверждения сохранения, появляющийся при закрытии TextEdit, если изменения в документе не были сохранены.
--
Так же как стандартный диалог сохранения, он содержит кнопку раскрытия справа от поля ввода имени файла. По нажатию на неё диалог переходит в расширенный режим. В отличие от обычного диалога сохранения, у него есть кнопка «Не сохранять», так как пользователь может закрыть окно без желания сохранять внесённые изменения.
Есть несколько способов настройки диалога сохранения файла, позволяющих улучшить его работу. Следуйте указаниям из этого раздела, чтобы настроить работу диалога сохранения.
Следует выбрать подходящий путь для сохранения файлов по умолчанию. Путь по умолчанию первым появится во всплывающем меню сокращённого диалога, или этот путь будет отображаться в окне расширенного диалога сохранения. Обычно по умолчанию выбирается домашняя папка пользователя. Если пользователь выбрал другую папку, она должна быть выбрана при следующем вызове диалога сохранения.
Следует позволять пользователю смотреть расширения файлов. Флажок «Скрыть расширения» должен быть установлен по умолчанию (и тогда расширения файлов не будут видны, пока не будет запроса от пользователя). Состояние этого Флажка должно сохраняться для текущего документа при повторном вызове диалога сохранения, даже после выхода из программы. Поле ввода имени файла также должно реагировать на снятие или установку этого флажка.
Если пользователь сохраняет этот документ в первый раз, должно отображаться имя документа по умолчанию. Обычно оно звучит как «безымянный». Название файла, но не расширение (если флажок «скрыть расширения» снят) в поле ввода должно быть выделено, чтобы пользователь мог тут же его изменить.
Дополнительные элементы управления следует отображать между элементами выбора пути к файлу и кнопками. В сокращённом диалоге это — под всплывающим меню, а в расширенном — под списком папок.
Заметьте: при нажатии Tab фокус ввода перемещается с поля ввода имени файла сначала на боковую панель, потом на колонки списка папок, а затем — снова на поле ввода имени.
Окна предупреждений.
Предупреждение — это диалоговое окно, которое появляется, когда система или приложение должно показать пользователю некоторое сообщение об ошибке, или предупреждение о потенциально опасной ситуации или событии. Предупреждение также может отображаться в виде выезжающего окна.
Предупреждение необходимо закрыть, прежде чем продолжать работу. Желательно, чтобы предупреждения не выводились без уважительной на то причины. Рекомендации в этом разделе помогут определить, когда следует выводить предупреждения и как они должны при этом выглядеть.
--
На рисунке изображено окно предупреждения, которое содержит следующие части:
* Сообщение (набранное крупным системным шрифтом) — короткое описание ситуации, которая привела к появлению окна
* Поясняющий текст (набранный мелким системным шрифтом) — более подробное описание возникшей ситуации и методов решения проблемы
* Кнопки, закрывающие окно предупреждения. Справа расположена кнопка действия, предполагающее согласие с текстом сообщения. Часто, но не всегда, эта кнопка выбрана по умолчанию (подробнее см. «Dismissing Dialogs» (стр. 205)).
* Значок приложения слева от текста сообщения, указывающий на приложение, вызывавшее предупреждение.
Важно: не следует пренебрегать поясняющим текстом. Краткое описание может быть непонятно некоторым пользователям. Поясняющий текст должен дополнять и раскрывать текст сообщения.
Если необходимо вывести предупреждение, важно пояснить ситуацию достаточно понятно для пользователя, и предоставить ему способ решения проблемы. Следуйте указаниям в этом разделе, чтобы определить, нужно ли выводить сообщение и понятно ли для пользователя оно описывает ситуацию.
Не следует выводить предупреждение только для того, чтобы вывести какое-то сообщение. Предупреждение должно сообщать о серьёзных проблемах, например о возможной потере данных, и должно не просто информировать о чём-то, а побуждать к действию. Не следует выводить предупреждения, когда нужно лишь сообщить пользователю о чём-то, когда об это можно сообщить другим способом, например с помощью специального индикатора состояния. К примеру, когда не подключения к серверу электронной почты, Mail отображает предупреждающий индикатор на боковой панели. Как только пользователь нажмёт на этот индикатор, он может просмотреть сообщение.
Не следует отображать предупреждение для частовозникающих событий, которые легко отменить и которые не приводят к потере данных. Например, когда пользователь удаляет сообщение в Mail, или файлы, сообщение о возможной потере данных не выводится, так как данные отправляются в корзину и удаление легко отменить. Более редкие события, которые к тому же сложно отменть, такие как «Очистить корзину» следует сопровождать предупржеднеием, чтобы пользователь мог отказаться от данного действия.
Если ситуация требует вывода предупреждения, не следует заменять его другими элементами интерфейса. Используя для этих целей другие элементы, можно запутать пользователя. Пользователю привычен вид стандартного окна предупреждения, а другие элементы он не будет воспринимать так же серьёзном.
Значок предупреждения в окне сообщения использовать можно лишь в особых случаях. Возможно отображение значка приложения поверх значка предупреждения. Такое предупреждение следует выводить, если выполнение какого-либо действия может привести к [inadvertend] или нежелательному повреждению данных. Не следует использовать значок предупржедения для предупреждений об удалении или перезаписи данных, например, при очистке корзины или сохранении поверх существующего файла, так как подобные ситуации случаются слишком часто. К примеру, на рисунке изображено окно TextEdit с предупреждением о смене формата документа с RTF на RTFD, так как пользователь не может быть уверен, что второй формат будет поддерживаться другими программами.
--
В предупреждающем сообщении должно быть чётко и ясно описана возникшая ситуация. Предупреждающее сообщение наподобие «Абсолютно неизвестная ошибка» (!) непонятно для большинства пользователей и раздражает опытных. Лучше подробно расписать причину ошибки, чем промолчать. Если возможно, следует также указать, в каком документе или открытом файле возникла ошибка и почему.
Если предупреждение должно появиться в ответ на действия пользователя, которые могут привести к опасным результатам, следует писать сообщение в виде вопроса. К примеру, вопросы типа «Вы уверены, что хотите удалить историю файлов?» показывают, какую команду пользователь вызвал и к какому результату её выполнение может привести. Важноне злоупотреблять такими предупреждениями; [users tire quickly of being asked if they're sure they want to do something]
[В поясняющем тексте следует описать, что будет при выборе того или иного или иного варианта.] Следует предоставляють максимально подробную информацию о том, почему ему было необходимо сообщить об этой ситуации. Когда нужно, сделует напоминать о возможных необратимых последствиях.
Поясняющий текст должен предлагать варианты решения проблемы. К примеру, когда в Finder невозможно переименовать файл в указанный пользователем, он сообщит, какие символы нельзя использовать в имени файлов.
Следует говорить с пользователем на его языке. Предупреждения — не место для непонятных терминов и непереводимых слов, потому что появляение предупреждения для пользователя может быть [неожиданным]. Язык сообщения должен быть простым и понятным, без жаргонизмов. (подробнее см. «Use User-Centric Terminology» (стр. 60)).
Название кнопок должно соответствовать выполняемой операции. К примеру, не следует давать в предупрежденях кнопке по умолчанию название «ОК». Не всегда понятно, что означает это «ОК» в данном конкретном контексте: то ли это «ОК, я хочу выполнить действие», то ли «ОК, я понял, что за собой повлечёт выполнение действия».
Названия кнопок, соответсвующие задаче, такие как «Стереть», «Преобразовать», «Очистить», «Удалить» позволят пользователю быть уверенными в назначении кнопки, которую он нажимает.
Внимание! Этот перевод, возможно, ещё не готов.
Его статус: идёт перевод
Переведено на Нотабеноиде
http://notabenoid.org/book/21170/69927
Переводчики: tucvbif
Настройки
Готово:
