Интерфейсы от командной строки до голоса
Большое Лирическое Отступление
Интерфейсы развивались вместе с компьютерами, начиная с самых первых, которые мы не отличили бы от арифмометра. И, если настроить положения зубчатых колёс можно было относительно легко, то вместе с резким скачком сложности и конструкции первых вычислительных машин их настройка стала уделом избранных и, по сути, под каждую задачу из километров коммутации и сотен тубмлеров создавался новый компьютер.
Огромным шагом вперёд стали перфоленты, а затем и перфокарты. Тем не менее, настраивать и управлять компьютерами всё ещё могли только обученные специалисты. И только появление клавиатур, чуть позже совмещённых с экранами, удачно заменившими телетайпы\АЦПУ, позволило существенно снизить порог вхождения, а появление персональных компьютеров – на порядки увеличить круг людей, которым стали доступны машинные вычислительные мощности.
Кстати, первый сенсорный экран появился ещё в 1965 году!
Не менее революционным стал переход от «запустил-жди» к интерактивному взаимодействию внутри программ. Кроме комфорта, гибкости и ранее невозможных корректировок «на лету», он ещё больше снизил порог вхождения, и позволил активно использовать меню и контекстные подсказки в программах в духе:
- Вывести список
- Загрузить файл
- Сохранить файл
- Выход из программы
(спойлер: большинство разработчиков навыков всё ещё находятся здесь)
Самое время вспомнить ту самую команду choice, что позволяла создавать целые каскады меню в bat-файлах, и которая и сегодня спустя десятилетия входит в целый ряд операционных систем.
Примерно в это же время стали осмысливаться программные «горячие клавиши» (в отличие от строгого аппаратного набора управляющих клавиш на первых компьютерах). Что это означало практически? Что в консольных программах OS уже не надо переходить из одного меню в другое, чтобы в конце концов, добравшись до главного, нажать заветное «4 - выход». Достаточно в любой момент исполнения нажать Ctrl-C.
Следующий прыжок и новая степень свободы – да, конечно, графический интерфейс и свободно перемещающийся курсор!
Теперь не надо последовательно гулять по всем меню, они все одномоментно визуально доступны, а для запуска достаточно кликнуть по нужному пункту в любой момент исполнения программы. Одновременно скупые когда-то Ctrl-Z и Ctrl-C эволюционировали в целый «язык», понятный сегодня всем: Ctrl-N, Ctrl-O, Ctrl-V, Ctrl-P, Shift-Ctrl-Z – их действия «возникают» у нас в голове раньше, чем мы дочитываем текст.
И, наконец...
...мы добираемся до главной темы: голосовые интерфейсы!
Этот радикальный переход не только от клавиш к голосу, но и от экрана к «слепому» общению ставит целый ряд задач, многие из которых, к нашему счастью, успешно решались на предыдущих этапах. Нам остаётся выбрать правильные варианты.
Что надо выделить в первую очередь:
| Задача | Решение | Чего нужно избегать |
|---|---|---|
| Способ общения для многих пользователей радикально новый, необжитой | Необходимо больше подсказывать и информировать, чем в обычных программах | Не перегружайте слух пользователя ненужной в данную секунду информацией |
| Про обычную программу пользователь может прочитать в её же справке, скопировать выдержки, сделать закладки, изучить на официальном сайте или на форумах с обзорами. А запуск навыка наверняка произойдёт вслепую и, возможно, пользователь даже не поймёт, что запустил условную «подпрограмму» | Нужно сразу рассказать, какую именно проблему пользователя решает навык, и как наиболее эффективно его можно использовать | Не рассказывайте, как много навык всего крутого умеет. Скажите, чем он полезен |
| У голосового интерфейса нет безразмерного экранного места для длинных абзацев с красивыми иллюстрациями | Расскажите коротко, лёгким языком и образно, максимально упростив восприятие для визуалов. Помогите им создать «картинку» в голове. | Не забывайте, что далеко не всем комфортно получать информацию «на слух» |
| Человек не машина, имеет право вспомнить какой-то из пропущенных шагов, внести уточнения или полностью поменять своё решение на любом шаге | Стройте диалог свободно, как если бы это была беседа | Не теряйте общий контекст сессии (представьте на месте вашей программы живого собеседника, или сотрудника сервиса) |
| Каскады из меню, сложная навигация, неочевидность перемещения по разделам | «Древовидные» меню – плохой выбор (если это не вызвано какой-то критической необходимостью, которой автор в жизни пока не наблюдал). Намного лучше подойдёт аналогия с глобальными «горячими клавишами» (один из примеров – требуемая платформой Яндекс обработка команды «Помощь» при любом шаге общения в навыке), или параллельными «дорожками», между которыми пользователь сможет прыгать в нужный ему момент
|
Пользователь должен всегда понимать, в каком именно разделе программы и на каком шаге находится. Свобода передвижения не должна нарушать информированность |
| Интерес к диалогу; живой, естественный язык запросов | Если вы предлагаете Хотите продолжить (сохранить, выбрать, перейти)? – то обязаны обработать как минимум основные предложенные вами слова (включая "Хочу"), и не предлагать вместо них искусственно навязанное другое. Отличное решение - предусмотреть синонимы и разговорные ответы: «Да, Конечно, Валяй, Поехали». Стоит активно использовать интенты, предлагаемые платформой Диалоги |
«Вы хотите продолжить? Скажите ‘Далее’» - практически худшее, что можно придумать. Хотя нет, ещё хуже - жёстко зашить отсутствующее в основном вопросе слово как единственный принимаемый вариант. |
| Утомительные и сбивающие лишние шаги при вводе | Если есть возможность получить всю нужную информацию в одной фразе – стоит попотеть, чтобы этого достичь, пользователи будут вам благодарны | Соблюдайте баланс между ёмкостью и сложностью ввода. Можно сказать «Назовите ваши имя, пол и возраст» - и разобрать полученную строку за один раз, приятно для пользователя. Но сложные данные (точное соблюдение формата ввода, длинное объяснение, неочевидность вводимых чисел) лучше разделить. |
| Лишние шаги, часть 2. Порой в игровых навыках встречаются бесконечные "Продолжаем?", которые пользователь должен бесконечно подтверждать. Это напрягает, выбивает из динамики и в итоге отбивает охоту запускать не только этот, но и другие, хорошие навыки. | Поставьте себя на место пользователя. Если он не захочет продолжать, то просто закроет навык или произнесёт команду смены режима, получения счёта, итд. Не заставляйте совершать его обезьяньи действия. | Необходимость подтверждения всё же существует при риске оборвать игру в режиме соревнования (или если вы не ещё умеете сохранять статистику игр), перед другими важными или критическими действиями (удаление аккаунта, оплата, итд) |
| Живое «человеческое» общение | В отличие от графических программ не только не нужна стандартная фраза на все сходные окна диалогов, а наоборот, даже в одинаковых случаях правильно проработать по нескольку вариантов ответов, обращений, пояснений (так называемые промпт-листы) | |
| Атмосфера голосовых приложений | Компенсируйте недостаток графики интересной озвучкой, характерами героев/ведущего, художественным текстом, возбуждающим воображение. Всегда дублируйте произносимый текст на случай экрана. | Не переборщите)) не заставляйте пользователя слушать длинный безусловно очень красиво записанный шум моря, если он хочет скорее сделать следующий ход. Очень бережно относитесь к относительным уровням громкости голоса, шумов и эффектов |
Подытожим:
- Чего не должно быть:
- никаких вложенных меню,
- никаких жёстко зашитых безальтернативных вариантов ввода,
- никаких конфликтов между подсказкой и ожидаемым к вводу словом.
- Что должно быть:
- краткое ясное информирование пользователя о его пользе с самого запуска навыка,
- чёткие образные подсказки,
- разные варианты текстов для одних и тех же ситуаций,
- максимальная «пронизанность» навыка «горячими клавишами» навигации и смены режимов
- и разнообразие принимаемых к вводу команд.
Примеры
Рассмотрим условный навык «Угадай меня»:
