UI должен отобразить действия, которые не доступны?

в документации о Runtime

// in bash
npm install babel-transform-runtime --save-dev

// in gulpfile
.pipe(babel({
  plugins: ['transform-runtime']
}))

edit: еще лучше на герою в режиме prod используйте --save вместо --save-dev

17
задан Steve Weet 27 February 2009 в 07:42
поделиться

11 ответов

Мой подход (и рекомендация) состоял бы в том, что кнопка grayed согласно Вашей опции № 2.

, Когда UI редок, и достаточный агент по операциям с недвижимостью доступен, имея встроенные (первичные) контекстные подсказки (такие как подход вопросительного знака, предложенный Freddy, рядом с кнопкой, детализируя встроенную проблему, например, всегда отображайтесь под отключенной кнопкой "No users to delete. Add some by going to (link) this tab (/link)!"), может быть желательным.

Однако такие встроенные подсказки или вопросительные знаки, которые появляются иногда, могут усложнять расположение или препятствовать эффективности интерфейса, когда агент по операциям с недвижимостью в большом почете. В таких случаях может быть лучше иметь наложенная подсказка (воздушный шар или подсказка), который появляется при парении над отключенной, кнопкой а также , при нажатии на отключенную кнопку (т.е. пользователь проявляет намерение путем приближения к отключенной кнопке с его курсором); подсказка должна объяснить, почему кнопка отключена и grayed, т.е. "Нет никаких пользователей для удаления".

Вышеупомянутое должно заботиться обо всех (типичный, а также патологический) случаи. Это комбинирует преимущества Ваших опций № 3 и № 2, с, надо надеяться, ни одним из недостатков.

16
ответ дан 30 November 2019 в 11:04
поделиться

Raymond Chen (Старой Новой Вещи известность) предоставляет хорошие инструкции:

, Когда Вы отключаете опцию и когда Вы удаляете ее?

Из записи в блоге:

Эксперименты показали, что, если что-то показывают, но отключают, пользователи ожидают, что будут в состоянии включить его, если они будут чинить вокруг достаточно. Так оставьте пункт меню показанным, но отключенным, если существует что-то, что пользователь может сделать, чтобы заставить операцию становиться доступной. Например, в медиа воспроизводят программу, опция остановить воспроизведение отключена, если медиа-файл не играет. Но как только это начинает играть, опция становится доступной снова.

, С другой стороны, если опция не доступна по причине, пользователь не имеет никакого контроля, то удалите ее. Иначе пользователь сойдет с ума, ища волшебный способ включить его. Например, если принтер не способен к печати цвета, не показывайте ни один из вариантов управления цветом, так как нет ничего, что пользователь может сделать с Вашей программой для создания того принтера цветным принтером.

8
ответ дан 30 November 2019 в 11:04
поделиться

Мне всегда преподавали, что удаление объектов от UI было намного более дезориентирующим для пользователя, чем отключение. Не разрабатывайте для.01%, кому нельзя помочь!

5
ответ дан 30 November 2019 в 11:04
поделиться

Я предлагаю опцию 1). Я скажу Вам почему.

Опция 3) (Худший) "Не показывают удалить вариант в весь", Это даже не делает пользователя знающим, что существует даже такая существующая функция. Таким образом, это - худший способ отклонить.

Опция 2) "Показывают удалить вариант, но серый это"

Лучше, чем 3), но пользователь может продолжать задаваться вопросом, почему ему отказывают в функциональности. Он может также начать думать, что он не priviledged пользователь и испытывает недостаток в правах.

Option1) "Всегда показывают удалить вариант, но предупреждают пользователя, когда он выбирает его, что опция недоступна, потому что существуют активные контракты".

Это ясно скажет пользователю, что отсутствует, и расскажите ему о точной функциональности. Пользователи всегда рады работать над прозрачной системой, которая не бросает их загадки.

3
ответ дан 30 November 2019 в 11:04
поделиться

Вы хотите, чтобы Ваш UI был последователен, безотносительно конкретного состояния. Много пользователей полагается на визуальную память для запоминания местоположения команд. Имея необходимость искать конкретное действие каждый раз является слишком большим усилием и привлекает пользовательское внимание от их основной работы в приложении.

Таким образом, лучше показывать действие для хранения его в визуальном контексте. Однако явно укажите, что состояние этого действия изменяется. Это даст отзывы пользователей, что действие существует, все еще предлагая, чтобы некоторые потребности условия были встречены, чтобы позволить пользователю предпринимать команду.

Изменение насыщенности цвета является наиболее распространенным подходом к представлению нерабочего состояния. Это делает элемент UI для постепенного исчезновения в фоновом режиме.

4
ответ дан 30 November 2019 в 11:04
поделиться

Поскольку тот сценарий использует 2, но добавляет, что вопросительный знак помимо этого объясняет, почему он отключен. Обновление 1: Уведомление, что это дает Вам возможность быть действительно ясным на том, когда это будет активно/отключено.

2
ответ дан 30 November 2019 в 11:04
поделиться

Для этого конкретного случая опция 2 является лучшим выбором. Когда решение, скрыть ли что-то или отключить его, общее правило, за которым я следую:

, Если пользователь не может выполнить операцию и существует что-то, что они могут сделать для включения ее, тогда она должна быть отключена.

, Если пользователь не может выполнить операцию и существует ничто , они могут сделать для включения ее, тогда она должна быть скрыта.

В Вашем примере, если пользователь избавляется от активных контрактов тогда, они могут удалить клиента. Таким образом, удалить операция должна быть отключена, так как они управляют включением ее. Однако скажите, что пользователь не мог удалить клиента, потому что у них не было “delete customers” разрешением. В этом случае удалить операция должна быть скрыта, так как нет ничего, что пользователь мог сделать, который позволит им быть в состоянии удалить клиента (они не могут дать себе разрешение).

Каждый раз, когда опция отключена, это должно быть ясно что потребности быть сделанным для включения его. В этом примере, когда пользователь перемещает мышь через удалить кнопку, они должны видеть, что подсказка объясняет, почему операция отключена.

На стороне note†¦, если пользователи пытаются нажать Ваши отключенные кнопки, не может быть достаточно очевидно, что кнопки отключены. Попытайтесь изменить стиль кнопок, таким образом, существует большее различие между включенным и отключенным (предположение, что Вы не используете стандартные средства управления).

3
ответ дан 30 November 2019 в 11:04
поделиться

Я предпочитаю показывать варианты, но greyed. Вот то, почему. Если действие иногда доступно и иногда не, UI становится сбивающим с толку. Это походит на волшебство, что я могу иногда видеть удаление и иногда нет. С другой стороны, если это отображается серым, по крайней мере, я знаю, где искать опцию позже.

2
ответ дан 30 November 2019 в 11:04
поделиться

Просто подайте заявку Принцип Наименьшего количества Удивления : не делайте ничего неожиданного.

А greyed опция ясно означает, что это не доступно в текущем контексте.
А недостающая опция могла означать что-либо.

Одна область, откуда Вы рассмотрели бы полностью удаляющие элементы UI вида, будет, когда Ваше приложение обеспечит несколько уровней доступности (например, Новичок, Промежуточное звено, Эксперт) или когда учетные записи пользователей следуют за некоторыми ролями безопасности, где 'гостевой' пользователь не предназначен для доступа к полному интерфейсу, что пользователь 'менеджера' был бы, например.

2
ответ дан 30 November 2019 в 11:04
поделиться

Существуют времена, когда удаление кнопок на панели инструментов является корректным путем, но обычно.

Удаление это просто заставляет пользователя задаться вопросом, где это. Принимая во внимание, что, отключение сообщает пользователю, где это, но что это не доступно. Таким образом вместо напрасно тратящего время, пытаясь видеть, где опция, они могут провести время, находя, почему это не доступно.

0
ответ дан 30 November 2019 в 11:04
поделиться

Вторая опция, отображая удалить опцию серым должна быть достаточно. Добавление вопросительного знака для объяснения, как предложено, походит на хорошую идею мне. Иначе пользователь, вероятно, понятия не имеет, почему он может удалить некоторых клиентов, некоторые нет.

, Но всегда необходимо рассматривать возможность, что, в то время как пользователь A уже открыл UI с удалить включенной опцией, пользователь B вводит новый активный контракт. Таким образом, если пользователь A хочет удалить клиент, все еще необходимо проверить, что нет никаких активных контрактов и не показывают сообщение об ошибке, если существует. Другими словами, все еще необходимо реализовать все, чего первая опция требует. По этой причине я, вероятно, выбрал бы первую опцию, всегда показать отпуску удалить вариант, видимый и активный, избежать дублирования кода и предложить самое последовательное поведение.

0
ответ дан 30 November 2019 в 11:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: