
- •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.5. Форма курсору і методи виділення
Ціль як пошуку з обмежниками, так і покрокового пошуку рядка звичайно полягає в тім, щоб знайти в тексті деякий рядок і виділити її. Користувачі намагаються використовувати як можна більш короткі послідовності в шаблонах пошуку, тому що довгі послідовності важко набирати, і в більшості систем вони повинні бути набрані з точністю до кожного символу, щоб відповідати цільовому об'єкту. Тому пошук рядка звичайно не застосовується для виділення навіть середніх по розмірі цільових об'єктів, довжина яких більше, ніж 10-15 символів, не говорячи вже про дійсно великі блоки тексту. Пошук рядка застосовується для того, щоб допомогти користувачу знайти місце, де розташоване шукана вибірка, після чого користувач може застосувати вже інший метод для позначення цієї вибірки (наприклад, використовувати ГУВ для переміщення курсору від одного кінця вибірки до іншого). Однак, якщо краю вибірки не можна бачити одночасно, варто використовувати інший метод. Він складається з наступних кроків: (1) позначення одного краю вибірки за допомогою тієї техніки, що використовується в даній системі; (2) зробити видимим інший край вибірки за допомогою смуг прокручування; (3) позначити інший край вибірки. У більшості систем позначення другого краю вибірки дозволяє виділити усю вибірку.
Більш ефективний підхід полягає в тім, щоб створити такий механізм пошуку, що дозволили б розміщати курсор на конкретному символі. Два таких розміщення курсору можна використовувати для позначення першого й останнього символу вибірки. Таким чином, уся безліч механізмів, звичайно використовуваних для пошуку країв вибірки (а саме: переміщення курсору, прокручування, різні механізми пошуку сторінок, пошуку по шаблоні і т.д.) і їхні позначення заміняються одним механізмом, що використовується два рази, що спрощує процес вивчення, використання і формування звичок, а також спрощує впровадження.
Розглянемо тепер графічну форму курсорів. В даний час найбільш розповсюдженою формою текстових курсорів є курсор, що міститься між символами, як це показано на мал. 5.7. Однієї з проблем стандартного текстового курсору є те, що користувачі намагаються помістити його точно між символами, цілячи на невеликий горизонтальний об'єкт, що по розмірі менше, ніж необхідний, що відповідно до закону Фитса приводить до тимчасових витрат. Крім того, під час тестувань, проведених у компанії Іnformatіon Applіance, ми з подивом знайшли, що ця розповсюджена форма курсору створює цікаву когнітивну проблему, що складається в тім, що користувач повинний розташовувати курсор по-різному, у залежності від того, яке дія він збирається зробити далі. Зокрема , щоб видалити існуючий символ за допомогою клавіші <Backspace>, потрібно розмістити курсор праворуч від символу (в англійській чи будь-якій іншій мові, що читається ліворуч праворуч). Щоб уставити якийсь символ поруч з існуючим символом, необхідно помістити курсор ліворуч від існуючого символу (у цьому випадку існуючий символ зрушиться вправо). Наш подив був зв'язаний з тим, що використання стандартного курсору добре знайомо кожному користувачу, і тому ніхто не міг подумати, що курсор можна було б розглядати як потенційне джерело проблем.38 Любою, хто користався курсором, знає, що розібратися з тим, як їм користатися, нескладно. Проте , у починаючих користувачів комп'ютерів може виникнути деяка плутанина і помилки при перших спробах його використання. Плутанина збільшується ще і тим, що користувачі не бачать локуси дії застосовуваних команд.
Рис. 5.7. Стандартний курсор, що поміщається між символами
Уведення режиму, при якому видалення відбувається в напрямку, зворотному звичайному, не вирішує проблеми. Такий метод, називаний правобічним видаленням (forward erase), дозволяє завжди розміщати курсор ліворуч від символу, до якого буде застосована дія. Однак у цьому випадку ви будете іноді зненацька для себе видаляти в неправильному напрямку, тому що поточне напрямок видалення не знаходиться в локусі вашої уваги. Якщо потрібно наявність двох напрямків видалення, бажано використовувати для цього дві різні чи клавіші ж увести режим для протилежного напрямку видалення.
Використання курсору, що візуально показує як (1) область вставки, так і (2) чи символ символи, що можуть бути вилучені клавішею <Backspace>, може бути коштовним поліпшенням інтерфейсів, орієнтованих на роботу з текстами. Друга форма підсвічування може бути аналогічна тієї, котра використовується для підсвічування вибірок. Один зі способів досягнення цього показаний на мал. 5.8.
Рис. 5.8. Курсор із двох частин, що виділяє як окремий символ, так і розширену вибірку. Частина курсору, що позначає область вставки, мигає для того, щоб курсор можна було легко знайти на екрані
Переміщення курсору до об'єкта за допомогою ГУВ є багаторазовим процесом, у якому користувач спочатку візуально фіксує цільовий об'єкт і потім переміщає курсор до цього об'єкта. Якщо користувач не пам'ятає, де знаходиться курсор, йому також прийдеться візуально шукати його місцезнаходження. Після цього він знову шукає цільовий об'єкт і т.д. доти , поки об'єкт і курсор не виявляються поруч в одному полі зору широтою приблизно 5°. Іншими словами, для переміщення курсору за допомогою ГУВ користувач повинний виконати кілька процесів, що вимагають часу. Проте , ГУВ необхідно для вказівки на графічні чи об'єкти при роботі в цілком графічному середовищі.
Неповороткість ГУВ при роботі з текстами збільшується у випадках, коли виникає необхідність указати на об'єкт, що знаходиться за межами сторінки. У цих випадках використання тільки ГУВ змушує користувача використовувати смуги прокручування, перемикачі сторінок і інші механізми, щоб перейти до того змісту, на яке потрібно вказати. Кожний з цих методів вимагає вивчення, і багато хто з них працюють досить повільно.
Функція LEAP дає користувачу когнітивна перевага, що рятує його від необхідності вибирати між різними методами в залежності від відстані до об'єкта. (Alzofon і ін., 1987 р.). Наявність клавіші <LEAP> і ГУВ означає, що мається два основних способи переміщення курсору. Однак користувач вибирає той чи інший метод у залежності від змісту об'єкта, а не від відстані між курсором і цим об'єктом. Звичайний зміст уже знаходиться в локусі вашої уваги, тому когнітивний вибір між клавішею <LEAP> і ГУВ зробити порівняно просто.
Використання функції LEAP може бути особливо корисним у системах, керованих голосом, а також для користувачів з руховими чи порушеннями повторними стресовими поразками, для яких важливо мінімізувати роботу з клавіатурою. Спеціальна кнопка (наприклад, установлена на мікрофоні) може служити для установки квазирежима LEAP. Об'єктом для функції LEAP завжди є деякий символ у тексті, і цей символ (незалежно від того, чи дивиться користувач на нього чи думає про нього) звичайно знаходиться в локусі уваги користувача під час того, як він застосовує функцію LEAP. На відміну від використання ГУВ, у цьому випадку користувач не повинний візуально шукати цільовий об'єкт, щоб перемістити до нього курсор. Це властивість функції LEAP настільки виражено, що нею можуть користатися навіть сліпі користувачі, що було встановлено в ході тестів, проведених у лікарні Відомства по справах ветеранів в Упали Альто (результати не опубліковані).
Ще більш важливим є те, що ця функція може використовуватися в системі, побудованої на її основі, так широко, що незабаром воно стає для користувача автоматичным. У структурі цієї функції немає нічого, що могло б перешкоджати формуванню коштовних автоматичных навичок (звичок) чи що могло б привести до проблем після того, як такі звички сформувалися. Функція LEAP повинна працювати швидко, завжди виявляючи наступний екземпляр поточного шаблона пошуку за час, що не перевищує час реакції користувача, щоб не давати йому можливості і часу виконати якась дія. Необхідна швидкість може бути досягнута за допомогою методів, розглянутих у розділі 5.4.
Для порівняння ГУВ і функції LEAP по тимчасових витратах можна використовувати метод GOMS-аналізу швидкості печатки. За умови, що руки користувача споконвічно знаходяться на клавіатурі, використання ГУВ для вказівки на якусь букву в тексті вимагає виконання наступних операцій: H P K. З обліком правила розміщення операторів M одержуємо H M P K, чи 0.4+1.35+1.1+0.2=3.05 с. Час, необхідне на використання функції LEAP, залежить від кількості символів, які варто ввести, щоб перейти до необхідного цільового об'єкта. Тестування показало, що середнє число символів, використовуваних при застосуванні функції LEAP, склало близько 3.5 для тих користувачів, що були протестированы в перший тиждень використання комп'ютера Canon Cat. Для переміщення курсору до деякого цільового об'єкта потрібно виконати наступні операції: натиснути на клавішу <LEAP>, після чого набрати 3.5 символу. Таким чином, застосування функції LEAP у середньому складається з 4.5 символів. Додавання, відповідно до правил, оператора М дає в результаті 1.35+(4.5*0.2)=2.25 с.
В іншому експерименті по хронометруванню, у якому брали участь досвідчені користувачі, порівнювалася миша з функцією LEAP. Задача полягала в тому, щоб перемістити курсор між двома випадково обраними символами, відображеними на екрані розміром 25 рядків по 80 символів. Відлік часу не починався доти , поки користувач не починав рухати мишею, чи доти , поки він не натискав на клавішу <LEAP>. Середній час склало приблизно 3.5 із для миші і 1.5 із для клавіші <LEAP>. Збільшення значення в порівнянні з розрахунковим, імовірно, зв'язано з невеликими розмірами цільових об'єктів (у якості яких використовувалися окремі символи), що було обумовлено законом Фитса. Зненацька малі значення для клавіші <LEAP>, імовірно, можуть порозуміватися невеликими розмірами тексту, у якому можливий шаблон пошуку в середньому міг складатися приблизно з 2 символів. Учасникам експерименту був даний необмежений час на планування своїх дій перед використанням чи миші клавіші <LEAP>. Таким чином, у багатьох випадках користувач може швидше завершити пересування курсору за допомогою клавіші <LEAP>, чим перемістити свої руки з клавіатури до миші.
5.6. Позиція курсору і клавіша <LEAP>
Об'єктом функції клавіші <LEAP> є окремий символ. З якої сторони символу повинний з'являтися курсор: чи праворуч ліворуч? Розміщення курсору ліворуч від символу правильно тільки в тому випадку, якщо ви збираєтеся зробити в цьому місці вставку. Тоді як розміщення курсору праворуч від символу правильно за умови, що ви збираєтеся видалити цей символ. Очевидно, комп'ютер повинний знати про ваш намір перед тим, як правильно розмістити курсор.
Для випадку з вставкою розглянемо старий курсор у виді прямокутника навколо чи букви у виді підкреслення. При використанні клавіші <LEAP> для переходу до якоїсь букви курсор повинний розташовуватися на самій букві. (Курсор не заважає читанню букви; мал. 5.9.) Тоді користувач може точно зробити в цьому місці чи вставку видалення. Прямокутний курсор дозволяє більш точно, чим стандартний, межсимвольный курсор, показати місце, де відбудеться чи вставка видалення.
Рис. 5.9. (а) За допомогою ГУВ чи клавіші <LEAP> курсор був розміщений поруч з буквою l у слові slat. (b) Якщо натиснути клавішу <Backspace>, вийде sat. (с) Але якщо ви введете букву p, ви одержите слово splat. Зверніть увагу на те, що в першому випадку обидві частини курсору (для вставки і видалення) були розміщені на букві l, показуючи, що ви можете в цьому місці зробити або вставку, або видалення. Після видалення (b) чи вставки (с) елементи курсору розділилися, показуючи тепер, де можливо виконати чи вставку видалення
Такий варіант породжує іншу проблему. Припустимо, що мається слово tongs. Курсор установлений на букві o. Ви вводите букву h. Виходить thongs. Куди повинний переміститися курсор? Тут знову ж потрібно знати намір користувача. Якщо курсор знаходиться на букві h, то неясно: ця буква є місцем чи вставки видалення? Видаленням повинне бути дія, протилежне вставці, - так, щоб натискання на клавішу <Backspace> привело до видалення букви h і поверненню до слова tongs. Але якщо ви введете іншу букву, скажемо r, таке натискання повинне змістити букву o до букви h, утворити в результаті слово throngs. При використанні надсимвольного курсору, напевно, теж повинні бути передбачені засоби попереднього визначення напрямку його дії.
Проблема може бути вирішена в такий спосіб. Коли ви пересуваєте курсор, він повинний міститися на окремий символ. При чи уведенні видаленні курсор повинний розділятися на двох частин, зв'язані з двома прилягаючими символами, як це показано на мал. 5.9. Перший символ позначений частиною курсору, що видаляє, а другий позначений знизу покажчиком вставки. Фокус почасти полягає в тім, що використовується курсор із двох частин. Він зроблений таким чином, що коли його частини поєднуються (як вони повинні це робити після натискання клавіші <LEAP> чи переміщення курсору якимсь іншим способом), користувачу графічно ясно, що вони розташовуються на одному символі незалежно друг від друга. Усе це може показатися складним, коли описується словами, але насправді для починаючого користувача навчитися користатися курсором LEAP простіше, ніж звичайним курсором, зображеним на мал. 5.7. Усе, що потрібно знати починаючому користувачу - це те, як виглядають маркери для виділення і вставки, і що клавішею <Delete> віддаляється виділене, а символи, що вводяться, з'являються поруч з маркером вставки.
Символи розташовуються скоріше послідовно, чим суміжно, тому що хоча два послідовних символи звичайно і можуть бути суміжними, вони не є такими, якщо перший з них знаходиться наприкінці рядка. Для мов, що читаються ліворуч праворуч, курсор видалення звичайно розташовується праворуч від символу, що вставляється, а для мов, що читаються праворуч ліворуч, - порядок зворотний. Для вертикально-орієнтованих мов курсор вставки розміщався б під курсором видалення, і для двовимірної печатки (boustrophedonіc scrіpts) у кожнім рядку вони б мінялися місцями.
Сприйняття цільових об'єктів стає простіше при використанні ГУВ з курсором із двох частин, оскільки об'єкти, чи символи, більше по розмірі, чим пробіли між ними, і тому активні області легше знайти. (Активна область для курсору PARC поширюється приблизно до середини кожного символу по обох сторони від пробілу між ними. Однак візуально вони ніяк не розділяються, отчого цільовий об'єкт здається менше по розмірі. На практиці багато користувачів намагаються помістити курсор між символами, тим самим викликаючи обмеження закону Фитса, зв'язане з невеликими розмірами цільових об'єктів.)
Як ми вже говорили, що починають користувачі іноді випробують труднощів у розумінні того, як працює стандартний межсимвольный курсор. Цей перехідний процес зв'язаний з интерфейсным елементом, настільки знайомим кожному користувачу, що рідко (якщо взагалі колись) у кого-небудь виникає думка піддати його сумніву. З курсором із двох частин, що при переході на якийсь символ складається, згадана неясність у тім, на який символ курсор указує, зникає й у такий спосіб знімає всю проблему.
У деяких випадках може бути корисним обмежити дія функції LEAP. Обмеження пошуку може бути виконане за допомогою: (1) виділення області пошуку; (2) виділення чи команди поточної вибірки (як це описано в розділі 5.2.1), що обмежує наступний перехід (за допомогою клавіші <LEAP>) до цієї області, що стає старою вибіркою; (3) використання клавіші <LEAP>. Однак обмеження функції LEAP не повинне виконуватися шляхом уведення режиму. Відсутність можливості визначити, включений чи режим ні, робить використання функції LEAP надзвичайно незручним - користувач більше не зможе легко знаходити необхідні йому об'єкти. Компанія Canon використовувала в комп'ютері Canon Cat механізм, названий "Local Leap" (локальний стрибок), що викликав саме ці проблеми, про які читач цієї книги тепер уже знає і може їх попередити.
Упровадження функції LEAP також вимагає наявності іншої функції - функції LEAP AGAІ (Стрибнути ще раз), за допомогою якої виконується перехід до наступного екземпляру того ж шаблона в тім же напрямку, у якому функція LEAP була застосована останній раз. У комп'ютерах SwyftWare і Canon Cat пошук звичайно здійснювався у виді переходу (LEAP) до шаблона і потім використання кілька разів клавіші <LEAP AGAІ> доти , поки не виявлявся шуканий екземпляр.
Функція LEAP дозволяє уніфікувати виконання пошуку і переміщення курсору усередині тексту з обліком того, що текст може включати таблиці, графічні елементи і будь-які інші алфавітно-цифрові символи. Після деякого періоду використання функції LEAP користувач перестає зауважувати процес переходу (LEAPіng) так само, як оператор, що володіє десятипальцевым методом набору, не зауважує механічного руху пальців і концентрується тільки на створенні змісту. Якщо ви хочете розмістити якийсь цільовий об'єкт на дисплеї, ви "перескакуєте" (LEAP) до нього, і вам не потрібно для цього зупинятися, щоб знайти цей об'єкт усередині змісту системи. Вам не потрібно проходити по ієрархічних чи структурах відкривати папки. Ви просто "перестрибуєте" прямо до того, що вам потрібно. Однак коли люди, що звикли до стандартних файлових структур, уперше зіштовхуються із системою, постаченою функцією LEAP, вони часто продовжують думати з погляду того, де потрібний об'єкт розташовується ієрархічно, і тому шукають його, намагаючись установити його загальне місцезнаходження, і потім переміщаються до шуканого екземпляра по визначеному шляху. Якщо середовище, усередині якого ви здійснюєте пошук, добре індексована, для користувача стає не важливим, чи знаходиться шуканий елемент у пам'яті, у локальному чи мережному чи сховищі ж у локальній чи глобальній мережі.
Говорячи про методи пошуку, варто згадати спостереження, що були зроблені Ландауэром (Landauer) і його колегами. Ними було показано, що найбільш розповсюджені форми розширеного текстового пошуку, у якому пошук визначається булевыми комбінаціями чи рядків регулярними вираженнями, менш ефективні в порівнянні з повнотекстовим механізмом пошуку. Останній виявляється і більш швидким, і більш простим, і за допомогою його користувачі знаходять більше придатних елементів, по яких вони роблять пошук (Landauer, 1995). Як показує GOMS-аналіз і інші виміри ефективності, LEAP має переваги над методами пошуку, використаними Ландауэром, і тому має ще більшу цінність.