Интерфейсы от командной строки до голоса: различия между версиями
Нет описания правки |
Нет описания правки |
||
| Строка 8: | Строка 8: | ||
Огромным шагом вперёд стали перфоленты, а затем и перфокарты. Тем не менее, настраивать и управлять компьютерами всё ещё могли только обученные специалисты. И только появление клавиатур, чуть позже совмещённых с экранами, удачно заменившими телетайпы\АЦПУ, позволило существенно снизить порог вхождения, а появление персональных компьютеров – на порядки увеличить круг людей, которым стали доступны машинные вычислительные мощности. | Огромным шагом вперёд стали перфоленты, а затем и перфокарты. Тем не менее, настраивать и управлять компьютерами всё ещё могли только обученные специалисты. И только появление клавиатур, чуть позже совмещённых с экранами, удачно заменившими телетайпы\АЦПУ, позволило существенно снизить порог вхождения, а появление персональных компьютеров – на порядки увеличить круг людей, которым стали доступны машинные вычислительные мощности. | ||
Кстати, первый сенсорный экран появился ещё в 1965 году | Кстати, первый сенсорный экран появился ещё в 1965 году. | ||
Не менее революционным стал переход от «запустил-жди» к интерактивному взаимодействию внутри программ, стало возможно даже редактировать вводимые команды. Кроме комфорта, гибкости и корректировок «на лету», он ещё больше снизил порог вхождения, и позволил активно использовать меню и контекстные подсказки в программах в духе: | Не менее революционным стал переход от «запустил-жди» к интерактивному взаимодействию внутри программ, стало возможно даже редактировать вводимые команды. Кроме комфорта, гибкости и корректировок «на лету», он ещё больше снизил порог вхождения, и позволил активно использовать меню и контекстные подсказки в программах в духе: | ||
<div style="background:black;color:green;padding:10px"> | |||
# Вывести список | # Вывести список | ||
# Загрузить файл | # Загрузить файл | ||
# Сохранить файл | # Сохранить файл | ||
# Выход из программы | # Выход из программы | ||
>_ | |||
</div> | |||
''(спойлер: | ''(спойлер: многие разработчики навыков ментально всё ещё находятся здесь)'' | ||
Самое время вспомнить ту самую команду choice, что позволяла создавать целые каскады меню в bat-файлах, и которая и сегодня входит в добрый десяток операционных систем. | |||
Примерно в это же время стали осмысливаться программные «горячие клавиши» (в отличие от строгого аппаратного набора управляющих клавиш на первых компьютерах). Что это означало практически? Что в консольных программах уже не надо переходить из одного меню в другое, чтобы в конце концов, добравшись до главного, нажать заветное «4 - выход». Достаточно в любой момент исполнения нажать Ctrl-C. | Примерно в это же время стали осмысливаться программные «горячие клавиши» (в отличие от строгого аппаратного набора управляющих клавиш на первых компьютерах). Что это означало практически? Что в консольных программах уже не надо переходить из одного меню в другое, чтобы в конце концов, добравшись до главного, нажать заветное «4 - выход». Достаточно в любой момент исполнения нажать Ctrl-C. | ||
| Строка 34: | Строка 38: | ||
...мы добираемся до главной темы: голосовые интерфейсы! | ...мы добираемся до главной темы: голосовые интерфейсы! | ||
Этот радикальный переход '''не только от клавиш к голосу, но и от экрана к | Этот радикальный переход '''не только от клавиш к голосу, но и от экрана к общению на слух''' поднимает ряд проблем, многие из которых, к нашему счастью, успешно решались на предыдущих этапах. Нам остаётся выбрать правильные варианты. | ||
| Строка 50: | Строка 54: | ||
|- | |- | ||
| Пользователь может и не понять, что ненароком запустил вашу программу | | Пользователь может и не понять, что ненароком запустил вашу программу | ||
| Про обычную программу пользователь может прочитать в её же справке, скопировать выдержки, сделать закладки, изучить на официальном сайте или на форумах с обзорами, затем скачать её, установить, дополнительно получив информацию в ходе установки. А запуск навыка произойдёт мгновенно | | Про обычную программу пользователь может прочитать в её же справке, скопировать выдержки, сделать закладки, изучить на официальном сайте или на форумах с обзорами, затем скачать её, установить, дополнительно получив информацию в ходе установки. А запуск навыка произойдёт мгновенно и, может быть, вообще случайно и неожиданно для пользователя. <br>Нужно сразу рассказать, '''какую проблему пользователя решает навык''', и как наиболее эффективно его можно использовать. | ||
| Не рассказывайте, как много навык всего крутого умеет. Скажите, чем именно он полезен. | | Не рассказывайте, как много навык всего крутого умеет. Скажите, чем именно он полезен. | ||
|- | |- | ||
| Строка 60: | Строка 64: | ||
| Человек не машина, он имеет полное право внести уточнения в какой-то из прежних шагов или полностью поменять своё решение на любом шаге. '''Стройте диалог свободно''' так, как если бы это была живая беседа. | | Человек не машина, он имеет полное право внести уточнения в какой-то из прежних шагов или полностью поменять своё решение на любом шаге. '''Стройте диалог свободно''' так, как если бы это была живая беседа. | ||
| Не теряйте общий контекст сессии (представьте на месте вашей программы сотрудника сервиса, который заново переспрашивает ваше имя потому, что перед этим вы спросили его о погоде). | | Не теряйте общий контекст сессии (представьте на месте вашей программы сотрудника сервиса, который заново переспрашивает ваше имя потому, что перед этим вы спросили его о погоде). | ||
|- | |||
| Озвученную информацию нельзя «перечитать» самостоятельно, в отличие от открытой страницы | |||
| Бывает, человек отвлёкся, или шумная компания заглушила сообщение. Или текст оказался не так прост для восприятия, как вы рассчитывали. <br>Практически для всех ситуаций необходима возможность повторить текущий «экран». | |||
| Намекните где-то в начале действий, что ваш навык умеет повторять вопрос или описание. Постоянно говорить об этом не нужно. | |||
|- | |- | ||
| Каскады из меню, сложность перемещения | | Каскады из меню, сложность перемещения | ||
| Строка 70: | Строка 78: | ||
|- | |- | ||
| Утомительные затянутые диалоги при вводе | | Утомительные затянутые диалоги при вводе | ||
| Если есть возможность получить всю нужную информацию в одной фразе вместо четырёх – стоит попотеть, чтобы этого достичь; пользователи будут вам благодарны. | | Если есть возможность получить всю нужную информацию '''в одной фразе вместо четырёх''' – стоит попотеть, чтобы этого достичь; пользователи будут вам благодарны. | ||
| Соблюдайте баланс между ёмкостью и сложностью ввода. Можно сказать «Назовите ваши имя, пол и возраст» - и разобрать полученную строку за один раз, комфортно для пользователя. Но сложные данные (точное соблюдение формата ввода, длинное объяснение, неочевидность вводимых чисел) лучше разделить. | | Соблюдайте баланс между ёмкостью и сложностью ввода. Можно сказать «Назовите ваши имя, пол и возраст» - и разобрать полученную строку за один раз, комфортно для пользователя. Но сложные данные (точное соблюдение формата ввода, длинное объяснение, неочевидность вводимых чисел) лучше разделить. | ||
|- | |- | ||
| Надуманные неоправданные подтверждения | | Надуманные неоправданные подтверждения | ||
| То ли ностальгия по диалоговым окнам, то ли по кнопке "Ещё", но навязчивые "Продолжаем?", которые пользователь должен бесконечно подтверждать, к сожалению, не редкость. Это напрягает, выбивает из динамики, а в итоге отбивает охоту запускать не только этот, но и другие, ''хорошие'' навыки. <br>Поставьте себя на место пользователя. Если он не захочет продолжать, то просто закроет навык или произнесёт команду смены режима, получения счёта, итд. Не принуждайте | | То ли ностальгия по диалоговым окнам, то ли по кнопке "Ещё", но навязчивые "Продолжаем?", которые пользователь должен бесконечно подтверждать, к сожалению, не редкость. Это напрягает, выбивает из динамики, а в итоге отбивает охоту запускать не только этот, но и другие, ''хорошие'' навыки. <br>Поставьте себя на место пользователя. Если он не захочет продолжать, то просто закроет навык или произнесёт команду смены режима, получения счёта, итд. '''Не принуждайте пользователя к обезьяньим действиям.''' | ||
| Подтверждения, конечно, нужны при риске оборвать игру в режиме соревнования (или если вы не ещё умеете сохранять стейты и статистику), или перед другими важными или критическими действиями (сброс данных, удаление аккаунта, оплата, итд) | | Подтверждения, конечно, нужны при риске оборвать игру в режиме соревнования (или если вы не ещё умеете сохранять стейты и статистику), или перед другими важными или критическими действиями (сброс данных, удаление аккаунта, оплата, итд) | ||
|- | |- | ||
| Неопределённость: что делать дальше? | | Неопределённость: что делать дальше? | ||
| Прямая противоположность - навык «зачитал» какой-то текст и затих. Произошёл сбой? Или надо что-то сказать? Что? "Понятно", "Окей", "Спасибо", "Начать игру"? Никогда не оставляйте пользователя в неведении, будь это многостраничный текст или вступительное приветствие. Если от пользователя нужно какое-то действие для продолжения - вы обязаны дать это понять вопросом или приглашением к действию. | | Прямая противоположность - навык «зачитал» какой-то текст и затих. Произошёл сбой? Или надо что-то сказать? Что? "Понятно", "Окей", "Спасибо", "Начать игру"? '''Никогда не оставляйте пользователя в неведении''', будь это многостраничный текст или вступительное приветствие. Если от пользователя нужно какое-то действие для продолжения - '''вы обязаны дать это понять вопросом или приглашением к действию'''. | ||
| В очевидных случаях такое приглашение не нужно: например, в викторинах будет только раздражать что-то вроде "А теперь скажите ответ" после каждого вопроса. | | В очевидных случаях такое приглашение не нужно: например, в викторинах будет только раздражать что-то вроде "А теперь скажите ответ" после каждого вопроса. | ||
|- | |- | ||
| Приближение к живому человеческому общению | | Приближение к живому человеческому общению | ||
| В отличие от графических программ одна стандартная фраза на все сходные окна диалогов не только не нужна, а наоборот, лучше проработать по нескольку вариантов ответов, обращений, пояснений (т.н. prompt-list) даже для одинаковых случаев. <br> | | В отличие от графических программ одна стандартная фраза на все сходные окна диалогов не только не нужна, а наоборот, лучше '''проработать по нескольку вариантов ответов, обращений, пояснений''' (т.н. prompt-list) даже для одинаковых случаев. <br>Разнообразная и весёлая реакция навыка на неправильный ответ не только снизит раздражение от неудачи, но и повысит вовлечённость в атмосферу игры. | ||
| Главное - не перестараться в неформальных оборотах, правильно понимать свою аудиторию (дети, домохозяйки, отвязная молодёжь на вечеринке) - и формировать набор фраз из соответствующего словарного запаса. | | Главное - не перестараться в неформальных оборотах, правильно понимать свою аудиторию (дети, домохозяйки, отвязная молодёжь на вечеринке) - и формировать набор фраз из соответствующего словарного запаса. | ||
|- | |- | ||
| Атмосфера голосовых приложений | | Атмосфера голосовых приложений | ||
| Компенсируйте недостаток графики интересной озвучкой, характерами героев/ведущего, художественным текстом, возбуждающим воображение. Всегда дублируйте произносимый текст на случай экрана. | | Компенсируйте недостаток графики '''интересной озвучкой, характерами героев/ведущего, художественным текстом''', возбуждающим воображение. <br>'''Всегда дублируйте произносимый текст на случай экрана'''. | ||
| Не заставляйте пользователя слушать длинный (безусловно, очень красиво записанный) шум моря, если игрок хочет поскорее сделать следующий ход. Особо бережно относитесь к относительным уровням громкости голоса, шумов и эффектов - этим можно испортить самую тщательную работу по подбору оформления. | | Не заставляйте пользователя слушать длинный (безусловно, очень красиво записанный) шум моря, если игрок хочет поскорее сделать следующий ход. Особо бережно относитесь к относительным уровням громкости голоса, шумов и эффектов - этим можно испортить самую тщательную работу по подбору оформления. | ||
|} | |} | ||
Подытожим: | == Подытожим == | ||
'''Чего не должно быть''' в хорошем навыке: | |||
* никаких '''вложенных меню''', | |||
* никаких '''навязчивых подтверждений''' и промежуточных диалогов, | |||
* никаких жёстко зашитых '''безальтернативных вариантов ввода''', | |||
* никаких '''конфликтов между подсказкой и ожидаемым к вводу словом'''. | |||
'''Что необходимо''' сделать: | |||
* | * '''краткое ясное информирование''' пользователя в момент запуска навыка '''о его пользе''', | ||
* | * '''чёткие образные подсказки''' и приятное '''звуковое оформление''' (даже для неигровых навыков), | ||
** | * '''возможность повторить''' любой текст по запросу, | ||
** | * '''наборы рандомных сообщений''' (промпт-листы) для разнообразия повторяющихся ситуаций, | ||
* максимальная '''«пронизанность» навыка «горячими клавишами» навигации''' и смены режимов, | |||
* лёгкий, живой '''естественный язык запросов''', | |||
* и конечно, '''разнообразие принимаемых к вводу команд''' (синонимы, неформальные аналоги, ключевые слова из основного вопроса). | |||
Версия от 10:02, 17 декабря 2020
Большое Лирическое Отступление
Интерфейсы развивались вместе с компьютерами, начиная с самых первых, которые мы не отличили бы от арифмометра. И, если настроить положения зубчатых колёс можно было относительно легко, то вместе с резким скачком сложности и конструкции первых вычислительных машин их настройка стала уделом избранных и, по сути, под каждую задачу из километров коммутации и сотен тубмлеров создавался новый компьютер.
Огромным шагом вперёд стали перфоленты, а затем и перфокарты. Тем не менее, настраивать и управлять компьютерами всё ещё могли только обученные специалисты. И только появление клавиатур, чуть позже совмещённых с экранами, удачно заменившими телетайпы\АЦПУ, позволило существенно снизить порог вхождения, а появление персональных компьютеров – на порядки увеличить круг людей, которым стали доступны машинные вычислительные мощности.
Кстати, первый сенсорный экран появился ещё в 1965 году.
Не менее революционным стал переход от «запустил-жди» к интерактивному взаимодействию внутри программ, стало возможно даже редактировать вводимые команды. Кроме комфорта, гибкости и корректировок «на лету», он ещё больше снизил порог вхождения, и позволил активно использовать меню и контекстные подсказки в программах в духе:
- Вывести список
- Загрузить файл
- Сохранить файл
- Выход из программы
>_
(спойлер: многие разработчики навыков ментально всё ещё находятся здесь)
Самое время вспомнить ту самую команду choice, что позволяла создавать целые каскады меню в bat-файлах, и которая и сегодня входит в добрый десяток операционных систем.
Примерно в это же время стали осмысливаться программные «горячие клавиши» (в отличие от строгого аппаратного набора управляющих клавиш на первых компьютерах). Что это означало практически? Что в консольных программах уже не надо переходить из одного меню в другое, чтобы в конце концов, добравшись до главного, нажать заветное «4 - выход». Достаточно в любой момент исполнения нажать Ctrl-C.
Следующий прыжок и новая степень свободы – да, конечно, графический интерфейс и свободно перемещающийся курсор!
Теперь все меню одномоментно визуально доступны, и для запуска достаточно кликнуть по нужному пункту. А скупые когда-то Ctrl-Z и Ctrl-C эволюционировали в целый «язык», понятный сегодня всем: Ctrl-N, Ctrl-O, Ctrl-V, Ctrl-P, Shift-Ctrl-Z – их действия «возникают» у нас в голове раньше, чем мы дочитываем текст.
И, наконец...
...мы добираемся до главной темы: голосовые интерфейсы!
Этот радикальный переход не только от клавиш к голосу, но и от экрана к общению на слух поднимает ряд проблем, многие из которых, к нашему счастью, успешно решались на предыдущих этапах. Нам остаётся выбрать правильные варианты.
В первую очередь, это:
| Проблема | Решение | Чего нужно избегать |
|---|---|---|
| Непонятный, необжитой, радикально отличающийся интерфейс | Необходимо больше подсказывать и информировать, чем в обычных программах | Не перегружайте слух пользователя ненужной в данную секунду информацией |
| Пользователь может и не понять, что ненароком запустил вашу программу | Про обычную программу пользователь может прочитать в её же справке, скопировать выдержки, сделать закладки, изучить на официальном сайте или на форумах с обзорами, затем скачать её, установить, дополнительно получив информацию в ходе установки. А запуск навыка произойдёт мгновенно и, может быть, вообще случайно и неожиданно для пользователя. Нужно сразу рассказать, какую проблему пользователя решает навык, и как наиболее эффективно его можно использовать. |
Не рассказывайте, как много навык всего крутого умеет. Скажите, чем именно он полезен. |
| Нет безразмерного экранного места для длинных абзацев с красивыми иллюстрациями | Расскажите коротко, лёгким языком и образно, максимально упростив восприятие для визуалов. Помогите им создать «картинку» в голове. | Не забывайте, что далеко не всем комфортно получать информацию «на слух». Представьте, что вы ничего не знаете о своём навыке, действительно ли объяснение понятно? Не упущено ли что-то совсем базовое, очевидное для вас? |
| Нет визуальных элементов навигации | Человек не машина, он имеет полное право внести уточнения в какой-то из прежних шагов или полностью поменять своё решение на любом шаге. Стройте диалог свободно так, как если бы это была живая беседа. | Не теряйте общий контекст сессии (представьте на месте вашей программы сотрудника сервиса, который заново переспрашивает ваше имя потому, что перед этим вы спросили его о погоде). |
| Озвученную информацию нельзя «перечитать» самостоятельно, в отличие от открытой страницы | Бывает, человек отвлёкся, или шумная компания заглушила сообщение. Или текст оказался не так прост для восприятия, как вы рассчитывали. Практически для всех ситуаций необходима возможность повторить текущий «экран». |
Намекните где-то в начале действий, что ваш навык умеет повторять вопрос или описание. Постоянно говорить об этом не нужно. |
| Каскады из меню, сложность перемещения | «Древовидные», вложенные меню – плохой выбор (если это не вызвано какой-то критической необходимостью, которой автор в жизни пока не наблюдал). Намного лучше организация по аналогии с глобальными «горячими клавишами» (один из примеров – требуемая платформой Яндекс обработка команды «Помощь» при любом шаге общения в навыке), или параллельными «дорожками», между которыми пользователь может прыгать в нужный ему момент. | Пользователь должен всегда понимать, в каком именно разделе программы и на каком этапе находится. Свобода передвижения не должна нарушать информированность. |
| Необходимость живого, естественного языка запросов | Если вы предлагаете Хотите продолжить (сохранить, выбрать, перейти)? – то обязаны обработать как минимум основные предложенные вами слова (включая "Хочу"), и не предлагать вместо них искусственно навязанное другое. Отличное решение - предусмотреть синонимы и разговорные ответы: «Да, Конечно, Валяй, Поехали». Стоит активно использовать интенты, предлагаемые платформой Диалоги |
«Вы хотите продолжить? Скажите ‘Далее’» - практически худшее, что можно придумать. Хотя нет, ещё хуже - жёстко зашить отсутствующее в основном вопросе слово как единственный принимаемый вариант. |
| Утомительные затянутые диалоги при вводе | Если есть возможность получить всю нужную информацию в одной фразе вместо четырёх – стоит попотеть, чтобы этого достичь; пользователи будут вам благодарны. | Соблюдайте баланс между ёмкостью и сложностью ввода. Можно сказать «Назовите ваши имя, пол и возраст» - и разобрать полученную строку за один раз, комфортно для пользователя. Но сложные данные (точное соблюдение формата ввода, длинное объяснение, неочевидность вводимых чисел) лучше разделить. |
| Надуманные неоправданные подтверждения | То ли ностальгия по диалоговым окнам, то ли по кнопке "Ещё", но навязчивые "Продолжаем?", которые пользователь должен бесконечно подтверждать, к сожалению, не редкость. Это напрягает, выбивает из динамики, а в итоге отбивает охоту запускать не только этот, но и другие, хорошие навыки. Поставьте себя на место пользователя. Если он не захочет продолжать, то просто закроет навык или произнесёт команду смены режима, получения счёта, итд. Не принуждайте пользователя к обезьяньим действиям. |
Подтверждения, конечно, нужны при риске оборвать игру в режиме соревнования (или если вы не ещё умеете сохранять стейты и статистику), или перед другими важными или критическими действиями (сброс данных, удаление аккаунта, оплата, итд) |
| Неопределённость: что делать дальше? | Прямая противоположность - навык «зачитал» какой-то текст и затих. Произошёл сбой? Или надо что-то сказать? Что? "Понятно", "Окей", "Спасибо", "Начать игру"? Никогда не оставляйте пользователя в неведении, будь это многостраничный текст или вступительное приветствие. Если от пользователя нужно какое-то действие для продолжения - вы обязаны дать это понять вопросом или приглашением к действию. | В очевидных случаях такое приглашение не нужно: например, в викторинах будет только раздражать что-то вроде "А теперь скажите ответ" после каждого вопроса. |
| Приближение к живому человеческому общению | В отличие от графических программ одна стандартная фраза на все сходные окна диалогов не только не нужна, а наоборот, лучше проработать по нескольку вариантов ответов, обращений, пояснений (т.н. prompt-list) даже для одинаковых случаев. Разнообразная и весёлая реакция навыка на неправильный ответ не только снизит раздражение от неудачи, но и повысит вовлечённость в атмосферу игры. |
Главное - не перестараться в неформальных оборотах, правильно понимать свою аудиторию (дети, домохозяйки, отвязная молодёжь на вечеринке) - и формировать набор фраз из соответствующего словарного запаса. |
| Атмосфера голосовых приложений | Компенсируйте недостаток графики интересной озвучкой, характерами героев/ведущего, художественным текстом, возбуждающим воображение. Всегда дублируйте произносимый текст на случай экрана. |
Не заставляйте пользователя слушать длинный (безусловно, очень красиво записанный) шум моря, если игрок хочет поскорее сделать следующий ход. Особо бережно относитесь к относительным уровням громкости голоса, шумов и эффектов - этим можно испортить самую тщательную работу по подбору оформления. |
Подытожим
Чего не должно быть в хорошем навыке:
- никаких вложенных меню,
- никаких навязчивых подтверждений и промежуточных диалогов,
- никаких жёстко зашитых безальтернативных вариантов ввода,
- никаких конфликтов между подсказкой и ожидаемым к вводу словом.
Что необходимо сделать:
- краткое ясное информирование пользователя в момент запуска навыка о его пользе,
- чёткие образные подсказки и приятное звуковое оформление (даже для неигровых навыков),
- возможность повторить любой текст по запросу,
- наборы рандомных сообщений (промпт-листы) для разнообразия повторяющихся ситуаций,
- максимальная «пронизанность» навыка «горячими клавишами» навигации и смены режимов,
- лёгкий, живой естественный язык запросов,
- и конечно, разнообразие принимаемых к вводу команд (синонимы, неформальные аналоги, ключевые слова из основного вопроса).
Примеры
Рассмотрим условный навык «Угадай меня»:
