- •1.1. Інтерфейс користувача: міст між людиною і комп'ютером
- •1.2. Основні принципи розробки користувальницького інтерфейсу
- •2.1. Життєвий цикл програмного продукту
- •2.2. Етапи проектування користувальницького інтерфейсу
- •3.1. Особливості графічного інтерфейсу
- •3.4. Взаємодія користувача з додатком
- •3.5. Загальні правила взаємодії з об'єктами
- •4. Вибрати команду Всщавить.
- •3.6.2. Операції створення нових об'єктів
- •4.1. Проектування піктограм
- •4.2.2. Основні операції з вікнами
- •93 Ніяке інше вікно не повинне стати активним перш, ніж користувач завершить переміщення даного вікна. 11еремегцение вікна має на увазі його активізацію.
- •4.2.5. Вибір моделі вікна
- •4.3.2. Панелі властивостей і контролю параметрів
- •4.3.3. Діалогові панелі
- •4.3.4. Інші типи вторинних вікон
- •5.2.3. Прапорці
- •5.3.1. Список одиничного вибору
- •5.3.4. Список, що модифікується
- •5.3.5. Дерево, що модифікується
- •5.4.1. Текстові поля
- •5.4.4. Комбінований список, що випадає
- •5.6.2. Заголовки стовпців
- •5.6.3. Етикетка вкладки
- •5.6.4. Смуги прокручування
- •5.6.8. Колекції
- •5.6.9. Область повідомлень
- •5.7. Вибір візуальних атрибутів відображуваної інформації
- •5.7.1. Композиція й організація
- •5.7.3. Шрифт
- •5.7.4. "Багатомірність" екрана
- •5.7.6. Візуалізація виконуваних операцій
- •5.8. Три випадки з життя guі
- •6.1. Вікно повідомлення
- •6.2.2. Спливаюча підказка
- •6.3. Проблемно-орієнтована допомога
- •6.5. Майстра
- •6.6. Засобу навчання користувача
- •Глава 7
- •7.3. Користувальницький інтерфейс систем реального часу
- •8.3. Засобу розробки web-документів
- •Глава 9
4.2.5. Вибір моделі вікна
При виборі форми представлення чи завданні процесів, зв'язаних з роботою додатка, варто приймати у внимание'целый ряд факторів: рівень знань і навичок передбачуваних користувачів, особливості використовуваних об'єктів і розв'язуваних за допомогою додатка задач, вимоги до ефективного використання простору екрана монітора, а також орієнтацію на розробку, керовану даними.
Зокрема , форма представлення об'єкта залежить від способу його використання і взаємозв'язку з іншими об'єктами. Прості об'єкти, що є "самодостатніми", звичайно не вимагають створення власного первинного вікна; засобу взаємодії користувача з ними можуть бути обмежені набором команд меню і використанням панелі властивостей. Прикладом об'єкта такого типу може служити кнопка.
Об'єкт, що володіє деяким внутрішнім змістом, що повинний бути доступно користувачу, додатково до переліку властивостей вимагає наявності власного первинного вікна; прикладом такого об'єкта є текстовий документ. У багатьох випадках для представлення об'єкта виявляється достатнім наявність єдиного вікна, навіть якщо його вміст може змінюватися. При цьому зміна форми представлення об'єкта в тім же вікні забезпечується за допомогою елементів користувальницького інтерфейсу, що були описані вище. Система використовує єдиний стиль інтерфейсу вікна для більшості використовуваних об'єктів, таких, наприклад, як папки.
У тих випадках, коли структура об'єкта вимагає представлення його одночасно в декількох видах, чи коли користувачу необхідно працювати одночасно з декількома об'єктами, більш ефективним є застосування технології MDІ, або використання Робочих областей, Робочих книг і Проектів. Ці конструкції забезпечують формування робітничого середовища користувача, ориентированно!1] на вы-полнение визначеного завдання. При цьому технологія MDІ є найбільш придатної для роботи з декількома однотипними об'єктами, а використання Робочих книг дозволяє оптимизировать навігацію користувача між різними
111
представленнями одного об'єкта. Недоліком Робочої книги можна вважати те, що вона обмежує здатність користувача бачити одночасно кілька представлень об'єкта Робочі області і Проекти забезпечують більш гнучку техніку для перегляду і сполучення об'єктів і їхній окоп. Використовуйте Робочу область у тих випадках, коли користувачу може знадобитися згрупувати піктограми об'єктів (чи їхнього вікна), використовувані при виконанні деякого завдання. Приме-нение Проекту дозволяє зняти обмеження на розташування і формат дочірніх вікон. Разом з тим, ця перевага досягається за рахунок збільшення складності роботи користувача; крім того, користувачу буває дуже складно відрізнити дочірні вікна Проекту від вікон інших активних додатків.
J 1ослу того, як обрана модель (концепція) формованих додатком вікон, випливає ретельно, продумати вимоги до формату відображуваних у них інформації, /[ля сучасних моніторів з високим дозволом використання меню, панелей інструментів і рядків стану не представляє великої проблеми з погляду адекватного відображення будь-якої необхідної інформації. Разом з тим, компоненти інтерфейсу не повинні домінувати над робочою областю користувача, оскільки це може утруднити йому відшукання необхідних чи даних маніпулювання ними.
MD1, Робітники області, Робочі книги і Проекти допускають можливість спільного використання деяких компонентів інтерфейсу декількома вікнами. У зв'язку з цим користувачу завжди повинне бути ясно, коли й у якім вікні доступний конкретний елемент інтерфейсу. Хоча ви можете передбачити автоматичну корекцію вмісту таких компонентів, як чи меню рядок стану, проте варто враховувати необхідність підтримки погодженості інтерфейсу в частині використання загальних функцій. Наприклад, якщо у всіх дочірніх вікнах передбачена команда Печатка, те відповідна їй кнопка повинна в них знаходитися в одній і тій же позиції. Недотримання цього правила може істотно знизити ефективність роботи користувача. Необхідно ж мати у виді, що наявність загальних елементів інтерфейсу ускладнює його настроювання при переключенні користувача з одного вікна на інше.
Незалежно від обраної моделі вікна варто завжди дозволяти користувачам індивідуальне настроювання інтерфейсу, хоча б на рівні "сховати/відобразити" той чи інший елемент інтерфейсу. Однак при цьому необхідно передбачити можливість альтернативного доступу користувача до тієї функції, що зв'язана зі схованим елементом (наприклад, за допомогою спливаючого меню).
Необхідно ще раз відзначити, що використання одного первинного вікна, застосування М Ш, Робітників областей, Робочих книг і Проектів не є взаємовиключними варіантами реалізації користувальницького інтерфейсу додатка. Як і в багатьох інших областях людської діяльності, найбільш ефективними виявляються, як правило, компромісні рішення. Наприклад, Робоча книга і Проект можуть бути реалізовані як об'єкти, відображувані в одній Робочій області; аналогічно, Проект може включати Робочу книгу в якості одного зі своїх об'єктів.
112
4.3. ВТОРИННІ ВІКНА
Вторинні вікна призначені для прийому від чи користувача відображення додаткової інформації, що, як правило, зв'язана з об'єктами, представленими в первинному вікні. Вони дозволяють значно розширити діапазон засобів діалогової взаємодії користувача з додатком, будучи доповненням до первинних вікон.
4.3.1. ОСНОВНІ ВЛАСТИВОСТІ ВТОРИННИХ ВІКОН
Вторинні вікна мають деякі властивості первинних вікон, проте вони відрізняються від первинних вікон у багатьох аспектах поводження і використання. Зокрема , для вторинних вікон не створюються кнопки входу на Панелі задач.
Рис. 4.17. Вторинне вікно
З
Стандартне вторинне вікно містить смугу заголовка вікна і поле, обмежене рамкою (мал. 4.17); користувач може переміщати його, як і первинне вікно, за допомогою миші, установивши покажчик на смузі заголовка вікна. Проте , вторинне вікно не має кнопок Розгорнути і Згорнути, оскільки дані операції звичайно не застосовуються до вторинного вікна. Щоб закрити вікно, може використовуватися кнопка Закрити. Заголовок вікна є його міткою і
Рис. 4.17. Вторинне вікно
З
Стандартне вторинне вікно містить смугу заголовка вікна і поле, обмежене рамкою (мал. 4.17); користувач може переміщати його, як і первинне вікно, за допомогою миші, установивши покажчик на смузі заголовка вікна. Проте , вторинне вікно не має кнопок Розгорнути і Згорнути, оскільки дані операції звичайно не застосовуються до вторинного вікна. Щоб закрити вікно, може використовуватися кнопка Закрити. Заголовок вікна є його міткою і пояснює призначення вікна; смуга заголовка вторинного вікна не містить піктограми.
Дозволяється включати у вторинні вікна рядків}' стану, але не рекомендується дублювати в ній елементи, використовувані в рядку стану первинного вікна.
Як і для первинного вікна, для вторинного підтримується спливаюче меню з командами керування вікном; робота зі спливаючим меню реалізується в такий же спосіб, як і для первинного вікна.
Вторинне вікно може також містити в смузі заголовка вікна кнопку виклику контекстної допомоги (Що це?). Ця кнопка дозволяє користувачу одержувати контекстно-залежну довідкову інформацію про компоненти, відображених у вікні.
Вторинне вікно може бути незалежним чи модальної.
Незалежне вторинне вікно дозволяє користувачу взаємодіяти з іншими вторинними чи первинними вікнами, а також переключатися між первинними вікнами. Незалежне вторинне вікно доцільне використовувати в тих ситуаціях, де користувачу може знадобитися повторити дія, зв'язана з цим вікном (наприклад, при пошуку слова в чи тексті при форматуванні тексту).
Модальне вторинне вікно жадає від користувача завершити введення даних у межах даного вікна і закрити його, перш ніж продовжити роботу за межами вікна. Вторинне вікно може бути модальним стосовно свого первинного чи вікна стосовно системи. В останньому випадку користувач повинний виконати дії, що вимагаються, і закрити вікно перш, ніж взаємодіяти з будь-якими іншими чи вікнами об'єктами.
Оскільки модальні вторинні вікна обмежують діапазон можливих дій користувача, використовуйте їх тільки в ситуаціях визначеного типу. Зокрема , у таких, коли для виконання команди потрібно ввести додаткову інформацію, чи коли необхідно призупинити подальшу роботу користувача, поки не буде реалізована деяка умова. Уникайте використання системних модальних вторинних вікон, якщо ваш додаток не виповнюється як системну утиліту; але навіть і в цьому випадку застосовуйте їх тільки в найбільш серйозних ситуаци-ях, ігнорування яких може привести до фатальної системної помилки.
ВЗАЄМОДІЯ З ІНШИМИ ВІКНАМИ
Вторинні вікна, що відображаються при виконанні команд, обраних у первинному вікні, залежать від стану первинного вікна; це означає, що коли первинне вікно чи закривається згортається, вторинні вікна також чи закриваються згортаються. Коли користувач знову чи відкриває відновлює первинне вікно, відновите вторинні вікна в їхньому колишнім положенні і стані. Проте , якщо відкриття вторинного вікна є результатом дії поза первинним вікном (наприклад, якщо користувач вибирає команду Властивості для об'єкта, розташованого на Робочому столі), те таке вторинне вікно є незалежним стосовно усіх відкритих первинних вікон і відноситься до того ж рівню ієрархії, що і вони (хоча для нього, як було зазначено вище, і не створюється кнопка входу на Панелі задач).
114
Коли користувач відкриває вторинне чи вікно переключається на нього, воно активізується подібно будь-якому іншому вікну. Активізація вторинного вікна може бути виконана як за допомогою миші, так і за допомогою клавіатури. Для переключення між вторинним і первинним вікнами використовується комбінація клавіш <Alt>+F6; ця ж комбінація служить для переходу між іншими вторинними вікнами одного рівня, зв'язаними з даним первинним вікном. Щоб підтримати такий спосіб переключення, вторинне вікно повинне бути незалежним.
Коли користувач активізує первинне вікно, воно відображається поверх інших вікон; при цьому всі його підлеглі вторинні вікна також переносяться наверх, зі збереженням їхнього взаємного розташування. Аналогічно, активізація будь-якого вторинного вікна приводить до "всплытию" наверх його первинного вікна й інших зв'язаних з ним вторинних вікон.
Підлегле вторинне вікно завжди з'являється поверх свого первинного вікна, перекриваючи також зв'язані з ним інші вторинні вікна, відкриті раніше. Коли знову активізується одне з цих вікон, відкрите останнім вторинне вікно може їм перекриватися, залишаючись при цьому поверх свого первинного вікна.
Ви можете визначити вторинне вікно таким чином, щоб воно завжди з'являлося поверх інших вторинних вікон того ж рівня. Для такого вікна повинне бути установлена властивість Завжди зверху (Always On Top). Як правило, така техніка використовується тільки для вікна палітри, але навіть і в цій ситуації варто дати користувачу можливість самому керувати даною властивістю вікна. Якщо властивість Завжди зверху встановлена для декількох вторинних вікон, то вони розміщаються на екрані за правилами, загальним для усіх вторинних вікон того ж рівня. Не використовуйте властивість Завжди зверху, коли користувач працює з вікном додатка, для якого установка такої властивості неможлива.
Коли користувач відкриває вторинне вікно, відображайте в ньому інформацію з урахуванням поточної ситуації (контексту). Наприклад, при відкритті панелі властивостей на ній повинний бути представлений поточний вибір (тобто поточні значення властивостей об'єкта).
У загальному випадку намагайтеся відобразити вікно, що відкривається, у тім же стані, у якому його залишив користувач. Наприклад, діалогова панель Відкрити повинна зберегти поточний каталог, установлений перед закриттям цього вікна. Такий підхід полегшує користувачу повторне виконання операцій, зв'язаних з даним вікном. Проте , якщо чи команда завдання має на увазі чи вимагає, щоб користувач виконував процес у визначеній послідовності (наприклад, при використанні Майстра), вторинне вікно повинне бути представлене у відповідному фіксованому виді.
ДОПОВНЕННЯ ВТОРИННОГО ВІКНА
За винятком вікна палітри, уникайте створення вторинних вікон зі змінюваними розмірами, оскільки будь-яке вторинне вікно призначене для відображення конкретної визначеної інформації. Разом з тим, у деяких випадках мо-
115
палив виникнути необхідність послідовного чи уточнення доповнення відображуваної у вікні інформації; у такім вікні може використовуватися спеціальна до! югаса -Доповнити (Unfold), що дозволяє відобразити у вікні додаткові параметри. Кнопка Доповнити може позначатися двома символами "більше чим" ("). При натисканні зазначеної кнопки вторинне вікно відображається в альтернативній, розширеній формі, що має фіксований розмір. Для повернення у вихідне состо-яние альтернативна форма вікна може містити відповідну кнопку (Refold).
КАСКАДИРОВАНИЕ ВТОРИННОГО ВІКНА
Користувачу також може бути наданий доступ до додаткових параметрів (чи інформації) за допомогою використання у вторинному вікні кнопок, що відкривають додаткові вторинні вікна. Якщо вікно, що відкривається, є незалежним, закрийте вторинне вікно, з якого користувач відкрив його, і залишіть на екрані тільки нове вікно. Якщо ж нове вікно надає інформацію, необхідну для введення даних у вихідному вторинному вікні, то відобразите обох вікон на екрані одночасно; при цьому підлегле вікно повинне з'являтися небагато правее і нижче вихідного вторинного вікна. Щоб уникнути хаотичного розташування на екрані додаткових вторинних вікон, обмежте їхню кількість мінімально необхідним числом.
РОЗМІЩЕННЯ ВТОРИННИХ ВІКОН
При виборі розташування вторинного вікна на екрані варто враховувати велике число факторів, у тому числі призначення вікна, причину його появи, розміри екрана монітора і т.д. Як правило, вторинне вікно варто відображати в тій позиції, де воно з'являлося востаннє . При першому відкритті вікна установите його в позиції, зручної для роботи користувача, причому вікно обов'язкове повинно відображатися цілком. У багатьох випадках зручніше за все розташовувати вторинне вікно таким чином, щоб воно знаходилося в центрі первинного вікна по горизонталі і нижче заголовка вікна, меню і всіх пристыкованных до верхнього краю вікна панелей інструментів.
При створенні вторинного вікна може бути призначена спеціальна так называе-мая визначена кнопка, що активізується по натисканню клавіші <Enter>. Система відрізняє визначену кнопку від інших командних кнопок по стовщеній границі, що відображається навколо кнопки (мал. 4.18).
У якості визначеної рекомендується призначати таку кнопку, що зв'язана з найбільш ймовірною дією користувача, наприклад, з підтвердженням вибору, установленого за замовчуванням. Уникайте використовувати в якості визначеної кнопку, зв'язану з дією, яку не можна чи скасувати яке може привести до руйнівних наслідків. Наприклад, при обра-
Рис. 4.18. Визначена кнопка
ботке тексту небезпечно використовувати у вторинному вікні Знайти і Замінити в якості визначеної кнопку Замінити скрізь.
Як елемент настроювання інтерфейсу визначена кнопка може динамічно змінюватися в процесі взаємодії користувача з вікном. Наприклад, якщо користувач вибирає кнопку, що споконвічно не є визначеної, нова кнопка тимчасово стає такою; при цьому вона приймає зовнішній вигляд визначеної кнопки (замість вихідної). Якщо ж користувач переміщає фокус введення в межах вікна на інший елемент інтерфейсу, що не є кнопкою, у якості визначеної відновлюється вихідна кнопка.
Якщо у вікні мається інший елемент інтерфейсу, що вимагає керування за допомогою клавіші <Enter> (наприклад, многострочное текстове поле), то ви не можете призначити для такого вікна визначену кнопку. Крім того, коли фокус уведення встановлений на який-небудь інший елемент інтерфейсу, і це вимагає використання клавіші <Enter>, визначена кнопка тимчасово перестає бути такий.
Як засіб прискореного вибору визначеної кнопки й одночасного виконання зв'язаної з нею команди, для неї може підтримуватися подвійний щиглик ЛКМ.
НАВІГАЦІЯ У ВТОРИННОМУ ВІКНІ
Навігація у вторинному вікні за допомогою миші цілком ідентичнаі навігації в первинному вікні.
Клавіатурний інтерфейс для вторинних вікон заснований на використанні клавіші <Таь> і комбінації <Shіft>+<Tab>, при натисканні яких фокус уведення переміщається між сусідніми елементами інтерфейсу (на наступний і попередній відповідно). Кожен елемент інтерфейсу має атрибут, що визначає для нього порядок навігації. Установите значення цього атрибута таким чином, щоб користувач міг переміщатися по вторинному вікну в природному при читанні порядку: сле-
117
ва праворуч і зверху вниз; відповідно, у вихідному стані фокус уведення повинний бути встановлений на елементі, розташованому у верхній лівій області вікна. Разом з тим, порядок переміщення по вікну повинний також враховувати наявність логічно зв'язаних груп елементів інтерфейсу. Наприклад, якщо вікно містить групу перемикачів, вибудованих вертикально, те фокус уведення повинний послідовно пройти зверху вниз через усю групу і тільки потім переміститися на елемент, розташований правее. Кнопки, що реалізують команди, загальні для усього вікна, розташовуються, як правило, останніми (у нижній чи правій нижній області вікна).
Зовсім не обов'язково призначати клавіша-акселератор для кожного елемента вто-ричрюго вікна. Для тих же елементів, для яких він здається розроблювачу корисним, клавіатурний доступ може бути реалізований через статичні текстові області.
При реалізації клавіатурної навігації можуть додатково використовуватися клавіші керування курсором (наприклад, клавіші <Нагору> і <Униз> забезпечують перехід між рядками текстового чи полючи між перемикачами усередині групи). Завжди використовуйте клавіші керування курсором для переходу між прапорцями й елементами списку.
Текстові клавіші, що немодифікуються, також підтримують навігацію, якщо елемент інтерфейсу, на який у даний момент установлений фокус уведення, не використовує ці клавіші для введення інформації. Наприклад, якщо фокус уведення встановлений у текстовому чи полі списку, текстова клавіша не може бути використана як засіб керування для цього елемента.
Клавіші доступу не тільки дозволяють користувачу переходити від одного елемента до іншого, вони забезпечують той же ефект, що і щиглик ЛКМ на обраному елементі. Так, якщо клавіша доступу визначена для кнопки, то натискання клавіші приводить до виконання команди, зв'язаної з цією кнопкою.
Клавіші доступу можуть бути визначені таким чином, щоб забезпечити повернення фокуса введення на логічно зв'язаний елемент інтерфейсу. Наприклад, якщо при роботі зі списком користувач використовує клавішу для доступу до кнопки, що модифікує вміст списку, те після модифікації фокус уведення може бути автоматично повернутий у список.
Для кнопок ОК і Скасувати звичайно не призначаються клавіші доступу, якщо вони є основними кнопками для даного вторинного вікна. У цьому випадку для доступу до них за замовчуванням використовуються клавіші відповідно <Enter> і <Esc>.
Натискання клавіші <Enter> завжди приводить до вибору визначеної кнопки (якщо вона існує) і виконанню зв'язаного з нею дії. Якщо визначена кнопка отсутствует, то клавіша <Enter> може використовуватися розроблювачем за його розсудом.
ПІДТВЕРДЖЕННЯ КОРЕКТНОСТІ ВВЕДЕННЯ
Завжди підтверджуйте коректність уведення даних користувачем у вторинному вікні, причому з мінімально можливою затримкою. В ідеальному випадку коректність уведення
118
повинна підтверджуватися відразу після закінчення введення. При виявленні помилки можна або заборонити введення, або використовувати звуковий і візуальний зворотний зв'язок, щоб попередити користувача про помилку. Ви можете також вивести на екран вікно повідомлення, що містить пояснення по виниклій ситуації, особливо якщо користувач багаторазово намагається повторити неправильне введення. Імовірність помилок користувача може бути знижена за рахунок використання елементів інтерфейсу, що обмежують можливий вибір користувача в конкретній ситуації (до таких елементів відносяться, наприклад, перемикачі і списки), або шляхом ініціалізації області введення значенням, установленим за замовчуванням.
Якщо неможливо підтвердити правильність уведення безпосередньо після його завершення, варто передбачити спосіб підтвердження дій користувача по закінченні його роботи з даним вторинним вікном. Якщо і це важко, то підтверджуйте коректність уведення всякий раз, коли користувач намагається закрити вікно. У випадку помилки залишіть вікно відкритим і виведіть відповідне повідомлення; після того, як користувач його закриє, установите фокус уведення на тім елементі, що містить невідповідні дані. ?
