В настоящее время считается лучшей практикой в дизайне пользовательского интерфейса для отображения действий, недоступных в текущем контексте.
Например, на странице отображаются клиенты, у которых может быть много связанных контрактов. Я не хочу разрешать пользователю удалять клиента, если есть активные контракты. С точки зрения удобства использования и пользовательского интерфейса, что считается лучшим для пользователя.
- Всегда указывайте опцию удаления, но предупреждайте пользователя, когда он выбирает, что опция недоступна, потому что есть активные контракты.
- Показывать параметр удаления, но серый.
- Не показывать вариант удаления вообще
Всегда показывать эту опцию имеет преимущество согласованности, и соответствующие действия постоянно находятся в одном и том же месте и т.д., но, наоборот, какой смысл показывать им то, что они не могут сделать.
Серость параметра все еще имеет согласованность, но не позволяет им выбирать действие, которое они не могут выполнить.
Не показывать эту опцию при отсутствии согласованности, но, возможно, она не будет настолько запутанной.
До вчерашнего дня я бы даже не задал вопрос и пошел бы прямо к варианту 2 (Graying out), однако, наблюдая, как пользователь пытается многократно нажать на серое изображение и в конце концов спросить меня, почему они не могут щелкнуть на кнопке я не уверен, что лучший вариант.
Что чувствуют люди с удобством использования и опытом тестирования пользовательского интерфейса?