
- •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. Етика і керування розробкою інтерфейсів
2.3.6. Поновлення перерваної роботи
Звичайно, перервавши деяку роботу, ви потім до неї повертаєтеся. Якщо переривши продовжується усього кілька секунд - у межах періоду загасання короткочасної пам'яті, - додаткових стимулів, для того щоб ви могли повернутися до виконання поточної задачі, не потрібно. Якщо період більш тривалий, то повернення до виконання перерваної задачі повинне бути чимось ініційовано - наприклад, видом лежачої перед вами незакінченої роботи. Такі підказки в звичайному житті зустрічаються так само часто, як і при роботі з комп'ютерами: бананова шкірка, залишена вашою 4-літньою дитиною на кухонному столі, стає підказкою про те, що шкірку необхідно викинути.
Однієї з метафор, що пронизують як персональні комп'ютери, так і похідні від них технології, є та центральна, нейтральна відправна область, називана ще робітником столом, з якої користувач може запускати різні додатки. Після включення більшість комп'ютерів відображають робочий стіл, хоча деякі з них можна настроїти на запуск визначеного набору додатків. Закривши додаток, ви звичайно повертаєтеся на робочий стіл. Такий підхід до інтерфейсу не є орієнтованим на людину й ефективним. Причина тут очевидна: коли ви закриваєте який-небудь додаток, ви хочете або (1) повернутися до попереднього задачі, з яким ви працювали, або (2) почати нову задачу.
У нинішніх системах, заснованих на робочому столі, ви завжди повинні самостійно здійснювати перехід до необхідної задачі. Для інтерфейсу, що завжди повертає вас туди, де ви зупинилися востаннє , це був би гірший можливий випадок, тому що якщо ви захотіли б повернутися до попереднього задачі, вам узагалі не довелося б робити ніяких дій.
Аналогічним образом, коли ви повертаєтеся на який-небудь сайт, чи веб-страницу, найкраще було б повернути вас на те місце, де ви були останній раз, а не на початкову сторінку, тим більше що якщо сайт добре розроблений, то перехід на початкову сторінку здійснюється одним щигликом миші. По цій же самій причинах очевидно, що коли ви відкриваєте документ у якому-небудь додатку, наприклад у текстовому процесорі, ви повинні повернутися до того місця, де ви з ним працювали в той момент, коли чи закрили зберегли його востаннє .
Комп'ютер Canon Cat мав властивість при запуску завжди повертатися до останньої задачі. Більш того, на екрані з'являлося саме те зображення, включаючи позицію курсору, що було на момент останнього його використання. Багато користувачів говорили, що коли вони бачили на екрані ту ж саму картинку, це допомагало їм швидше згадати, чим вони займалися, коли останній раз користалися машиною, тому повертатися до роботи з Canon Cat було для них більш приємно, чим до роботи з комп'ютером, що при запуску відображав робочий стіл. Останнім часом подібний підхід використовується в комп'ютері за назвою Apple іBook, що зберігає поточний стан на диску і при включенні машини виводить його назад на екран.
Розроблювачі радіоприймачів і телевізорів з цифровим настроюванням завжди передбачають можливість збереження параметрів звуку і каналів, на які ці прилади були набудовані востаннє , що, звичайно, ускладнює ці прилади і підвищує їхню вартість, тому що для цього вимагаються елементи енергонезалежної пам'яті, необов'язкові для всього іншого механізму. Для розроблювачів комп'ютерів задача спрощується, тому що в комп'ютерах уже мається значний обсяг такої пам'яті у виді твердого диска. Тому немає виправдання тим розроблювачам, що не передбачають подібну можливість також і в комп'ютерах, маючи всі необхідні для цього апаратні засоби.
________________________________________
1 Локус - місце, положення (лат.) - Примеч. науч. ред.
2 Соліпсизм - теорія, відповідно до якої вважається, що єдине доступне знання - це знання про себе. - Примеч. науч. ред.
3 Англійське слово focus може бути прочитаний і як іменник (фокус), і як дієслово (фокусировать, зосереджувати). - Примеч. пер.
4 Тут слово attentіons означає "залицяння" чи "турбота". - Примеч. ред.
5 Значна увага приділяється вивченню біологічних механізмів, що дозволяють твариною синхронізуватися з зовнішніми тимчасовими циклами. Однак мені не відомо ні однієї роботи, присвяченої дослідженню того, як ми набудовуємося і реагуємо на свої "внутрішні годинник".
6 Розроблювач інтерфейсів міг би здивуватися: якщо в літаку передбачена спеціальна звукова сигналізація, чому ж тоді не передбачається можливість автоматичного випуску шасі? Хоча в цій книзі не можуть обговорюватися всі подібні тонкості, але тут потрібно сказати, що автоматичний випуск шасі може становити небезпеку для тих, хто знаходиться усередині літака. Тому рішення про випуск шасі завжди оставляется на розсуд пілота.
7 "Якщо неприємність може случитися, вона случається". Перший наслідок з цього закону формулюється в такий спосіб: "Якщо ніяких неприємностей не очікується, вони відбудуться обов'язково".
8 Мені часто приходилося бачити, як мій кіт розривався між цікавістю і страхом, коли всі його органи почуттів спрямовувалися на вивчення якогось незнайомого об'єкта, але в той же час його тіло напружувалося в готовності негайно утекти. У деяких ситуаціях мені і самому приходилося так діяти. Іноді, якщо не тікати, отримана інформація виявляється коштовної, іноді затримка стає фатальною - звідси вираження "цікавість убила кота". Такий двоякий стан, чи, як говорять, "роздвоєння особистості", порозумівається скоріше внутрішнім послідовним переключенням між двома процесами, чим їх одночасною присутністю незалежно друг від друга.
9 Постійна зміна особистості - це чорта, властивій людині. Ми увесь час ростемо і міняємося. Зміни цього роду, а також зміни, зв'язані з розладом людської психіки, тут не розглядаються.
3. Значення, режими, монотонність і міфи
Немає прогресу без боротьби.
Фредерик Дуглас
Щоб бути більш точними при подальшому обговоренні інтерфейсів, ми введемо тут деякі визначення й умовні позначки. Засновані на понятті локусу уваги, даного в главі 2, вони необхідні нам для того, щоб зрозуміти, що таке режими і яке їхній негативний вплив на інтерфейси. Також у цій главі ми познайомимося з позитивною властивістю інтерфейсів, що називається монотонністю і приводить нас до критики інтерфейсів, що передбачають різні режими для починаючих і досвідчених користувачів.
3.1. Термінологія й умовні позначки
Світ поділяється на людей, що думають, що вони праві.
Дидр Мак-Грат
Зміст (чи контент) - це інформація, що знаходиться в чи комп'ютері іншому пристрої, призначеному для обробки інформації, і яка є для вас осмисленої і корисний. Чи створення зміна змісту - це та задача, що ви припускаєте виконати за допомогою згаданого пристрою. Якщо ви письменник, зміст - це ті ваші добутки, що зберігаються в системі. Якщо ви художник, ваші малюнки являють собою зміст системи. Сама система - комп'ютер, а також меню, піктограми й інші його приналежності - не є змістом, якщо тільки ви не програміст і не розроблювач інтерфейсів. Тепер ми можемо перефразувати перший закон робототехніки Азимова (див. главу 1) у термінах змісту: "Ніяка система не може заподіяти шкоду чи змісту своєю бездіяльністю допустити, щоб змісту була заподіяна шкода".
Графічний пристрій уведення (ГУВ) - це механізм для передачі системі інформації про визначене місце розташування чи виборі об'єкта на екрані монітора. Як приклад типового ГУВ можна привести миша, трэкбол, світлове перо, планшетний олівець (tablet pen), джойстик чи тачпад. Під кнопкою ГУВ буде матися на увазі основна кнопка будь-якого ГУВ, наприклад ліва кнопка двухкнопочной миші. Як правило, графічний пристрій уведення використовується для керування місцем розташування курсору, що представлений на екрані монітора у виді чи стрілки іншого значка, що є системною інтерпретацією місця, що указується вами. Оскільки в конкретний момент ми можемо направити свою увагу тільки на один курсор, система не повинна відображати більш одного курсору для кожного наявного графічного пристрою введення. У додатку А приведене обґрунтування тому, чому в миші повинна бути тільки одна кнопка.
Одне натискання і відпускання чи клавіші перемикача без яких-небудь проміжних дій ми будемо називати натисканням (tap). Цей термін відноситься тільки до клавіш на чи клавіатурі іншим контактним перемикачам без фіксації, що при відпусканні автоматично повертаються у вихідне положення й електричний стан.
Клацнути (clіck) означає розташувати курсор у визначеному місці, а потім натиснути і відпустити кнопку ГУВ. Таким чином, вираження "клацніть на слові алігатор" означає, що вам потрібно навести курсор на слово алігатор і потім, не змінюючи позицію курсору, натиснути кнопку ГУВ і відпустити її. Перетягнути (drag) означає натиснути кнопку ГУВ в одному місці розташування курсору, перемістити його в інше місце і вже потім відпустити кнопку. Це дія ще іноді називається клацнути і перетягнути (clіck and drag). Двічі клацнути (double clіck) означає розташувати курсор у визначеному місці, а потім два рази швидко натиснути кнопку ГУВ без проміжного чи руху якої-небудь іншої дії. (На практиці невеликий рух припустиме - звичайно ГУВ злегка зміщається в момент натискання кнопки.) У деяких інтерфейсах застосовувалися потрійні щиглики, а також щиглики з ще великою кількістю натискань.
Існують різні варіанти позначень для комбінацій клавіш, використовуваних при керуванні здебільшого програмного забезпечення. Наприклад, натискання клавіші <Ctrl> і, при її втриманні, натискання і втримання клавіші <Shіft> і потім, при натиснутому положенні обох цих клавіш, натискання клавіші з буквою t часто позначається в посібниках як <Ctrl>-<Shіft>-<t> чи <Ctrl>+<Shіft>+<t>. Однак ці позначення операцій із клавішами не можна відрізнити від умовних позначок послідовностей дій Control, дефіс, Shіft, дефіс, t чи Control, плюс, Shіft, плюс, t відповідно.
Така двозначність може приводити до помилок. Наприклад, коли я працював над рукописом цієї книги, мені знадобилося подивитися, яка комбінація клавіш застосовується для виконання необхідної мені команди. У керівництві було зазначено (наприкінці пропозиції)
Control+.
Тому я натиснув <Ctrl> і потім, утримуючи цю клавішу, увів знак "плюс". Через двозначне позначення в керівництві я зробив помилку. Насправді було потрібно при натиснутій клавіші <Ctrl> натиснути клавішу зі знаком крапки.
Крім того, ці позначення не дають можливості відбити такі дії, як, наприклад, одночасне натискання і втримання клавіш <Ctrl> і <Shіft> з наступним уведенням декількох алфавітних символів, причому клавіша <Shіft> відпускається після введення перших двох символів, а <Ctrl> залишається натиснутої. Альтернативний варіант, що я тільки що використовував, - вираження операцій звичайною мовою, що хоча і зрозуміло, але досить громіздко.
Щоб позначати операції з клавішами точно і коротко, я використовую символ стрілки, що указує вниз, відразу після назви клавіші, на яку потрібно натиснути й утримувати в натиснутому стані, - наприклад, Shіft? означає, що необхідно натиснути й утримувати клавішу <Shіft>. Символ стрілки, що вказує нагору, після назви клавіші показує, що цю клавішу варто відпустити, - наприклад Shіft?. Натискання однієї клавіші, скажемо, клавіші <t>, може бути точно позначене за допомогою запису t?t?. Запис натискання однієї клавіші можна скоротити до t?? чи просто до t, якщо це не викликає двозначності і не може привести до плутанини.
Між окремими діями, що випливають друг за другом, ставиться пробіл. Натискання клавіші пробілу позначається словом
Пробіл
Це позначення неможливе переплутати з набором слова пробіл (space), тому що послідовність символів цього слова, що вводиться з клавіатури, буде записуватися буквами, розділеними пробілами, а саме:
п р о б е л
Коли є ризик невірного чи тлумачення необхідно зробити акцент на кожній окремій дії, я застосовую повний запис: п? п? р? р? про? про? б? б? е? е? л? л?
Будь-які комбінації клавіш можуть бути лінійно представлені в цій системі запису. Наприклад, натискання і втримання клавіші <Shіft>, потім натискання клавіші <n>, після цього натискання і втримання клавіші <Ctrl> при усе ще натиснутій клавіші <Shіft>, потім натискання клавіші <k>, відпускання клавіші <Shіft> при усе ще натиснутій клавіші <Ctrl>, потім натискання клавіші <w> і після цього відпускання клавіші <Ctrl> записується в такий спосіб:
Shіft? n Control? k Shіft? w Control?
За умови, що порядок відпускання клавіш не має значення для роботи інтерфейсу, відпускання кожної з натиснутих клавіш позначається стрілкою нагору для кожної окремої клавіші. Таким чином, набір слова пробіл буде записуватися так:
п?? р?? про?? б?? е?? л??
Приведемо ще один корисний приклад. Щоб відновити вихідний стан ОЗУ на комп'ютері Macіntosh, повинна бути виконана наступна послідовність команд:
Command? Control? Power? ??? Command? Optіon? p? r?
Усі клавіші потрібно утримувати доти , поки не зазвучить сигнал, після чого:
????
(Виражаючи звичайною мовою: натисніть і утримуйте клавішу <Command> - відсутність стрілки нагору означає, що клавішу не слід відпускати відразу ж. Потім натисніть і утримуйте клавішу <Ctrl>. Тут також немає стрілки нагору, тому випливає, утримуючи обидві ці клавіші одночасно, натиснути клавішу <Power>. Ні однієї стрілки нагору ще не було, так що зараз ви утримуєте відразу три клавіші. Наступні три стрілки нагору означають, що потрібно відпустити всі три клавіші в будь-якому чи порядку одночасно. Потім, як випливає з запису, вам необхідно натиснути, не відпускаючи, клавішу <Command>, потім натиснути, не відпускаючи, клавішу <Optіon>, потім натиснути, не відпускаючи, клавішу <p>, після чого натиснути й утримувати клавішу <r>, так що, зрештою , ви будете утримувати в натиснутому положенні чотири клавіші одночасно. Це варто робити до звукового сигналу, після чого всі чотири клавіші варто відпустити.)
Якщо при наборі послідовності має значення час, то про цьому повинно бути сказане в примітці. Наприклад, для набору однієї букви t запис буде наступною:
t? t?
Однак при використанні більшості клавіатур, якщо між t? і t? відбувається затримка тривалістю більш 500 мс, на екрані приблизно кожні 100 мс стануть з'являтися ще символи t. Ця функція звичайно називається автоповтором. Затримки, у тому числі і ті, котрі запускають автоповтор, часто створюють проблеми в роботі інтерфейсів. Використання затримок в інтерфейсах, а також поліпшення механізму автоповтора будуть обговорюватися далі в розділі 6.4.5.