Мы разбирали, почему в нашем продукте люди включают режим, который включать не собирались. Перед этим стоит подтверждение с описанием последствий. Оно там появилось именно затем, чтобы этого не происходило.
Я посмотрел записи сессий и посчитал время между появлением окна и нажатием кнопки. Медиана - около трёхсот миллисекунд, и в интервал короче секунды попало больше четырёх пятых случаев. Прочитать текст за это время нельзя даже по диагонали.
Первым делом я предложил переписать текст короче и понятнее. Мы переписали. Время не изменилось.
Привыкание - не невнимательность
То, что здесь происходит, называется привыканием: реакция на повторяющийся раздражитель угасает, если раздражитель ни разу не оказался значимым. Это не свойство ленивых пользователей - это базовое свойство нервной системы, общее для всех.
Считать надо не количество окон, а долю окон, за которыми стояло что-то настоящее. Человек, который за месяц двести раз подтвердил безобидное действие, к двести первому разу нажимает кнопку раньше, чем успевает прочесть хоть слово. И в этот раз действие было не безобидное.
Мерить эту долю можно приближённо: считать, по скольким подтверждениям хоть кто-то хоть раз ответил «нет». Диалог, у которого отказов нет вовсе, ничего не проверяет - он просто стоит на пути.
Отсюда неприятный вывод: каждое лишнее подтверждение не «немного помогает на всякий случай», а прямо уменьшает силу всех остальных подтверждений в системе. Это общий ресурс, и тратят его те, кто добавляет диалог, чтобы снять с себя ответственность.
Почему переписать текст не помогло
Здесь я и ошибся. Я исходил из того, что человек читает окно и не понимает. На самом деле он его не читает, и в этот момент он уже принял решение - раньше, чем окно появилось.
Решение было принято тогда, когда он нажал кнопку, вызвавшую диалог. Дальше он находится в состоянии «я уже решил, уберите препятствие», и любой текст в этом состоянии - препятствие, а не информация.
Понятность текста важна для тех редких случаев, когда человек всё-таки остановился. Но она не влияет на то, остановится ли он.
Что действительно меняет поведение
Убрать подтверждения, за которыми ничего нет. Самая эффективная мера и самая непопулярная: диалог придётся удалить, а вместе с ним и ощущение, что мы предупредили. Считаете, что за диалогом ничего страшного, - удаляйте, он вредит.
Отмена вместо подтверждения. Действие выполняется сразу, а рядом появляется «Отменить», живущее несколько секунд. Это резко лучше по двум причинам: не мешает в обычном случае и работает ровно в тот момент, когда человек понял, что ошибся, - то есть после действия, а не до.
Не годится там, где отменить нельзя: отправленное письмо, выполненный платёж, удалённые данные без корзины. Но если выписать в своём продукте отдельно все необратимые операции и отдельно все подтверждения, вторых почти всегда оказывается заметно больше - и вот эти лишние подтверждения и есть кандидаты на замену отменой.
Ввод, привязанный к сути действия. Не кнопка «Да», а поле, куда надо вписать имя удаляемого объекта. Работает не потому, что «сложнее нажать», а потому, что заставляет посмотреть на объект и назвать его. Механически проскочить это нельзя.
Приём дорогой: он раздражает и годится для единичных операций, а не для рутины.
Разное оформление для разного веса. Если необратимое удаление выглядит как обычное «Сохранить изменения?», то различать их человек не будет. Тревожное окно должно быть визуально другим и встречаться редко.
Задержка на кнопке. Кнопка становится активной через секунду-две. Приём спорный: он действительно ломает привычку нажимать вслепую, но ровно до тех пор, пока задержка не станет предсказуемой - дальше человек просто ждёт её и нажимает так же не глядя. Я бы использовал его точечно и не рассчитывал на него всерьёз.
Тот же механизм - в системах предупреждений
Ровно тот же механизм работает не только с диалогами.
Предупреждение браузера о сертификате перестаёт что-то значить в компании, где половина внутренних сервисов живёт с самоподписанным сертификатом и людям сказали «жмите „перейти всё равно“».
Оповещения мониторинга, из которых половина ложные, перестают читаться целиком, а не выборочно: угасает реакция на весь класс сообщений.
Запросы прав в мобильных приложениях, где каждое второе просит доступ ко всему подряд, приучают нажимать «Разрешить» не глядя.
Во всех трёх случаях виноват не пользователь. Виноват тот, кто наполнил канал шумом, а потом рассчитывал, что по этому каналу пройдёт важное.
Ограничения
Часть подтверждений стоит не для защиты пользователя, а для юридической фиксации согласия. Такие убрать нельзя, и притворяться, что они защищают, тоже не надо - они выполняют другую работу.
Отмена требует, чтобы в системе был предусмотрен откат действия. Это иногда серьёзная переделка, и решение «оставим диалог, потому что откат дорогой» бывает честным. Тогда стоит хотя бы посчитать, сколько ещё диалогов в системе стоит рядом и разбавляет этот.
И привыкание не убирается насовсем. Любой механизм, который сработал сто раз впустую, ослабнет - независимо от того, как он выглядит. Единственное, что действительно работает вдолгую, - держать долю значимых срабатываний высокой, а это работа не по интерфейсу, а по составу событий.
Что посмотреть у себя
Посчитать, сколько подтверждений видит ваш активный пользователь за неделю, и по скольким из них хоть кто-то хоть раз ответил «нет».
Посмотреть распределение времени между появлением диалога и нажатием кнопки - медиану и долю случаев короче секунды. Это измеримо, а не предположение.
Найти в своём продукте необратимые действия и сверить их с тем, как они оформлены. Обычно оказывается, что удаление проекта и сохранение настроек выглядят одинаково.
Отдельно проверить внутренние инструкции. Фраза «нажмите „Продолжить“, это нормально» в руководстве - это документально оформленное обучение персонала игнорировать предупреждения.

