Перейти к содержанию

Опасные действия и отмена

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

Отмена лучше подтверждения

Диалог «Вы уверены?» кажется надёжной защитой, но на частых действиях он быстро превращается в привычку: пользователь нажимает «Да» не читая, потому что почти всегда он действительно уверен. Защита срабатывает плохо именно тогда, когда нужна, - при случайном действии, которое пользователь совершил на автомате, а значит, на автомате и подтвердит. Этот эффект давно описан в литературе по проектированию интерфейсов (в частности, Джефом Раскиным) и хорошо знаком по практике.

Отмена работает иначе: действие выполняется сразу, а уведомление с кнопкой «Отменить» даёт время осознать ошибку уже после того, как она стала видна. Это требует от системы мягкого удаления или отложенного выполнения, то есть технических затрат, но для частых действий (удалить письмо, убрать задачу, архивировать проект) они окупаются и скоростью, и меньшим числом потерь. Корзина с хранением удалённого содержимого в течение какого-то срока решает ту же задачу на долгосрочную перспективу.

Когда подтверждение необходимо

Подтверждение необходимо, когда действие необратимо, редкое и затратное: удаление аккаунта или рабочего пространства, отправка платежа, массовое изменение данных. Стандарт 3.3.4 «Предотвращение ошибок» уровня AA требует для юридически значимых и финансовых операций, а также для изменения данных пользователя хотя бы одного из трёх механизмов: возможности отмены, проверки ввода с возможностью исправления или подтверждения перед отправкой.

Эффективное подтверждение не спрашивает об уверенности пользователя, а чётко описывает последствия: что именно будет удалено, сколько объектов затронуто и что станет недоступным. Кнопка подтверждения повторяет глагол действия («Удалить проект» вместо «Да» или «ОК»), чтобы пользователь, пропустивший текст, понимал, что именно он делает. Для самых критичных операций используют ввод названия объекта: это нарушает автоматизм, но может раздражать, если применять его для повседневных действий.

Опасное действие визуально отделено

Кнопку разрушительного действия не размещают рядом с частым безопасным действием той же важности, иначе промах по закону Фиттса становится вопросом времени. Её выделяют цветом, принятым для опасности, и дублируют этот сигнал текстом, поскольку цвет сам по себе не всегда понятен всем пользователям (критерий 1.4.1 Use of Color, A). В диалогах подтверждения разрушительного действия фокус по умолчанию ставят на безопасную кнопку, чтобы случайное нажатие Enter не удалило данные; Apple Human Interface Guidelines (HIG) прямо рекомендует не делать разрушительную кнопку кнопкой по умолчанию.

Действие над многимии объектами

Действие над многими объектами сразу требует особой осторожности, поскольку ошибка в выборе масштабируется. Перед выполнением интерфейс показывает число затронутых объектов, особенно если выбор сделан командой «Выбрать всё» и включает объекты за пределами видимой страницы. После выполнения он сообщает, сколько операций прошло успешно, а сколько нет, и позволяет повторить только неудачные (см. Частичный успех).

Готовые формулировки

Тексты типовых подтверждений на русском и английском языках собраны в разделе Типовые диалоги и сообщения.