Как стать автором
Обновить

Комментарии 60

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

Тем более что после десятка-другого секунд такого ожидания гораздо проще нажать Shift+Ctrl+Esc, да и прибить программу, которая не желает делать хоть как-то выполнить то, что я от нее попросил кнопкой «Отмена».
Неоднократно видел такое поведение кнопки «отмена», когда она становилась неактивной когда выполнялись процессы, которые прерывать нельзя и снова становилась активной при переходе к менее критичным процессам. Так что вроде бы ничего нового.
Мне кажется, что неактивная кнопка «Cancel» — вернейший способ поставить пользователя в тупик.
ИМХО.
НЛО прилетело и опубликовало эту надпись здесь
Все разумно. С технической точки зрения.
И даже с эргономической.
С психологической — все по-другому.
Многих «исчезающая», внезапно ставшая недоступной для нажатия кнопка приведет в состояние ступора — или в состояние плохо контролируемой ярости.
Мне кажется, что процессы, которые нельзя прерывать — вернейший способ вызвать в пользователе адский приступ ненависти и желание нажать на кнопку reset.
Еще хуже, когда откат делается гораздо дольше самого отменяемого процесса.
Так же очень «радует», когда кнопка отмены становится неактивна после нажатия, и ты не понимаешь, что происходит — откат, грубое прерывание, или процесс продолжается и отмена невозможна. Так что нужна информация, хотя-бы диалог после нажатия…
Особенно с системным модальным окном и жуткими тормозами. В идеале длительный процесс должен говорить «я тут примерно часиков пять поработаю, почитайте пока хабр» и прятаться в трей.
Да, только программа должна сначала сообщить о том, что для выполнения данного процесса потребуется длительное время, и только потом начинать этот процесс. А то мало ли — может пользователю через полчаса надо будет перезагрузиться в другую операционку, или он уходит и не хочет оставлять компьютер включённым.

А иначе получится как с Windows 7 (и, вроде бы, даже не только с 7) — выбрал выключение или перезагрузку, и тут на тебе, обновления на 15 минут. И такую систему совершенно не беспокоит, что у тебя могут быть другие планы (вставить жёсткий диск и скопировать файлы, потому что владелец жёсктого диска торопится, или, опять же, загрузить другую ОС и что-то срочно сделать). Вот так делать, я считаю, нельзя ни в коем случае. Я уж не говорю о том, что у Линукса (да и не только Линукса, но конкретно я им пользуюсь) как-то вполне получается обновляться, не прерывая работу пользователя, и не откладывая выключение/перезагрузку.
Отлично! Ещё один способ тонко поиздеваться над пользователем для программиста-тролля.
Имхо, серенькая кнопка «Cancel» красноречиво говорит — фарш обратно провернуть нельзя… хотя может это только для моего прогерского сознания…
Я руководствуюсь простым правилом: использовать неактивный вид только у постоянно присутствующих кнопок интерфейса (мигание которых — не комильфо): например, кнопка предыдущей страницы при открытии первой страницы.

Иначе, например, в диалоговом окне можно было бы сразу раместить: ok, cancel, yes, no, retry, abort и не скрывать ненужные, а делать их неактивными.
А я руководствуюсь еще более простым правилом: Нельзя нажать? Не показывай.
Исключение лишь кнопки которые руководствуются действием пользователя — принятие лицензионных соглашений например (пока чекбокс не кликнул, кнопка неактивна).
Не, есть исключения. Представьте, что у вас тулбар и в какой-то момент нельзя нажимать какие-то кнопки. Если их не показывать, то не показывать можно двумя способами:
а) не показывать, но место они занимают по-прежнему (просто пустое) — некрасиво, т. к. может быть куча пустых областей между активными кнопками по 2-3 см пропуска;
б) не показывать и схлопывать. Это, опять же, в большинстве случае неприемлемо, т. к. невозможно будет юзеру на уровне моторики запомнить, где, какая кнопка: будет вести туда курсор, а кнопка уже сдвинулась влево или вправо.
Т. е. скрывать можно имхо только тогда, когда на этом месте точно не будет появляться другая кнопка (это путает пользователей), а такое не всегда эстетично с точки зрения внешнего вида (+ нерациональное использование пространства).

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

Короче, дьявол в деталях — нужно думать, а не слепо следовать :-). Только вот, чтобы нарушать правила, нужно самому хорошо их знать (а также все последствия их нарушения).
Смутно, если честно могу себе это представить. Допустим всякие кнопки удалить/копировать/етк в тоталкомандере всегда активны, даже когда ничего не выбрано, он ничего не запрещает, а если их нажать, то информирует о том что надо выбрать файл для текущего действия. И такой подход мне кажется наиболее удачным.
В многом согласен. Но я бы немного расширил варианты поведения. В случае, когда операцию нельзя отменить, но можно остановить — я пишу на кнопке «Прервать». Это слово достаточно коряво и пугающе выглядит, чтобы на него не нажимали без лишней необходимости, но, при этом, дает интерфейсную возможность прерывания длительной операции. Иногда осмысленно после нажатия (но до собственно прерывания) расписать пользователю все ужасные последствия этого действия и переспросить это ли он имел в виду. Это имеет смысл делать, только если произойдут изменения необратимые, которые не позволят ему продолжить операцию с момента прерывания.
Главное, чтобы во время «после нажатия (но до собственно прерывания)» процесс выполнения приостанавливался: сталкивался пару раз с тем, что пока я читал список «ужасных последствий прерывания» сам прерываемый процесс успевал завершиться.
Unicorn Glitter Engine — Движок, создающий Блеск у Единорогов
Скорее «Блестящий единороговый двигатель».
Думаю, надо подобрать близкую к нашим реалиям метафору…
Лихая тройка вороных (механизированная).
Имхо, имеется в виду несуществующий, но крутой девайс: двигатель на невероятностной тяге, денейрализатор, транклюкатор, Garden of Eden Creation Kit и т.д.
Написал про адронный коллайдер)
Да, тоже отличный вариант :)
В Adobe Flash тоже «чудесная» отмена при сборке флешки. Задание уходит к фоновой программе, окно с прогрессом подвисает до тех пор, пока флешка не соберётся, случайно запущенную сборку (а один проект собирается около 30 секунд) не прервать.
>> ваша кнопка отмены будет похожа на мальчика, который рычал как волк, но никто не верил ему.

«На мальчика, который кричал: „Волк!“, конечно же)
НЛО прилетело и опубликовало эту надпись здесь
Ну это метафора уже от переводчика. Не совсем понятно, к тому же, почему кнопка отмены похожа на мальчика(?), который рычит(??).

«the boy who cried wolf» — все-таки однозначная отсылка к басне Эзопа, про мальчика, которому недоставало весомости в словах.
Спасибо! Добавил ссылку на вики про эту историю.
Я делаю это, чтобы выяснить, что кривые переводы — зло. И это так.
НЛО прилетело и опубликовало эту надпись здесь
Опять приходим к управлению ожиданиями, фундаментальной основе взаимодействия.
Для каждой кнопки «Отмена» есть набор действий, которые должны произойти при ее нажатии.
Причем фактический набор действий и ожидания пользователя (каждого конкретного) могут очень сильно различаться, и вероятность этого достаточно велика. Причем эта вероятность пропорционально увеличивается в зависимости от бизнес-логики (Mvc) и ее проекции на монитор (mVC).

Короче, забейте на кнопку «Отмена», не путайте себя и пользователей.
Насчет мгновенной отмены не согласен. Пользователь может нечаянно отменить длительный процесс. Надо приостанавливать и спрашивать подтверждение.
Старая шутка про Nero: Кнопку «отменить прожиг» надо переименовать в «запороть болванку».
В одном из пиратских релизов (довольно популярном, кстати) её таки переименовани =)
а меня больше всего убивает, когда жмешь отмену и все подвисает минуты на две-три, а ты сидишь и думаешь, отменится процесс или нет, а может все уже закочилось бы, если бы я не тыкал кнопочки всякие.
Ага, и судорожно лезешь в таск менеджер
В этом плане люто бешено бесит кнопка «Назад» на андроидном телефоне, которая иногда что-то отменяет, иногда просто показывает прошлый экран, не отменив действия, а иногда и вовсе отправляет приложение в фон, оставив работать дальше.

Особенно весело случайно нажать на контакт и начинать звонок. В этот момент всегда срабатывает рефлекс «Останови, это, мать твою!» и палец интуитивно нажимает на «Назад», тем самым вместо остановки отправляя звонилку в фон, скрывая её интерфейс и последний шанс остановить звонок, который продолжается, но теперь уже без кнопок отмены.
Побочный эффект упрощения интерфейса — отказа от красной и зеленой кнопок.
Омг. Вы говорите про чистый андроид? В сенсе вроде все не так ужасно
Я говорю про сенс на HTC Desire Z.
Вроде бы в настройках выставляется, по началу я сам был в шоке от такого поведения, но потом я нашел как это изменить.
А где в настройках это выставляется, не подскажите, а то найти никак не могу.
Сенс 3ий.
Предлагаю по нажатию на эту кнопку выводить сообщение «В реку дважды войти нельзя» и продолжать работу=)
А кнопка «Power» Вас не смущает? Все время перед Вами маячит…
Я думаю что умные мвльчики и девочки, которые пишут программы ассоциируют кнопку отмены с undo. И это правильно.
Если уж не показывать кнопку «Отмена» то перед этим нужно уведомить юзера что процесс нельзя будет отменить.
Может еще предупреждать что процесс отмены нельзя будет отменить? Или в нем добавить кнопочку «нет-нет, продолжай! Я опять передумал!»?
Именно для таких умников в unix придумали сингнал SIGKILL. Сказали умереть — умри.

Потому что бывает, что делаешь операцию, она ну очень сложная и ну очень не нужная.
Знаете, с другой стороны меня неоднократно выводили из себя всякие не всегда особо нужные установки/проверки/конфигурации, которые задумывались на неприлично долгое время при всяком отсутствии какой-либо кнопки вообще. Уж лучше сделать кнопку «пох**, отменить», чем заставлять пользователя снимать сильно засидевшийся процесс.
Так что сначала, наверное, лучше ещё раз убедиться, что программа не залипнет из-за какой-то фигни на долгое или бесконечное время, а потом уже думать над тем, оставлять ли кнопку отмены.
Меня бесит кнопка отмены при прожигании диска :).
Было время, когда писали приложения в MS-DOS (никак не могу вытравить из вамяти этот кошмар), но писали уже классами. Писали большую хрень на подобие теперешней 1-С бухгалтерии. Куча связанных файлов БД и т.д. Впервые столкнулся с тем, что базы рушатся из-за нетерпеливости пользователя. Бухгалтерша запускала расчёт годового балланся, а через 5 минут (ждать нужно было около часа при 386-SX) начинала судорожно тыкать карандашиком в Reset, что приводило к потерянным кластерам на винте.

1 шаг — застукал её с поличным (до этого — «Я ничего не знаю!»)
2 шаг — сделал ей какую-никакую анимацию (что-то типа вращающегося слэша-звёздочки) — НЕ ПОМОГЛО…
3 шаг — придумал ей кнопку <Отмена> — и тут началось (базы перестали сыпаться, но «Оно ничего не считает»)
4 шаг — покрасил <Отмена> БелымПоКрасному и над кнопочкой поместил текст (по-русски) о последствиях (по сути — Undo )
5 шаг — пришлось купить 2 бутылки водки и пить с ней до тех пор, пока не выяснилось, что «Если компьютер такой умный, так что же он ТАК ДОЛГО? Я ведь думала, что он ОПЯТЬ ЗАВИС»
6 шаг — задержался в командировке (такие ипеня, омг...) с целью внедрения в МОЗГИ бухгалтеров РЕАЛЬНОЙ информации вместо абстрактной веры в УМНОСТЬ компьютеров…
Дело пошло !)
Может помог бы прогресс-бар?
А вот это как раз-таки та самая дополнительная работа, про которую в конце статьи написано.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации