代码之家  ›  专栏  ›  技术社区  ›  Michael Borgwardt

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

  •  1
  • Michael Borgwardt  · 技术社区  · 14 年前

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

    我看到有三种方法可以解决这一问题,所有这些方法对我来说都不满意:

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

    那么有没有什么好的选择(最好是在现实生活中使用它们的例子)?什么时候使用拇指规则?有力的论证为什么要使用锁定?它似乎是最常用的,但我怀疑这可能只是因为每个人都在不经思考地复制它。

    4 回复  |  直到 14 年前
        1
  •  2
  •   Kevin Reid    14 年前

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

    还有,隐藏一个 如果有一些明显的上级控制可以显示它们,或者如果视觉的简单性是一个更大的胜利,那么对控制的理解是有意义的。

        2
  •  3
  •   Andy West    14 年前

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

        3
  •  1
  •   Oleg Zhylin    14 年前

    这与真实的人类有关,所以传统的答案是“它取决于”。我总是建立一些用户模型,并尝试让生活变得更好,至少对于那些模型的用户来说。

        4
  •  1
  •   Anurag    14 年前

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

    您可能想从这里抽象出本地化信息。例如,“邮政编码”与“邮政编码”之比为零。这是上下文信息,但可以在l10n和i18n下进行更适当的分类。

    以我的经验,你应该让用户知道他们为什么可以或不能做一些事情。比试图为用户做决定并希望它对他们来说是显而易见的要好得多。