如何处理当前不可用的选项?锁定与隐藏与错误消息

Posted

技术标签:

【中文标题】如何处理当前不可用的选项?锁定与隐藏与错误消息【英文标题】:How to deal with currently unavailable options? Locking vs. Hiding vs. Error messages 【发布时间】:2010-12-28 22:43:52 【问题描述】:

处理当前不可用或锁定为默认值的输入元素的最佳方法是什么,例如仅与某些国家/地区相关的“状态”字段,当前用户无权使用的功能按钮,还是仅在用户选择某些内容时才相关的下拉菜单条目?

我见过 3 种方法来处理这个问题,但所有这些方法都让我不满意:

锁定元素 - 可能会使用户感到困惑和烦恼,因为它不会传达关于为什么他们被锁定的信息。这个问题实际上是我想在 Windows XP 上安装东亚字体支持时提出的,发现控制面板中的相关复选框被锁定,并且在意识到我使用的是非管理员帐户之前想了几天。 隐藏元素 - 当用户在教程中看到与他们看到的不同的屏幕截图时,或者被帮助台人员告知点击他们不存在的按钮时,会更加混乱和烦人。 显示错误消息 - 传达有用信息的最佳机会,但如果您没有视觉提示可以做什么和不能做什么,也可能会很烦人。

那么有没有什么好的替代品(最好是在现实生活中使用它们的例子)?经验法则什么时候使用?强烈的论据为什么要使用锁定?它似乎是最常用的,但我怀疑可能只是因为每个人都在不假思索地复制它。

【问题讨论】:

【参考方案1】:

如果用户无权访问某个 UI 元素,则完全隐藏该元素可能是一种很好的安全做法。如果元素是用户可能想知道的,并且可以通过满足某些要求(例如填写字段)来获得访问权限,那么我会将其禁用/灰色。

【讨论】:

+1 - 禁用可以启用的东西;隐藏东西是无法访问的;执行既启用又可访问的操作失败时显示错误。【参考方案2】:

这与真人有关,因此这里的传统答案是“视情况而定”。我总是制定一些用户模型,并尝试至少为那些建模的用户改善生活。

【讨论】:

【参考方案3】:

我认为锁定是最常见的,因为它易于实现。没有您必须处理的可能状态的组合爆炸。但正如奥列格所说,这真的取决于你试图隐藏/锁定的内容。如果用户不太可能访问该项目,最好将其隐藏。但是,如果它在此时不适用并且可能随时变得活跃,那么最好将其锁定。悬停工具提示或指示项目被锁定原因的内容会给用户一些线索。

您可能希望从这里抽象出本地化信息。例如,“邮政编码”与“邮政编码”与无。这是上下文信息,但可以更恰当地归类为 L10N 和 I18N。

根据我的经验,您应该让用户知道他们为什么可以或不能做某事。比尝试为用户做出决定并希望对他们来说显而易见的效果要好得多。

【讨论】:

【参考方案4】:

禁用(“灰显”)控件,并在它们旁边(类似的视觉重量/调色板)、在它们内部或作为工具提示显示解释(错误消息)。

此外,如果有一些明显的上级控件可以显示它们,或者如果视觉上的简单性更胜一筹,那么隐藏一组 控件也是有意义的。

【讨论】:

以上是关于如何处理当前不可用的选项?锁定与隐藏与错误消息的主要内容,如果未能解决你的问题,请参考以下文章

Spring Security 预认证账户锁定检查

地址处的不可读指令

Webdriver :Element 在点 (119, 9) 处不可点击。其他元素会收到点击

Segmentation Fault

jsp学习与提高——JSP 异常处理

Python Try Except