Comments 92
Полезно. Как раз сижу и формы кодю...
Правда исходя из моих задач, я поступил более кардинально - возможности удалить нет вообще. Не знаю насколько это будет адекватно в будущем, но вроде пока адекватно.
Правда исходя из моих задач, я поступил более кардинально - возможности удалить нет вообще. Не знаю насколько это будет адекватно в будущем, но вроде пока адекватно.
0
Такая возможность нужна не всегда, это понятно. Но вот во всех CMS, блоговых движках и т.п. - обязательно должна быть.
0
Я решил эту проблему следующим образом, удалить элемент из системы невозможно.
Алго: копка удалить есть, при нажатии у элемента меняется статус на deleted и обновляется modify_date. Этот элемент попадает в корзину. Корзина очищается автоматически когда удаленному элементу - 3 месяца. Пользователь очистить корзину не может.
Алго: копка удалить есть, при нажатии у элемента меняется статус на deleted и обновляется modify_date. Этот элемент попадает в корзину. Корзина очищается автоматически когда удаленному элементу - 3 месяца. Пользователь очистить корзину не может.
0
Поправьте логическую ошибку в тексте. "На порядок больше" - это в 10 раз, а не в 1,5-2. Порядок это y, в формуле x*10^y (например 1,2345678E+6).
0
UFO just landed and posted this here
Потому что popupы давно все закрывают не читая. У меня юзеры нервно закрывают окошко с красным фоном «обнаружен вирус!», а вы говорите.
Помимо этого, продвинутые пользователи стараются обходить такие защиты от дурака и привыкают их игнорировать. Т.е. если кликнул по кнопе, то сразу Enter для потверждения. А потом задумываются. В этом смысле единственное решение — кнопка Undo, см. GMail.
Помимо этого, продвинутые пользователи стараются обходить такие защиты от дурака и привыкают их игнорировать. Т.е. если кликнул по кнопе, то сразу Enter для потверждения. А потом задумываются. В этом смысле единственное решение — кнопка Undo, см. GMail.
+2
Получается привыкание к чекбоксу рядом с кнопкой тоже вопрос времени, если это станет массовым решением.
+1
Согласна, наши операторы жмут enter до одури, даже не обращая внимания, что например не ввели сумму платежа, думаю что лучшая защита это как можно более длительная возможность отката совершенных действий
+1
Уважаемый akral. Вы тысячу раз правы в своем убеждении. Но таким образом вы сами воспитываете своего дурака. До тех пор пока мы пользователя будем считать таковым и защищаться от него пользователь будет глупеть еще больше.
Почему табличка "Не влезай! Убъет" (тоже popup) действует, а красное окошко нет? Да потому что вы сами поставили себя в такое положение. Пользователь должен быть не только проинформирован, но и проинструктирован что делать в таких случаях. Если он этого не сделал, то он должен понести заслуженное наказание. В конце концов уволен.
Почему табличка "Не влезай! Убъет" (тоже popup) действует, а красное окошко нет? Да потому что вы сами поставили себя в такое положение. Пользователь должен быть не только проинформирован, но и проинструктирован что делать в таких случаях. Если он этого не сделал, то он должен понести заслуженное наказание. В конце концов уволен.
+2
Часто пользователь - клиент. Его тоже предлагаете увольнять?
0
Всегда есть выбор :) Не путайте пользователя и заказчика (клиента).
Заказчик - он либо получает стандарное решение - тот же popup и дальше с его пользователями борется его сисадмин, либо приходит и отдельно оговаривает дополнительные финтифлюшки и удобства.
Заказчик - он либо получает стандарное решение - тот же popup и дальше с его пользователями борется его сисадмин, либо приходит и отдельно оговаривает дополнительные финтифлюшки и удобства.
0
> тот же popup и дальше с его пользователями борется его сисадмин
То есть можно к работе относиться наплевательски, ведь можно все проблемы переложить на админа заказчика?
То есть можно к работе относиться наплевательски, ведь можно все проблемы переложить на админа заказчика?
0
Кто говорил о наплевательском отношении?
1. Заказчик получил рабочее приложение и заплатил за это деньги. В котором есть popup и который его сотрудники игнорируют. Я выполнил свою работу? - Да. Кто виноват в том что сотрудник удалил что-то нажав случайно кнопку? Только сотрудник. Кто будет разбираться в этом? Традиционно - админ заказчика. Кто виноват?
Тут мне писали некоторые ... "Так недолго и всю контору удалить :) А если этот пользователь является вашим начальником, или начальником вашего начальника, что тогда?" - вот это уже никак не волнует разработчика.
2. Заказчик предъявляет претензии по этому поводу мне (разработчику) - на что получает один из вариантов решения дополнительной защиты типа обсуждаемого, платит за доп. работы и получает доработку. Все опять счастливы.
Просто исторически сложилось что именно админ вынужден быть первым, кто услышит жалобу пользователя и будет его учить. Степень вменяемости и субординация в данном случае не должна обсуждаться.
Я долгое время проработал на внедрении систем документооборота в крупных проектах. И выступал в роли такого "админа-учителя". Мне было просто как человеку со стороны предложить написать очередному нач.отдела докладную записку с текстом о том, что "все поломалось" только просил описать выполненые при этом действия.
Далее писался ответ о том, что система удаляет документ только по нажатию на кнопку "Удалить" и после этого еще раз требует подтверждения. Обе докладные передавались вышестоящему руководству с обоих сторон и все были счастливы.
1. Заказчик получил рабочее приложение и заплатил за это деньги. В котором есть popup и который его сотрудники игнорируют. Я выполнил свою работу? - Да. Кто виноват в том что сотрудник удалил что-то нажав случайно кнопку? Только сотрудник. Кто будет разбираться в этом? Традиционно - админ заказчика. Кто виноват?
Тут мне писали некоторые ... "Так недолго и всю контору удалить :) А если этот пользователь является вашим начальником, или начальником вашего начальника, что тогда?" - вот это уже никак не волнует разработчика.
2. Заказчик предъявляет претензии по этому поводу мне (разработчику) - на что получает один из вариантов решения дополнительной защиты типа обсуждаемого, платит за доп. работы и получает доработку. Все опять счастливы.
Просто исторически сложилось что именно админ вынужден быть первым, кто услышит жалобу пользователя и будет его учить. Степень вменяемости и субординация в данном случае не должна обсуждаться.
Я долгое время проработал на внедрении систем документооборота в крупных проектах. И выступал в роли такого "админа-учителя". Мне было просто как человеку со стороны предложить написать очередному нач.отдела докладную записку с текстом о том, что "все поломалось" только просил описать выполненые при этом действия.
Далее писался ответ о том, что система удаляет документ только по нажатию на кнопку "Удалить" и после этого еще раз требует подтверждения. Обе докладные передавались вышестоящему руководству с обоих сторон и все были счастливы.
+1
Зашумленность большая, вот и игнорируют. Если бы popup/диалоговые-окна выскакивали исключительно в важных случаях (напр. грозящих необратимой потерей данных), и случаи такие были достаточно редки - вот тогда эти окна большинство не игнорировало.
+2
А еще светофоры на перекрестках моргают беспонтово часто? На каждый перекресток по милиционеру и каждого пешехода переводить за ручку. И в каждый автомобиль по персональному водителю.
Дурак должен быть перестать дураком путем естественного отбора. А вы его пытаетесь сделать еще глупее.
Дурак должен быть перестать дураком путем естественного отбора. А вы его пытаетесь сделать еще глупее.
0
Простите, но это чушь. Причём сразу по всем пунктам:
- То, о чём писал я - особенность работы человеческого мозга, одинаковая и для умных, и для дураков.
- Давайте вообще уберём светофоры и ограничение по скорости движения в городе. Вы думаете что в результате на улицах остануются одни умные, а все дураки будут сбиты машинами?
- Мы сейчас находимся не в начале человеческой цивилизации. Естественный отбор работает уже много тысяч лет, но что-то не похоже, чтобы все дураки вымерли. Или Вы считаете, что окончательную точку в вымирании дураков поставят popup-окна?
Да, само название "защита от дураков" как бы подразумевает, что она нужна только дуракам. Что неверно. И из чего делается глупый вывод, что если не делать "защиту от дураков", то дураки вымрут, и останутся одни умные. Неужели Вы до сих пор не понимаете, что это бред?
Человеку свойственно делать ошибки. Любому, и умному, и дураку. Даже очень опытный админ может раз в 10 лет нечаянно запустить команду "rm -rf *" в корневом каталоге. И "alias rm='rm -i'" (аналог popup-окна "вы уверены?") его не спасёт, потому что выскакивает этот вопрос после каждой команды "rm", и он - умный! админ - годами отвечает на этот вопрос абсолютно механически.
Лично я, примерно раз в один-два года, совершаю в процессе администрирования ошибку, приводящую к потере данных. Да, обычно спасают бакапы, но во-первых не всегда, во-вторых бакапы обычно хоть на сколько-то да устарели и последние данные всё-равно теряются, и в-третьих бакапы есть не всегда (в т.ч. и по независящим от меня причинам). Нет, "rm -rf /" я ещё не запускал, и значительных потерь от моих ошибок тоже небыло (пока), но факт - ошибки бывают, и данные теряются, и не так важно, большие потери или нет.
Если бы в моменты совершения таких ошибок система задавала непривычный вопрос, то этих ошибок было бы на порядок меньше.
+1
Приведенный пример еще больше убеждает меня в правоте.
На ошибках учатся и чем более катастрофичны последствие ошибки, тем дольше пользователь и админ будет работать в режиме включенного мозга, а не на уровне рефлексов. А любой непривычный вопрос становится привычным после энного раза.
Уже много лет не могу понять формулировки типа "случайно нажал на Enter ... три раза подряд...". Человек должен думать и отвечать за свои действия :)
На ошибках учатся и чем более катастрофичны последствие ошибки, тем дольше пользователь и админ будет работать в режиме включенного мозга, а не на уровне рефлексов. А любой непривычный вопрос становится привычным после энного раза.
Уже много лет не могу понять формулировки типа "случайно нажал на Enter ... три раза подряд...". Человек должен думать и отвечать за свои действия :)
0
Мы с Вами просто говорим о совершенно разных вещах. Я однозначно согласен с тем, что действовать нужно осознанно, а не механически. Но это не имеет никакого отношения к теме статьи, и к моим ответам. То, о чём говорите Вы - это правильно, но это оффтопик в данном месте и в данное время. Хотите обсудить эту тему - создавайте топик, я с удовольствием поучаствую в обсуждении.
0
Извините. Просто не смог удержаться :) Новая тема открываться не будет - если она буде создана, то холивара не миновать.
По существу вопроса могу добавить следующее. Предлагаемое решение не правильное и не имеет право на жизнь, так как нарушает 14-е правило построения интерфейсов - "Каждая кнопка, на которую может нажать пользователь должна присутствовать на форме все время и быть активна. Иначе ее не должно быть вовсе."
По существу вопроса могу добавить следующее. Предлагаемое решение не правильное и не имеет право на жизнь, так как нарушает 14-е правило построения интерфейсов - "Каждая кнопка, на которую может нажать пользователь должна присутствовать на форме все время и быть активна. Иначе ее не должно быть вовсе."
0
Теперь отвечу всё-таки по теме топика: что касается непривычных вопросов. Здесь дело не столько в их непривычности, сколько в том, что предупреждения о безвозвратном удалении важных данных должны отличаться от дикого кол-ва обычных popup-ов.
Грубо говоря, если пользователь регулярно удаляет файлы, то удаляемые файлы можно разделить на несколько категорий - временные файлы, рабочие файлы, системные файлы. При удалении временных файлов вопросов не задавать вообще, при удалении системных - требовать серьёзного подтверждения (напр. ввода пароля администратора). А для рабочих файлов либо не выдавать предупреждений вообще (если пользователь их часто удаляет), либо выдавать предупреждение (если пользователь удаляет рабочие файлы крайне редко).
Да, реализовать это не просто, да, это будет некая эвристика... Но мы вроде обсуждаем usability, а не сложность/окупаемость реализации этой логики?
Кстати, ещё более правильный, с точки зрения usability, подход - предоставить пользователю возможность undo. Но, к сожалению, это не всегда возможно чисто технически. Кроме того, реализация undo в стиле windows (корзина) не работает уже для "продвинутых" пользователей - они её отключают (в Far) или используют постоянно Shift+Del - просто чтобы не тратить время на то, чтобы чистить ещё и корзину. И на это есть масса вполне объективных причин: начиная с того, что "продвинутые" значительно реже нечаянно удаляют нужные файлы (как минимум они так думают), и заканчивая тем, что "продвинутые" пользователи достаточно часто удаляют не маленькие документы, а большие каталоги с софтом/играми, и не потому, что документ "устарел", а потому, что нужно начистить место на винте - и корзина этому препятствует.
Грубо говоря, если пользователь регулярно удаляет файлы, то удаляемые файлы можно разделить на несколько категорий - временные файлы, рабочие файлы, системные файлы. При удалении временных файлов вопросов не задавать вообще, при удалении системных - требовать серьёзного подтверждения (напр. ввода пароля администратора). А для рабочих файлов либо не выдавать предупреждений вообще (если пользователь их часто удаляет), либо выдавать предупреждение (если пользователь удаляет рабочие файлы крайне редко).
Да, реализовать это не просто, да, это будет некая эвристика... Но мы вроде обсуждаем usability, а не сложность/окупаемость реализации этой логики?
Кстати, ещё более правильный, с точки зрения usability, подход - предоставить пользователю возможность undo. Но, к сожалению, это не всегда возможно чисто технически. Кроме того, реализация undo в стиле windows (корзина) не работает уже для "продвинутых" пользователей - они её отключают (в Far) или используют постоянно Shift+Del - просто чтобы не тратить время на то, чтобы чистить ещё и корзину. И на это есть масса вполне объективных причин: начиная с того, что "продвинутые" значительно реже нечаянно удаляют нужные файлы (как минимум они так думают), и заканчивая тем, что "продвинутые" пользователи достаточно часто удаляют не маленькие документы, а большие каталоги с софтом/играми, и не потому, что документ "устарел", а потому, что нужно начистить место на винте - и корзина этому препятствует.
+1
Для меня корзина своё выполняет. Кнопка Delete никакого потверждения не спрашивает, перемещает объект в корзину, которую я чищу раз в пару дней. Но основную функцию — спасать от «ой, не надо было этого делать» она выполняет.
0
полностью согласен с Вашим мнением. сам в свое время выдавал поп-апы только на необратимые действия, не перегружая интерфейс всякими предупреждениями и сообщениями.
а по поводу "корзины" - я её делаю достаточно малого размера, чтобы, будучи дураком, иметь возможность undo для документов.. потеря чего-то объемного типа видео или игрушек - обычно не смертельная проблема :)
а по поводу "корзины" - я её делаю достаточно малого размера, чтобы, будучи дураком, иметь возможность undo для документов.. потеря чего-то объемного типа видео или игрушек - обычно не смертельная проблема :)
0
Так недолго и всю контору удалить :) А если этот пользователь является вашим начальником, или начальником вашего начальника, что тогда?
0
не помню, в какой программе, в таком попапе кнопка согласия была неактивна первые несколько секунд, этого было достаточно, чтобы вникнуть в смысл того, какую глупость я щас сделаю
0
потому что попапы (ака выскакивающие сообщения) - большое зло. А вопросы "вы действительно уверены, что вы хотите сделать то, что хотите?" - зло вдвойне. Спасибо, у микрософта накушались.
0
По негласным правилам юзабилити - выскакивающих алертов быть не должно.
0
зачот
0
У меня в одном месте двойная защита от дурака сделана - сначала алерт с подтверждением удаления, затем диалоговое окно с просьбой ввести число. Таким образом, даже случайно нажав Удалить и потом ентер, требуется еще выполнить действие для подтверждения
0
Согласен с таким вариантом, но только с одной оговоркой.
Чтобы где-нибудь в настройках можно было убирать этот чекбокс. Лично меня бы он жутко раздражал.
А вот правильное расположение кнопок - это всегда нужно учитывать, с этим согласен полностью, но это классика юзабилити, ничего нового :)
Чтобы где-нибудь в настройках можно было убирать этот чекбокс. Лично меня бы он жутко раздражал.
А вот правильное расположение кнопок - это всегда нужно учитывать, с этим согласен полностью, но это классика юзабилити, ничего нового :)
+2
Вместо кнопки "отмена" у нас делают ссылку с соответствующим текстом. Все просто.
Пользователь должен двигаться в единственно возможном направлении. Любые отмены или очистки - это сбой основного процесса. Поэтому данные функции доступны только если пользователь озаботится ими. ( менее заметны, на втором плане, и т.д.)
Пользователь должен двигаться в единственно возможном направлении. Любые отмены или очистки - это сбой основного процесса. Поэтому данные функции доступны только если пользователь озаботится ими. ( менее заметны, на втором плане, и т.д.)
+2
согласен с чекбоксом возле кнопки удалить (важные данные)
в остальном - нельзя, т.к. постоянное нажимание лишних кнопочек, чекбоксиков и т.п. чтобы просто отменить действие или закрыть окно не есть хорошо. Это вызовет лишь раздражение
в остальном - нельзя, т.к. постоянное нажимание лишних кнопочек, чекбоксиков и т.п. чтобы просто отменить действие или закрыть окно не есть хорошо. Это вызовет лишь раздражение
0
а есть еще пользователи, который предпочитают вместо кнопки "Отмена" Esc на клавиатуре нажимать ) - как им быть?
я видел вот какую защиту от дурака - хочешь что-нибудь изменить нажми F8 или кнопку "Изменить", а дальше уже и "Отмена" и "Удалить". таким образом пользователя заставляют переключаться в более ответственное состояние! )
вариант нажимать на неактивную кнопку, будет не понятен пользователю!
я видел вот какую защиту от дурака - хочешь что-нибудь изменить нажми F8 или кнопку "Изменить", а дальше уже и "Отмена" и "Удалить". таким образом пользователя заставляют переключаться в более ответственное состояние! )
вариант нажимать на неактивную кнопку, будет не понятен пользователю!
0
Не согласен по поводу чекбокса. Дополнительная операция - это еще куда ни шло, мы все понимаем важность фразы "Вы уверены, что хотите это сделать?". Но приучать юзера к этой фиче - задача долгая и неблагодарная.
Я бы предложил вариант с "двойной" ссылкой. Сначала "Удалить", по клику вызывается жабаскрипт, который на этом же месте выводит "УДАЛИТЬ???!!!" большими красными мигающими переливающимися буквами, и лишь по второму клику запись удаляется. Имхо, тем самым юзер избавляется от необходимости выслушивать разные пакости до диалогового окна и делать лишние мышедвижения.
Я бы предложил вариант с "двойной" ссылкой. Сначала "Удалить", по клику вызывается жабаскрипт, который на этом же месте выводит "УДАЛИТЬ???!!!" большими красными мигающими переливающимися буквами, и лишь по второму клику запись удаляется. Имхо, тем самым юзер избавляется от необходимости выслушивать разные пакости до диалогового окна и делать лишние мышедвижения.
+1
И добить пользователя последним вопросом - "А может не надо?"
+3
Что-то вроде этого?
![](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg257.imageshack.us%2Fimg257%2F7325%2F12155132rx4.jpg%22)
а потом
![](https://habrastorage.org/r/w780q1/getpro/habr/comment_images/68d/3b3/3e2/68d3b33e248ca9adfa3a10c73a1b006a.jpg)
Это обсуждалось в комментариях к этой статье, у меня в блоге. Тоже решение, той же проблемы :)
![](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg257.imageshack.us%2Fimg257%2F7325%2F12155132rx4.jpg%22)
а потом
![](https://habrastorage.org/getpro/habr/comment_images/68d/3b3/3e2/68d3b33e248ca9adfa3a10c73a1b006a.jpg)
Это обсуждалось в комментариях к этой статье, у меня в блоге. Тоже решение, той же проблемы :)
+1
Все же желательно так:
![](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg246.imageshack.us%2Fimg246%2F6589%2F123co3.jpg%22)
:)
![](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg246.imageshack.us%2Fimg246%2F6589%2F123co3.jpg%22)
:)
0
Ну это слишком :))
0
Шучу разумеется )) А еще у меня была идея. Пользователь жмет удалить, тут вываливается сообщение(или лучше страничка) типа: "Почему вы хотите это удалить? У вас какие-то проблемы. Попробуйте опишите свое состояние. Может быть сейчас вы находитесь в плену эмоций? Подумайте, может быть вам не стоит это удалять, и спустя время окажется, что власть чуств была сильнее голоса разума." :)))
0
Для наших пользователей и такое:
![](http://ter.cruiser.com.ua/other/right.gif)
не очень то и спасет ;) У оператора может быть такой высокий уровень автоматизма действий, что он будет набирать все чекбоксы не глядя.
Сегодня был свидетелем такого автоматизма. Подавал документы на получение загранпаспорта и девочка, вносившая данные в базу, настолько ловко «убила» 5-6 всплывающих сообщений об ошибке, что я только хлопал глазами ;) Не глядя на монитор «прострочила» enter-ом и продолжала вбивать данные дальше...
![](http://ter.cruiser.com.ua/other/right.gif)
не очень то и спасет ;) У оператора может быть такой высокий уровень автоматизма действий, что он будет набирать все чекбоксы не глядя.
Сегодня был свидетелем такого автоматизма. Подавал документы на получение загранпаспорта и девочка, вносившая данные в базу, настолько ловко «убила» 5-6 всплывающих сообщений об ошибке, что я только хлопал глазами ;) Не глядя на монитор «прострочила» enter-ом и продолжала вбивать данные дальше...
0
Лишние клики - раздражают. Ввод цифр - тем более. Что можно сделать:
- подсветка кнопки удаления красным (когда сохранения - зеленым)
- активирование кнопки при нахождении над ней курсора в течении секунд 5 (http://www.dontclick.it/ - explore - button lab - click replaced by timer) или дольше. При резком клике - пусть окно ловят.
Сам использую confirm()-окна в этих случаях. Если удаление критичное, то вопрос на конфирме формулируется как "может все-таки оставим эти данные?" - при бездумном ентере разумеется ничего не удаляется.
- подсветка кнопки удаления красным (когда сохранения - зеленым)
- активирование кнопки при нахождении над ней курсора в течении секунд 5 (http://www.dontclick.it/ - explore - button lab - click replaced by timer) или дольше. При резком клике - пусть окно ловят.
Сам использую confirm()-окна в этих случаях. Если удаление критичное, то вопрос на конфирме формулируется как "может все-таки оставим эти данные?" - при бездумном ентере разумеется ничего не удаляется.
+1
Не согласен с Вашим вариантом "может все-таки оставим эти данные?", т.к. пользователь может случайно нажать на кнопку "удалить" и при виде окошка сразу нажмет Esc с мыслью "Не-не, я не это хотел нажать! Отмена!"
0
Лишние клики - раздражают. Ввод цифр - тем более. Что можно сделать:
Думаете, прецедент потери информации, в результате случайного/необдуманного действия раздражает меньше? Разовое удаление/очистка - это, как уже правильно было отмечено, сбой сценария, если такие сбои превалируют над основным сценарием работы, надо обучать/менять оператора. Групповое удаление идеально реализовано в виде Recycle Bin. Перед удалением данные помещаются в чистилище, из которого при желании их можно вернуть на место.
0
Статья гуд, но решения проблемы не дает.
Как вариант: После нажатия на "Удалить", кнопка исчезает и через долю секунды появляеться, но уже с подписью "Действительно удалить?". Происходит "мигание" и увеличение размера (по длине) кнопки, что привлекает внимание юзера. При этом курсор далеко не ушел, и нажать подтверждение не в напряг.
Как вариант: После нажатия на "Удалить", кнопка исчезает и через долю секунды появляеться, но уже с подписью "Действительно удалить?". Происходит "мигание" и увеличение размера (по длине) кнопки, что привлекает внимание юзера. При этом курсор далеко не ушел, и нажать подтверждение не в напряг.
+1
отлично. гораздо лучше, чем раздражающий попап.
0
Вполне хороший вариант. И не надо никому объяснять для чего над кнопкой расположен checkbox!
0
А чем это не вариант?
> 2. Кнопка удаления\отмены по умолчанию неактивна. Возле неё не располагается никаких элементов, кроме текста примерно такого содержания: «Нажмите на кнопку, чтобы активировать её». Т.е. при первом нажатии кнопка активируется, а уже после этого — можно на неё клацать. Отсеиваются случайные нажатия, но особо одаренные люди могут и пролезть сквозь эту защиту.
Я в третьем этапе дал 4 варианта решения проблемы, так что вполне и вполне :)
> 2. Кнопка удаления\отмены по умолчанию неактивна. Возле неё не располагается никаких элементов, кроме текста примерно такого содержания: «Нажмите на кнопку, чтобы активировать её». Т.е. при первом нажатии кнопка активируется, а уже после этого — можно на неё клацать. Отсеиваются случайные нажатия, но особо одаренные люди могут и пролезть сквозь эту защиту.
Я в третьем этапе дал 4 варианта решения проблемы, так что вполне и вполне :)
0
Вместо alert-a можно попросить подтвердить действия на следующей странице. Например: "Удалить новость? Или продолжить редактирование?".
Идея с чекбоксом не понравилась. Мне кажется что простому пользователю будет не совсем понятно почему для удаления чего либо его заставляют нажимать на checkbox, а потом еще и на кнопку.
Идея с чекбоксом не понравилась. Мне кажется что простому пользователю будет не совсем понятно почему для удаления чего либо его заставляют нажимать на checkbox, а потом еще и на кнопку.
0
Не согласен с тем, что чекбоксы все привыкли закрывать, не читая. Мне именно этот вариант представляется наиболее логичным.
0
Некий Aza Raskin пол года назад написал статью в A List Apart: "Never Use a Warning When you Mean Undo" (http://www.alistapart.com/articles/neveruseawarning) в которой доходчиво и убедительно объясняет, что попапы и прочие "решения минутки" это костыли, которые ленивые программисты используют, чтобы сэкономить свое время на написании полноценного Undo. В итоге экономиться несколько часов разработчика, а страдают пользователи, которых заставляют пройти все круги ада вместо того, чтобы дать им возможность исправить допущенную ошибку.
И еще, чем больше человека отвлекают от выполняемой им работы, тем вероятнее, что он допустит ошибку.
И еще, чем больше человека отвлекают от выполняемой им работы, тем вероятнее, что он допустит ошибку.
+1
UFO just landed and posted this here
1) Пример?
2) Как возможность отменить предыдущую операцию может быть неудобством (кроме варианта кривой реализации)? Если пользователю ничего отменять не нужно он работает дальше, и ту последовательность действий, которую он спланировал на несколько шагов вперед, не прирывают никакие ЧП. Не говоря уже о том, что ни для какого из этих действий не требуются танцы с бубном.
3) Я за мир, в котором на небе выплывает оранжевое облачко: "Вы попали в аварию. Отменить?" ;-)
2) Как возможность отменить предыдущую операцию может быть неудобством (кроме варианта кривой реализации)? Если пользователю ничего отменять не нужно он работает дальше, и ту последовательность действий, которую он спланировал на несколько шагов вперед, не прирывают никакие ЧП. Не говоря уже о том, что ни для какого из этих действий не требуются танцы с бубном.
3) Я за мир, в котором на небе выплывает оранжевое облачко: "Вы попали в аварию. Отменить?" ;-)
0
UFO just landed and posted this here
Про реализацию: Нужно лишь отслеживать изменения данных и не допускать их потерю, поэтому хранить все ахи, вздохи и пасы мышью не нужно. Обычно для нормального Undo всего лишь надо ставить на кусок данных таймстемп (например, когда пользователь удалил что-то), и удалять только спустя какое-то время. Если же пользователю нужно восстановить данные, то система делает это для записей, помеченных как удаленные начиная с определенной даты.
Про мыло: Не лучше ли посылать сообщения с некоторой задержкой? В любом случае, ни попапы, ни что-то другое тут не помогут.
Про магазин: Может не до конца понял пример, но при чем здесь Undo? Если товар кончился (по вине админа или по естественным причинам), пока вы шли от корзины до подтверждения заказа, то ни галочки с кнопочками, ни попапы тут не помогут, равно как и undo. Если вы заказали другой аналогичный товар, наверное вы это сделали не от безысходности или озлобленности на админа (об ошибке которого вы понятия не имеете), а потому что считаете его полноценной заменой и вас он устраивает.
Про мыло: Не лучше ли посылать сообщения с некоторой задержкой? В любом случае, ни попапы, ни что-то другое тут не помогут.
Про магазин: Может не до конца понял пример, но при чем здесь Undo? Если товар кончился (по вине админа или по естественным причинам), пока вы шли от корзины до подтверждения заказа, то ни галочки с кнопочками, ни попапы тут не помогут, равно как и undo. Если вы заказали другой аналогичный товар, наверное вы это сделали не от безысходности или озлобленности на админа (об ошибке которого вы понятия не имеете), а потому что считаете его полноценной заменой и вас он устраивает.
0
Первые два решения в третьем шаге очень изящные. Я прямо восхищен.
0
А почему бы еще не сделать возможность восстановить удаленные данные?
Это же просто. Хватит одной таблицы в БД и немного кода, а в некоторых случаях и этого не понадобится.
Кнопки очистки формы - ими вообще кто-нибудь пользуется?
При удалении контента достаточно confirm окна, но только не стандартного, а взятого из какого-либо js фреймворка. Это больше всем по душе, т.к. нет раздражающего звука при появлении окна.
Это же просто. Хватит одной таблицы в БД и немного кода, а в некоторых случаях и этого не понадобится.
Кнопки очистки формы - ими вообще кто-нибудь пользуется?
При удалении контента достаточно confirm окна, но только не стандартного, а взятого из какого-либо js фреймворка. Это больше всем по душе, т.к. нет раздражающего звука при появлении окна.
+1
решение с выпадающим списком среди минусов забыли указать, что в таком списке весьма вероятен вариант промахнуться в нужную строчку - в итоге еще пара лишних телодвижений, достаточных для возникновения ярости
0
Благодарю всех за полезные комментарии, но к сожалению на сегодня я не смогу больше здесь появляться. День рождения знаете ли. Завтра с удовольствием отвечу на все ваши комментарии :) (если смогу доползти до компьютера)
0
Мне думается, лучше не чекбокс, а прятать кнопку за текст и раскрывать по щелчку js'ом.
0
Добавлю "недостаток" по 4-му пункту (с выпадающим меню), как раз на который очень многие потенциальные "дураки" вроде меня наталкиваются:
Колесико скроллинга в браузерах по умолчанию работает как перемотка страницы вверх-вниз. Однако если выбрано активное падающее меню, то скроллинг вверх-внзин вместо этого будет перелистывать список меню.
И бывает так, что сначала юзверь выберет нужный пункт, а потом не сразу нажмет на "ОК" рядом, а решит посмотреть на что-то вверху страницы. И на автомате прокрутит колесико вверх. А так как меню активное - то не страница прокрутится, а выберется другой пункт меню, например не "Удалить сообщение в архив", а "Удалить сообщение навсегда". Ну, а потом сами догадайтесь что произойдет :)
Так же добавлю недостатки по 2-му рассмотренному автором пункту. При первом щелчке по "удалить" - происходит активация кнопки. А при втором - собственно удаление.
НО.
Не учитывается то, что некоторые бухгалтерши и секретари кликают два раза по чему угодно - по ссылке на странице, клавише меню, и по чему угодно. Кликают на автомате. Так вот решение "2" - явно не для них ;)
И ещё из личного опыта добавлю. Про страницы подтверждения.
Жил-был сайт, где функция удаления юзверя была такой: сначала клик по "удалить пользователя", и попадание на страницу подтверждения, а потом клик по "Да, точно хочу удалить". Так вот все бы хорошо, но функции были реализованы через обычные гиперссылки, а не методом "Post". В итоге, когда однажды выкачал сайт программой Телепорт Про, в живых не осталось ни одного пользователя ;) Вот и такое бывает, да.
P.S. В целом статья, и некоторые интересные мысли понравились. Плюсанул бы, еслиб небыл в минусе :)
Колесико скроллинга в браузерах по умолчанию работает как перемотка страницы вверх-вниз. Однако если выбрано активное падающее меню, то скроллинг вверх-внзин вместо этого будет перелистывать список меню.
И бывает так, что сначала юзверь выберет нужный пункт, а потом не сразу нажмет на "ОК" рядом, а решит посмотреть на что-то вверху страницы. И на автомате прокрутит колесико вверх. А так как меню активное - то не страница прокрутится, а выберется другой пункт меню, например не "Удалить сообщение в архив", а "Удалить сообщение навсегда". Ну, а потом сами догадайтесь что произойдет :)
Так же добавлю недостатки по 2-му рассмотренному автором пункту. При первом щелчке по "удалить" - происходит активация кнопки. А при втором - собственно удаление.
НО.
Не учитывается то, что некоторые бухгалтерши и секретари кликают два раза по чему угодно - по ссылке на странице, клавише меню, и по чему угодно. Кликают на автомате. Так вот решение "2" - явно не для них ;)
И ещё из личного опыта добавлю. Про страницы подтверждения.
Жил-был сайт, где функция удаления юзверя была такой: сначала клик по "удалить пользователя", и попадание на страницу подтверждения, а потом клик по "Да, точно хочу удалить". Так вот все бы хорошо, но функции были реализованы через обычные гиперссылки, а не методом "Post". В итоге, когда однажды выкачал сайт программой Телепорт Про, в живых не осталось ни одного пользователя ;) Вот и такое бывает, да.
P.S. В целом статья, и некоторые интересные мысли понравились. Плюсанул бы, еслиб небыл в минусе :)
+1
а если бы при нажатии кнопки медленно всплывало нечто вроде тул-типа, на котором было бы написано "если Вы действительно хотите все удалить, нажмите кнопку еще раз"?
0
Мне кажется, или уже куча книг по этому вопросу написана?
В любом случае, варианты, предложенные автором описывают лишь малую часть событий которые могут происходить на странице. Чекбоксы и двойно-тройные клики помогут, только если отправлять текст и выбор делается между двумя кнопками. Все же есть более тонкие стратегии. Например, расположение кнопок: если кнопок больше двух, то самая важная помещается наверх, а самая опасная ;Р (типа СтеретьНах!) вниз, посередине - с промежуточным смыслом. Также, сейчас довольно часто можно встретить различные нетекстовые формы, типа Граффити в Контакте. Там нужно опасаться трех О (которые еще некстати стоят горизонтально,подряд друг за другом, и все одного размера): Отменить, Очистить, Отправить (там именно в такой последовательности).
ну и так далее. Исследования можно продолжать очень долго, т.к. много частных случаев.
На сегодняшний день лучшей реализацией защитой от ошибочного нажатия я считаю облачко Отменить в Gmail.
В любом случае, варианты, предложенные автором описывают лишь малую часть событий которые могут происходить на странице. Чекбоксы и двойно-тройные клики помогут, только если отправлять текст и выбор делается между двумя кнопками. Все же есть более тонкие стратегии. Например, расположение кнопок: если кнопок больше двух, то самая важная помещается наверх, а самая опасная ;Р (типа СтеретьНах!) вниз, посередине - с промежуточным смыслом. Также, сейчас довольно часто можно встретить различные нетекстовые формы, типа Граффити в Контакте. Там нужно опасаться трех О (которые еще некстати стоят горизонтально,подряд друг за другом, и все одного размера): Отменить, Очистить, Отправить (там именно в такой последовательности).
ну и так далее. Исследования можно продолжать очень долго, т.к. много частных случаев.
На сегодняшний день лучшей реализацией защитой от ошибочного нажатия я считаю облачко Отменить в Gmail.
0
вот бы еще появилась CTRL-Z с таймером в почтовых вебинтерфейсах. чтобы не было случайно отправленных недописанных писем
0
Помоему лучше (и проще) сделать псевдо-cсылку (или кнопку) на выплывающую "панель управления" контентом/новостью.
Т.е. кнопка, после которой внизу разворачивается спрятанный див, на котором будут размещены нужные кнопки управления, Удаление, Очистить (хотя я ниразу не пользовался кнопкой "очистить").
Просто, что то вроде этого:
![What to do?](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg146.imageshack.us%2Fimg146%2F3701%2Fwhattodoly9.png%22)
Т.е. кнопка, после которой внизу разворачивается спрятанный див, на котором будут размещены нужные кнопки управления, Удаление, Очистить (хотя я ниразу не пользовался кнопкой "очистить").
Просто, что то вроде этого:
![What to do?](https://habr.com/images/px.gif#%3D%22http%3A%2F%2Fimg146.imageshack.us%2Fimg146%2F3701%2Fwhattodoly9.png%22)
0
Плюс конечно же нужно "Утверждать" такие важные действия пользователя, на тот случай, если он щелкнул не подумав. Реализаций может быть масса. Чем проще и понятней, тем лучше.
Несколько раз встречались чекбоксы рядом с кнопками, - не очень то удобно. Кнопка она и есть кнопка.
Пример из реальной жизни (многие наверно видели в фильмах или ещё где) реализацию юзабилити, т.е. как раз такую защиту от дурака, на панелях управления военной базы. Там кнопки красные, находятся под защитным колпаком, обычно прозрачным. Теперь такую вещь люди пытаются реализовать и в виртуальном мире :)
Несколько раз встречались чекбоксы рядом с кнопками, - не очень то удобно. Кнопка она и есть кнопка.
Пример из реальной жизни (многие наверно видели в фильмах или ещё где) реализацию юзабилити, т.е. как раз такую защиту от дурака, на панелях управления военной базы. Там кнопки красные, находятся под защитным колпаком, обычно прозрачным. Теперь такую вещь люди пытаются реализовать и в виртуальном мире :)
0
Если данные действительно важные, то вполне можно заставить пользователя держать одновременно 11 расположенных не рядом кнопок, и только их, и только тогда активировать кнопку, по которой ему надо мышетыкнуть для удаления данных :)
Или как вариант - использовать внешние устройства, наподобие расположенных на расстоянии трех метров ключей, которые должны быть повернуты одновременно.
Если же данные не очень важные, то можно например использавать попап с активной по умолчанию кнопкой "Отмена" или с нестандартными кнопками или же чекбокс рядом с кнопкой "Удалить". В обоих этих решениях, правда, есть одна проблема - если оператор делает операцию удаления часто, то к любым операциям по "защите от дурака" он привыкнет. Если конечно программист не будет достаточно упорным, чтобы придумать каждый раз новый вопрос для подтверждения действия.
Или как вариант - использовать внешние устройства, наподобие расположенных на расстоянии трех метров ключей, которые должны быть повернуты одновременно.
Если же данные не очень важные, то можно например использавать попап с активной по умолчанию кнопкой "Отмена" или с нестандартными кнопками или же чекбокс рядом с кнопкой "Удалить". В обоих этих решениях, правда, есть одна проблема - если оператор делает операцию удаления часто, то к любым операциям по "защите от дурака" он привыкнет. Если конечно программист не будет достаточно упорным, чтобы придумать каждый раз новый вопрос для подтверждения действия.
0
1. Это называется "лень разработчика реализовать UNDO". Просто удивительно, на какие ухищрения можно идти, лишь бы не делать UNDO!
2. Возьмите пример с iTunes, посмотрите, как там делается удаление музыки из библиотеки.
2. Возьмите пример с iTunes, посмотрите, как там делается удаление музыки из библиотеки.
0
Я решил эту проблему созданием "мусорной карзины". описание - http://mysolo.ru/post/10
0
Sign up to leave a comment.
Пассивная защита от дурака