
- •1. Передумови
- •1.1. Визначення інтерфейсу
- •1.2. Простої повинне залишатися простим
- •1.3. Орієнтація на людину і на користувача
- •1.4. Інструменти, що перешкоджають новим ідеям
- •1.5. Розробка інтерфейсу як частина загального циклу розробки
- •1.6. Визначення человекоориентированного інтерфейсу
- •2. Когнетика і локус уваги
- •2.1. Ергономіка і когнетика: що ми можемо і чого не можемо
- •2.2. Когнітивне свідоме і когнітивне несвідоме
- •2.3. Локус уваги
- •2.3.1. Формування звичок
- •2.3.2. Одночасне виконання задач
- •2.3.3. Сингулярность локусу уваги
- •2.3.4. Джерела локусу уваги
- •2.3.5. Експлуатація єдиного локусу уваги
- •2.3.6. Поновлення перерваної роботи
- •3.2. Режими
- •3.2.1. Визначення режимів
- •3.2.2. Режими, користувальницькі настроювання і тимчасові режими
- •3.2.3. Режими і квазирежимы
- •3.3. Моделі "іменник-дієслово" і "дієслово-іменник"
- •3.4. Видимість і заможність
- •3.5. Монотонність
- •3.6. Міф про дихотомію "новачок-експерт"
- •4.2. Модель швидкості печатки goms
- •4.2.1. Тимчасові інтервали в інтерфейсі
- •4.2.2. Розрахунки по моделі goms
- •4.2.3. Приклади розрахунків по моделі goms
- •4.2.3.1. Інтерфейс для Хола: варіант 1. Діалогове вікно
- •4.2.3.3. Інтерфейс для Хола: варіант 2
- •4.3.1. Продуктивність інтерфейсу для Хола
- •4.3.2. Інші рішення інтерфейсу для Хола
- •4.4. Закон Фитса і закон Хика
- •4.4.1. Закон Фитса
- •4.4.2. Закон Хика
- •5.1. Уніфікація й елементарні дії
- •5.2. Каталог елементарних дій
- •5.2.1. Підсвічування, вказівка і виділення
- •5.2.2. Команди
- •5.2.3. Екранні стани об'єктів
- •5.3. Імена файлів і файлові структури
- •5.4. Пошук рядків і механізми пошуку
- •5.4.1. Роздільники в шаблоні пошуку
- •5.4.2. Одиниці взаємодії
- •5.5. Форма курсору і методи виділення
- •5.7. Ліквідація додатків
- •5.8. Команди і трансформатори
- •6.1. Інтуїтивні і природні інтерфейси
- •6.2. Поліпшена навігація: ZoomWorld
- •6.3. Піктограми
- •6.4. Способи і засоби допомоги в человекоориентированных інтерфейсах
- •6.4.1. Вирізувати і вставити
- •6.4.2. Повідомлення користувачу
- •6.4.3. Спрощення входу в систему
- •6.4.4. Автоповтор і інші прийоми роботи з клавіатурою
- •6.5. Лист від одного користувача
- •7.1.2. Важливість ведення документації при створенні програм
- •7.2. Режими і кабелі
- •7.3. Етика і керування розробкою інтерфейсів
5.2.1. Підсвічування, вказівка і виділення
Підсвічування (hіghlіghtіng) означає, що за допомогою яких-небудь засобів відображеному на екрані об'єкту придается помітна відмінність. Функція підсвічування полягає в тім, щоб користувач міг, пасивно спостерігаючи зображення на екрані, визначити, що деякий об'єкт одержав від системи особливий статус. Семантика цього статусу залежить від типу об'єкта і від команд, що користувач може застосувати до даного об'єкта. Для видючих користувачів виділення звичайне візуально. Як візуальні методи виділення може використовуватися звертання яскравості, зміна чи кольору контрасту, підкреслення, чи миготіння будь-яка інша періодична зміна, додавання до об'єкта статичної чи анимированной рамки. У якості не візуальних методів виділення може використовуватися набір різних чи голосів зміна інтонації.
Коли користувач наводить курсор на якісь об'єкти, вони повинні бути підсвічені. Типовим об'єктом у текстах є символ. Підсвічування одиничного об'єкта при переміщенні курсору без якихось інших дій з боку користувача (як, наприклад, натискання на кнопку миші) є вказівкою (іndіcatіon). За допомогою вказівки користувач може в будь-який момент знати, на які об'єкти він указує з погляду системи. У дуже багатьох сучасних системах користувач повинний догадуватися про те, що буде виділене чи активовано при натисканні на кнопку ГУВ. Якщо здогад невірний, користувачу прийдеться зробити іншу спробу, що приводить до втрати часу і сил. Указівка може бути особливо корисним, коли об'єкти, що користувач хоче виділити, мають невеликі чи розміри розташовані близько друг до друга, чи перекривають один одного, чи їхні границі неясні. Указівка необхідна в тих випадках, коли інтерфейс розроблений відповідно до принципу видимості.
Підсвічування, використовуване для вказівки, не повинне бути занадто контрастним чи яскравої, щоб рух курсору не викликало роздратування. У деяких випадках корисно, щоб вказівка об'єктів не відбувалося, якщо швидкість переміщення курсору перевищує визначене граничне значення. Варто звернути увагу на те, що чим менше об'єкт (тобто чим менше візуальний кут зазначеного об'єкта), тим більший контраст повинний використовуватися для його вказівки - однак це питання эргономический.
Указівка недостатня використовується в сучасних системах. Активне використання вказівки в розробці інтерфейсу дозволяє істотно скоротити кількість щигликів мишею в порівнянні із сучасними інтерфейсами. По суті справи, указівка часта може замінити клік мишею, і замість подвійного щиглика можна робити тільки один, як при виборі посилання в броузере. Допустимо, що користувач хоче забрати неактивне вікно з екрана. У кожнім вікні мається кнопка Закрити. Для цього як в операційній системі Wіndows, так у Macіntosh користувач повинний спочатку клацнути по вікну, щоб зробити його активним, і тільки потім натиснути на кнопку Закрити. Цей зайвий щиглик, що робиться для активізації того вікна, що користувач, насправді , хоче закрити, викликає особливе роздратування. Але якби вікно можна було активізувати усього лише переміщенням до нього курсору, то для закриття вікна одного натискання на кнопку миші було б досить. Звичайно, якщо ви розробите систему, у якій активізація відбувається тільки у визначених чи місцях за певних умов, те тим самим ви створите модальне протиріччя, що буде тільки збивати користувачів з користі. Активізація повинна відбуватися системно. Оскільки такий підхід стає більш відомим, попит на нього з боку користувачів збільшить його поширення.
Виділення (selectіng) - це процес, за допомогою якого користувач указує, що один чи кілька об'єктів мають особливий статус, що може бути сприйнятий системою. Як результат процесу виходить вибірка (selectіon). Звичайно користувач робить вибірку з метою застосування до неї в найближчому часі команди. На відміну від менш постійної вказівки, виділення, що позначає вибірку, є більш стійким і зберігається, навіть якщо користувач відведе курсор убік . Користувач може виділити об'єкт, клацнувши по кнопці ГУВ, що вказує на нього. Крім того, користувач може зробити виділення розташованих поруч об'єктів за допомогою вимальовування чи прямокутника іншої фігури, при цьому всі об'єкти, що виявляться в області фігури, будуть обрані. Іншим зручним способом добору є створення чи багатокутника довільної фігури. У цьому випадку всі об'єкти, оказавшиеся усередині фігури, будуть обрані після того, як користувач замкне її границю. Після того як вибір зроблений, що предыдет вибірка повинна стати старою вибіркою (old selectіon). (У більшості сучасних систем стара вибірка просто-напросто скасовується (deselect).) Цей процес може бути багаторазово повторений, тому користувач може створити додатково до першої старої вибірки другу стару вибірку, третю і т.д. - аж до n-й старої вибірки. У математика тут, швидше за все, виникне бажання назвати поточну вибірку нульовою старою вибіркою. Виділення, за допомогою якого позначається вибірка, повинне бути більш помітним і відрізнятися від того, котре використовується для вказівки. Виділені старі вибірки також повинні добре відрізнятися друг від друга - можливо, зі зменшенням візуального контрасту для більш старих вибірок. Для легкого розпізнавання старих вибірок вони можуть мати буквено-цифрові позначення.
Вибірка може включати як окремий об'єкт на екрані, так і геометричну область, чи ж бути складений з різних вибірок. У більшості сучасних інтерфейсів користувач робить складені вибірки - у тому числі і розривні - з набору окремих вибірок, для чого необхідно зробити початкову вибірку. Потім, як правило, користувач може натиснути клавішу <Shіft> і, утримуючи її і знаходячись, таким чином, у квазирежиме, клацнути по інших об'єктах, щоб приєднати їх до загальної чи вибірки отсоединить їх від її.
Однак цей спосіб має три недоліки. По-перше, команда для створення складених вибірок є невидимої. По-друге, при створенні великої складеної вибірки легко припуститися помилки (наприклад, якщо користувач випадково відпустить клавішу <Shіft> і клацне по наступному об'єкті, уся складна вибірка, що була створена до цього моменту, буде загублена). По-третє, механізм використовується як "перемикач": той самий жест служить як для скасування виділення (якщо об'єкт був уже виділений), так і для установки виділення (якщо об'єкт був не виділений).
Перша проблема полягає у відсутності видимості і може бути легко вирішена за допомогою, наприклад, екранної підказки. Друга проблема полягає в тім, що при складанні вибірки мається великий ризик здійснення помилки. Більш зручний спосіб створення складних вибірок складається в наявності спеціальної команди, за допомогою якої поточна вибірка визначається як об'єднання старого і поточного виділення. Така команда дозволила б користувачу зосередитися на створенні вибірки, не піклуючись про те, що було обрано до цього. Тільки після підтвердження поточного виділення вона може бути додана до складеної вибірки. Можливість звертання до старих вибірок і позначення кожної з них особливим підсвічуванням дозволяє застосовувати команди з безліччю аргументів, як, наприклад, використання двох аргументів для команди взаимозамены двох вибірок. Порівняєте метод перестановки двох ділянок тексту, що ви використовуєте зараз, з іншим методом: створення двох вибірок і потім застосування команди перестановки.
У більшості існуючих сьогодні систем команди Скасувати (Undo) і Повторити (Redo) не можна застосувати до процесу створення вибірок. Це не зовсім виправдано, оскільки помилки при створенні вибірок случаються досить часто. Необхідним елементом будь-якого человекоориентированного інтерфейсу є універсально застосовні команди Скасувати і Повторити. Чи число рівні припустимого скасування виконаних команд повинні обмежуватися тільки лише обсягом доступної пам'яті. Команди Скасувати і Повторити повинні бути всепроникаючими і застосовуватися до будь-якої операції, що логічно може бути повторена чи скасована. Також ці команди повинні бути зворотними один одному (инверсивными) - знову ж у тій мері, наскільки це логічно можливо. Це означає, що виконання команди Повторити після команди чи Скасувати виконання команди Скасувати після команди Повторити не повинне приводити до змін у змісті. Очевидно, що ці команди не повинні застосовуватися до самих себе. Оператори Скасувати і Повторити є основними, і їхня функція настільки важлива, що в майбутніх системах для них повинна бути передбачена спеціальна клавіша. Команда Повторити повинна призначатися в такий спосіб: Shіft?Undo???. На клавіші повинні бути ясно позначені два слова: Скасувати (Undo) і Повторити (Redo) (мал. 5.1). Така клавіша могла б з більшою користю замінити собою зухвалу багато проблем клавішу <Caps Lock>.
Рис. 5.1. Клавіша Скасувати/Повторити (Undo/Redo)
Що стосується третьої проблеми, то в розділі 3.2, присвяченому перемикачам, я вже говорив, що в челокекоориентированном інтерфейсі перемикачі взагалі не повинні використовуватися. У даному випадку простим рішенням проблеми могло б бути використання однієї чи команди квазирежима для додавання об'єкта до вибірки, а іншої чи команди квазирежима - для видалення об'єкта з вибірки. При спробі додати до вибірки об'єкт, що там уже мається, чи видалити з вибірки об'єкт, якого в ній ні, сама вибірка залишиться незмінної.
Інтерфейс звичайно має одну крапку, у якій, як передбачають розроблювачі, повинний проходити процес взаємодії між користувачем і системою - крапку фокуса. Наприклад, якщо ви друкуєте сліпим методом і текст, що набирається вами, з'являється на екрані, то місце, де з'являється текст, є фокусом і часто збігається з локусом вашої уваги. Якщо ви не володієте методом сліпого набору, то ваш локус уваги буде переміщатися між клавіатурою і дисплеєм. В інтерфейсах у кожен момент звичайно мається тільки один курсор. Його позиція визначається за допомогою ГУВ, клавіш керування чи курсором команд (наприклад, Знайти (Fіnd)).
Локус уваги завжди знаходиться на якомусь фізичному, ментальному чи відображуваному об'єкті. Те ж саме можна сказати і про системний фокус. Наприклад, в існуючих текстових процесорах при переміщенні курсору усередину документа (дія, що саме по собі не повинно бути необхідним) він може бути розташований між двома буквами, і, таким чином, може показатися, що ніякий об'єкт не є фокусом системи. Насправді у фокусі знаходяться дві букви - та, котра ліворуч і може бути вилучена командою Delete28, і та, котра праворуч і де з'явиться наступна введена буква.
Коли процесом взаємодії керує людина, у фокусі звичайно знаходиться поточна вибірка. Якщо ж система відповідає на дію чи користувача зовнішньої системи, у фокусі звичайно знаходиться результат дії.