Во истину. Множество людей привыкли жать на «ок» дабы пропустить по быстрому сообщение и диалоговое окно не читая его. Когда каждая кнопка имеет осмысленное название, это менее привычно, но позволяет человека вырвать из его «привычно и на автомате» и заставляет хоть на секунду задуматься.
Например, диалоговое окно, при закрытии не сохраненного документа (Вы не сохранили документ. Вы действительно хотите выйти?) с кнопками «пропустить», «отмена», «ок» вводились бы в ступор множество людей, либо они на автомате жали бы «ок».
Всё абсолютно наоборот: когда ты видишь «OK», приходится прочитать, что именно ты подтверждаешь, а когда видишь «Save», то тебе кажется, что ты уже всё понял и текст в окне можно не читать, хотя там могло быть предложение, например, сохранить предыдущую версию кода без ошибок, вместо дописанной, но с одним варнингом.
Некоторые и диалоговые окна уже считают дурным тоном, предпочитая какие-нибудь панели уведомлений или всплывающие в фоновом контексте сообщения на манер макосевого Growl.
На иллюстрациях как раз продемонстрирован случай, который лично меня выбешивает: в чём разница между Don't Save и Cancel? Традиционно Cancel — антоним Ok. Но в данном случае Cancel означает отмену задачи, прерванной данным сообщением. То есть, место Ok занимает Save, место Cancel занимает Don't Save, а Cancel -он сегодня у нас просто Cancel. Каждый раз приходится размышлять над такой комбинацией кнопок.
Автор, будьте последовательны, Cancel надо заменить на Don't Close.
А никто не подскажет где найти картинку — «Дедушка мороз, пусть тот кто проектировал этот интерфейс, сдохнет как собака в новом году». Когда то давно ее видел, был в диком восторге, а теперь найти не могу(((
Всё правильно! Например, пользователь нажал «выход» — в таком случае возможны как раз 3 действия: «сохранить» (и выйти), «не сохранять» (и выйти) и «отмена» (т.е. отмена действия кнопки «выход» — значит продолжить работу).
Кто спорит. Надо написать «я пошутил, ничего закрывать не надо». А то пользователь должен ещё сообразить, что именно отменяется. Вопрос относится к сохранению, а отменяется — выход. Так что машинально отмена будет отнесена именно к сохранению.
Ну, потому что «Отмена» чаще всего попадает-таки в контекст, и подсознательно понятно, что именно нужно отменить. Однако, одновременные «Не сохранять» и «Отмена» вызывают жесткий диссонанс, потому что кажутся синонимами, и заставляют вдумываться для принятия решения.
В чем то автор и прав, но пример, действительно, отвратительный.
1) здесь не стандартный диалог «Ок/Cancel», а немного иное, где вполне логично в паре расположены Don't save и Save.
2) как заметили выше, расположение кнопок ужасное. Размеры кнопок и интервалы между ними разные.
3) рассмотрен всего один пример, а ведь иногда одного слова может быть мало. При этом разместить на кнопке ОченьДлинныйТекст представляется более дурным тоном.
PS: Всегда стоит руководствоваться здравым смыслом и названия давать в зависимости от ситуации, плюс в рамках проекта логика должны быть едина.
Не трогайте Cancel, он на месте. Во-первых, Cancel — это единственная кнопка в диалоге, которая не содержит деструктивного действия. Т.е. максимум что плохого может случиться — придется смотреть на диалог еще раз.
Во-вторых, размещение кнопок очень правильное: действие, которое может принести больше всего вреда, отделено от остальных.
Ну а в-третьих, предлагаемое вами Don't Close не говорит ничего. Что «не закрывать»? Не закрывать диалог? Не закрывать программу? Не закрывать документ? Cancel в данном случае вполне уместно.
Вообще в данном диалоговом окне очень мало пользы. Оно пригодится лишь тогда, когда пользователь по ошибке закроет программу с измененным документом, гораздо правильнее было бы сохранить документ и стек изменений после закрытия программы, а при следующем открытии дать возможность пользователю отменить свои действия.
Единственный сценарий при котором сохранять ничего не следует — когда пользователь сделал много изменений, но решил не сохранять их. В таком случае закрытие программы является массовой отменой изменений. Такой прием не очевиден для людей которые им никогда не пользовались, лучше просто сделать кнопку «Закрыть документ без изменений».
Согласен, но во многих случаях сохранение проходит быстро, если взглянуть на современные игры, то там сохранение — дело нескольких секунд, и зачастую проходит в фоне, хотя объемы информации велики. Всегда надо исходить из контекста, то что будет элегантно и удобно работает в текстовом редакторе, может быть не применимо в CAD программе.
Рискну предположить, что набор фиксированных текстов на кнопках диалогов пошел из функций создания этих самых диалогов, которые в качестве параметров принимали только заголовок, текст диалога и набор флагов для задания набора кнопок. Вот так программный интерфейс программистов ограничил возможности создания интерфейса пользователя.
Ограничивала программистов только их собственная лень.
В любой ОС вы можете нарисовать окошко с любыми кнопками, какие вам нравятся, и сделать им такое поведение, какое вам было надо.
Только это окно придется таки нарисовать вручную в дизайнере форм, потом закодировать пару простейших функций для реакции на кнопки и т.п. Работы немного, но минут 10-15 это займет.
Для простоты отладки во многих системах есть функция типа MessageBox, которая создает стандартное окошко с вашим текстом и кнопками на выбор ОК, ОК/Отмена, Да/Нет или Аборт/Ретрай/Игнор.
Для того, чтобы сказать «упс, случилась кака» или реализовать по-быстрому заглушку — очень даже удобно.
Другое дело, что в нормальном софте в релизе таких окон быть не должно.
Рецепта избавиться от лени пока не придумали. Поэтому 80% пойдет по пути наименьшего сопротивления. А 20% лучших — как вы написали. Если бы программный интерфейс требовал задания текста кнопок — всё могло быть по-другому.
Кроме того, есть Style Guide от авторов операционки, рекомендующие тот или иной подход, чтоб приложения на компе соответствовали друг другу и операционке.
Поддерживаю. Наличие многословного текста сообщения и кнопки ОК автоматом подталкивает пользователей нажать её побыстрее и продолжить работу не читая сообщения вообще, что влечет за собой порой не совсем ожидаемое действие от программы.
Однако при кривом/автоматическом переводе в таком случае периодически выскакивают окошки с кнопками «Отменить» и «Отмена», между которыми приходится делать выбор:)
> В то время как данный подход, в прошлом, был стандартом для ОС и приложений
Не стандартом для ОС, а для Windows. В макосовских Human Interface Guidelines еще в 90-х было требование к разработчикам использовать вменяемые названия на кнопках вместо OK/Cancel
лично мне данный вариант кажется почти идеальным. естественно не для всех окон, потому что довольно громоздко смотрится, зато практически мгновенно дает понять что требуется от пользователя.
да вариант отличный, только иконки создают визуальный шум. Иконка для кнопки «Отмена» как-то настораживает, создается ощущение будто при ее нажатии программа вообще схлопнется. Может более удобно так:
Ну иконки то не я рисовал, просто свои 5 центов насчет юзабилити выражаю. С дискетками ассоциация сохранения, с крестом отмена или закрытие. Так что в данном случае по моему без иконок не то.
Иконки удалять не стоит, потому что это дополнительная помощь глазу для распознавания действий. Ведь когда мы видим дискету, можно сразу понять, что это означает сохранение. В этом примере про Paint.NET, я думаю, просто иконки не совсем удачно выбраны и мелковаты.
Eyes-tracking:
1. Сначала прочитывается понятное в любом случае «Сохранить».
2. Потом рифмующееся с ним — «Не сохранять», причём кнопка выражает именно действие, понимаешь, что при нажатии файл НЕ сохранится.
3. Третим читаем «Отмена», и на немой вопрос, что же это за отмена, сразу отвечает нижняя строчка «Вернуться...». Здесь мы понимаем, что нажимая предыдущие кнопки, мы не сможем вернуться.
Исходя из такой логики, мне больше нравится исходный вариант, так как маленькие иконки дополнительно подчеркивают отмеченные строки.
P.S. Данные айз-трекинга собраны с моих собственных глаз и не подтверждены никакими исследованиями.
Кстати, в том же Paint.NET, при запуске программы, если она обнаружила обновления на сервере, то выскакивает такое окошко:
Допустим, я не хочу вообще устанавливать обновление, ни сейчас ни после выхода, куда мне жать? Если задуматься и потратить время, то можно догадаться, что надо жать крестик вверху справа, но все равно это не так очевидно. Или завести еще кнопку: «Не устанавливать обновление».
а вот тут кнопка скорее всего отсутствует не просто так. это дополнительный стимул пользователю обновить свою древнюю версию софта, и получить обновления, решения возможных проблем, а не вонь на форумах что в версии от 31го года какая-то плюшка сломалась
Автор Paint.NET писал вроде в своём блоге, что сделал это специально, так как не хочет, что бы казуальные пользователи пропускали установку обновлений.
Долгие годы пользователей Windows (и не только) дрессировали, приучая к определенному шаблону восприятия стандартных диалоговых окон. А теперь кто-то решил (может и не без оснований), что этот шаблон — дурной тон. Но привычки то надо учитывать.
Если появляется message box с кнопкой OK (конечно она должна быть слева), — то для меня это предупреждение о том, что я собрался сделать что-то необратимое (или вроде того) и у меня есть быстрая возможность подтвердить решение или отказаться от него (третья кнопка нежелательна). Текст над кнопкой обычно вообще неважен (только на случай, если что-то нечаянно нажал, сам не понял что).
Пример выше ужасен. Мало того, что кнопки не на своих местах, так их содержимое совершенно не согласуется с текстом вопроса. Заставляет долго смотреть и думать чего от меня хотят (если в этом и была цель, то способ издевательский). Приведенному тексту соответствуют два простых ответа: (yes и no). Допустима третья кнопка — cancel (хоть и не очень хорошо). Если хотите именно такие кнопки, то должен быть другой текст. Или уж действительно — его отсутствие.
Помню в GNOME после Windows долго раздражали диалоговые окна с настройками с единственной кнопкой «Закрыть». После «ОК/Применить/Отменить» над каждым окошком долго думал.
А почему у Save многоточие (Save...), а у других нет?
В винде, например, кнопка «открыть» обычно пишется как Open..., при нажатии на неё открывается ещё одно окно, где нужно выбрать файл.
Что-то ерунда получается. Пользователи не читают диалоговых окон, но с какой-то радости будут читать надписи на кнопках?
Никто ведь не пишет на выключателях «Включить свет» и «Выключить свет», а на педалях автомобиля «Отключить коробку передач от двигателя», «Замедлить движение» и «Ускорить движение».
Читаешь, что в окне, понимаешь смысл и жмешь знакомые с детства кнопки (Или вообще Enter и Escape)
Если надпись на кнопке такая информативная, что не нужно читать диалоговое окно, может стоит текст в окне подсократить или хотя бы структурировать?
почему же, просто обычно такие надписи как вкл/выкл имеют место находиться на переключателях у вояк да на атомных электростанциях. а в не критичных местах можно ими пренебречь
Везде надо думать.
Например, в скайпе можно начать передачу файла, а потом решить отменить передачу.
После чего мы получаем диалоговое окно с кнопками «Ok» и «Cancel».
Отменить передачу файла?
Отменить отмену?
Руки оторвать этим дизайнерам.
а мне не нравится идея. Я всегда читаю заголовок диалогового окна и после этого мне проще принять решение по Ок/Отмена, а не вчитываясь в 3 и более варианта. То есть теперь я объективно трачу больше времени на работу с такими окнами.
Если кто-то считает, что наши пользователи начали вчитываться — то это не про славян. Они наугад теперь тыкать будут. Неплохо бы провести научное исследование на эту тему.
Лично я считаю, что бывают диалоги с одной кнопкой, с двумя, с тремя — и прочие, в которых не только кнопки под надписью.
С одной кнопкой — чисто информативные сообщения. И кнопка тогда — ОК, нажатием которой пользователь программе говорит что он прочёл сообщённое ему и смирился, ибо иных вариантов для него у программы нет.
С двумя кнопками — это когда пользователю в дополнение к возможности продолжения даётся возможность отмены. И там кнопка «Отмена» органично дополняет кнопку «ОК». А текст содержит уведомление о том, что именно сейчас будет сделано, если нажать ОК.
С тремя кнопками — это когда продолжить можно что-то делая дополнительное, или пропустив это дополнительное. Или отменить вовсе. Соответственно, текст содержит описание того, что именно программой делается и предложение-вопрос про возможность сделать что-то дополнительное. И кнопки тогда — «Да», «Нет» как ответ на тот вопрос-предложение, и «Отмена» для возможности отменить все как дополнительное действие, так и основное.
Читаю, что все варианты с одной, двумя и тремя кнопками под текстом могут быть уложены в эти перечисленные, и более того — надо их в эти три варианта укладывать.
В частности, диалог из примера — с тремя вариантами: он о закрытии с сохранением или без. Или отмене закрытия. Должны быть кнопки «Да», «Нет» и «Отмена», и текст типа такого:
Вы закрываете программу Text Edit.
Документ «Untitled» ещё не сохранён.
Сохранить его на диск перед закрытием программы?
Почему кнопка «ОК» теперь считается дурным тоном в дизайне