Предотвращайте появление ошибок Жиль Колборн

Сообщения об ошибках — наиболее ответственный вид взаимодействия между пользователем и системой. Они возникают, когда общение пользователя с системой находится на грани разрыва.

Проще всего считать, будто ошибки возникают по вине пользователей в результате ввода неверных данных. Но ошибки, которые люди совершают, предсказуемы и происходят системно. Поэтому можно «отлаживать» взаимодействие между пользователем и системой так же, как вы отлаживаете взаимодействие между другими компонентами системы.

Допустим, пользователь должен ввести дату в определенном диапазоне. Чем позволять ему ввести любую дату, не лучше ли предоставить средство вроде списка или календаря, которое покажет только допустимые даты? Это исключит всякую возможность ввода даты за пределами разрешенного диапазона.

Другая распространенная проблема — ошибки форматирования. Например, если пользователь видит текстовое поле для даты и вводит однозначно трактуемую дату «29 июля 2012», неправильно будет забраковать ее только потому, что данные имеют не тот формат, который предпочитаете вы (например, «ММ/ДД/ГГГГ»). Еще хуже отклонить дату «29/07/2012» только из-за лишних пробелов; такие проблемы пользователям сложнее всего осознать, ведь им кажется, что дата имеет верный формат.

Ошибка возникает потому, что нам проще отклонить данные, чем разбирать три или четыре формата даты, получивших широкое распространение. Подобные мелкие ошибки раздражают пользователя, так что ему сложно сосредоточиться, и он делает все новые ошибки. Чтобы избежать этого, с пониманием отнеситесь к желанию пользователя вводить именно информацию, а не данные.

Другой способ избежать ошибки форматирования — предложить пользователю подсказку, например, с помощью метки в поле ввода, которая показывает нужный формат («ДД/ММ/ГГГГ»). Другой способ подсказать — разделить поле на три части по два, два и четыре символа.

Подсказки — это не то же самое, что инструкции: подсказки ненавязчивы и лаконичны, а инструкции многословны. Подсказки появляются в момент взаимодействия, а инструкции — до этого момента. Подсказки подчеркивают контекст, а инструкции диктуют поведение.

Обычно инструкции малоэффективны в предотвращении ошибок. Пользователи склонны считать, что интерфейсы должны действовать согласно их прежнему опыту («Любому должно быть понятно, что означает 29 июля 2012!»). Поэтому инструкции никто не читает. Подсказки уводят пользователей от совершения ошибок.

Еще один способ избежать ошибок — предлагать значения по умолчанию. Например, пользователи, как правило, вводят значения, которые соответствуют датам сегодня, завтра, мой день рождения, срок сдачи моего проекта или дате, указанной в этой же форме в прошлый раз. В зависимости от контекста одна из этих дат вполне может оказаться хорошим вариантом для значения по умолчанию.

Какова бы ни была причина ошибки, совершенной пользователем, система должна ошибки прощать. Этому можно содействовать, обеспечив возможность многоуровневой отмены (undo) всех выполненных операций — в особенности тех, которые могут удалить или изменить данные пользователя.

Запись каждой операции отмены в файл журнала и его последующий анализ могут пролить свет на то, какие особенности интерфейса заставляют пользователей бессознательно совершать ошибки, например постоянно нажимать «не на ту» кнопку. Часто оказывается, что такие ошибки вызваны неудачными подсказками, которые вводят пользователя в заблуждение, или непродуманным порядком выполнения действий, который можно перепроектировать, чтобы предотвратить появление ошибок.

Какой бы подход вы ни избрали, большинство ошибок являются системными и возникают из взаимного недопонимания между пользователем и приложением. Если вы поймете, как пользователи думают, как они воспринимают информацию, как принимают решения и вводят данные, тогда вы сможете отладить взаимодействие между вашими программами и вашими пользователями.

Загрузка...