Диалоговое окно подтверждения
Когда приложение не чувствует уверенности в своих действиях, оно нередко просит у пользователя одобрения и выдает диалоговое окно, подобное показанному на рис. 25.6. Иногда такое подтверждениепредлагается пользователю потому, что программа сомневается в его действиях. В других случаях программа чувствует себя недостаточно компетентной для принятия решения и предлагает пользователю сде' лать выбор. Окна подтверждений всегда появляются по инициативе программы и никогда – по инициативе пользователя. Это означает, что они часто не связаны с целями пользователя и являются отраже' нием модели реализации.
Демонстрация модели реализации перед пользователями – верный способ создать неприятный и некачественный продукт. Это означает, что диалоговые окна подтверждений неуместны. Они возникают в коде
Рис. 25.6. Каждый раз, когда мы удаляем в Windows файл, мы получаем это диалоговое окно с вопросом о том, уверены ли мы в своих действиях? Да, мы уверены. Мы всегда уверены. А если мы ошибемся, мы ожидаем, что операционная система восстановит файл. Специально для этого
в Windows существует Корзина. Зачем тогда выдается диалоговое окно подтверждения? Если окно подтверждения выводится постоянно, пользователи привыкают подтверждать действия программы не глядя. Поэтому когда оно, в конце концов, сообщит о нависшей угрозе, пользователь по привычке «даст добро»… Сделайте одолжение своим пользователям –
не создавайте диалоговые окна подтверждений
программы тогда, когда программист заходит в тупик. Обычно это слу' чается, если программе требуется принять решительные меры, а про' граммист чувствует, что не может взять на себя ответственность за них. Иногда эти решительные меры связаны с каким'то условием, ко' торое распознала программа, но чаще они определяются действиями пользователя. Как правило, диалоговое окно подтверждения появля' ется тогда, когда исполняемая команда либо необратима, либо может привести к нежелательным последствиям.
Подтверждения перекладывают ответственность на плечи пользовате' ля. Пользователь доверил приложению работу – и оно должно не про' сто выполнить ее, но выполнить как следует. Правильное решение – сделать действие легко обратимым и обеспечить достаточно понятную немодальную обратную связь, чтобы неприятности не заставали поль' зователя врасплох.
В ходе разработки продукта по мере роста объема программного кода программисты обнаруживают все больше ситуаций, с которыми они не в силах справиться адекватно. В этих местах программисты в одно' стороннем порядке практически неосознанно пишут код, переклады' вающий ответственность на плечи пользователя. Необходимо внима' тельно следить за этим процессом, поскольку программисты склонны создавать диалоговые окна даже после согласования спецификаций на интерфейс пользователя: они просто не считают диалоговые окна ча' стью интерфейса.
Диалоговое окно, которое кричало: «Волк!»
Подтверждения иллюстрируют интересный парадокс человеческой психики: они срабатывают, только если их не ожидают. Это обстоя' тельство не кажется важным, пока вы не изучите контекст. Если за' прашивать подтверждение в обычных ситуациях, пользователь быст' ро привыкает к таким диалоговым окнам и выдает подтверждение не глядя. Подобная реакция становится делом столь же обычным, как появление самих диалоговых окон. Если в какой'то момент возникнет действительно неожиданная и опасная ситуация, к которой следует привлечь внимание пользователя, пользователь просто в силу привыч' ки по'быстрому расправится с подтверждением. Подобно мальчику из притчи, который кричал: «Волк!», – диалоговое окно подтверждения не подействует в случае реальной опасности, потому что оно слишком много раз кричало, когда никакой опасности не было.
Чтобы диалоговые окна подтверждения работали, они должны появ' ляться в тех случаях, когда пользователь почти наверняка щелкнет по кнопке Нет или Отмена, и они ни в коем случае не должны появляться то' гда, когда пользователь скорее щелкнет по кнопке Да или ОК. И с этой точки зрения они начинают выглядеть довольно бессмысленными, не правда ли?