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

User interface 如何处理当前不可用的选项?锁定vs.隐藏vs.错误消息,user-interface,User Interface,处理当前不可用或锁定为默认值的输入元素的最佳方法是什么,例如,仅与某些国家/地区相关的状态字段、当前用户无权使用的功能按钮或仅当用户选择某项内容时才相关的下拉菜单项 我见过三种方法来处理这个问题,但它们似乎都不让我满意: 锁定元素-可能会让用户感到困惑和烦恼,因为它无法传达有关元素被锁定原因的任何信息。这个问题实际上是因为我想在Windows XP上安装东亚字体支持,发现控制面板中的相关复选框被锁定,并且在意识到我使用的是非管理员帐户之前对它感到疑惑了好几天。 隐藏元素-当用户在教程中看到与他们

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

我见过三种方法来处理这个问题,但它们似乎都不让我满意:

锁定元素-可能会让用户感到困惑和烦恼,因为它无法传达有关元素被锁定原因的任何信息。这个问题实际上是因为我想在Windows XP上安装东亚字体支持,发现控制面板中的相关复选框被锁定,并且在意识到我使用的是非管理员帐户之前对它感到疑惑了好几天。 隐藏元素-当用户在教程中看到与他们看到的不同的屏幕截图时,或者当帮助台人员告诉用户单击他们不存在的按钮时,会更加混乱和恼人。 显示错误消息-传达有用信息的最佳机会,但当您没有关于您能做什么和不能做什么的视觉提示时,也可能会非常恼人。
那么,在实际使用的例子中,是否有理想的替代方案?什么时候使用什么经验法则?强有力的论据为什么要使用锁定?它似乎是最常用的,但我怀疑这可能只是因为每个人都在不假思索地复制它。

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

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

这与真实的人类有关,因此这里的传统答案是它取决于。我总是制定一些用户模型,并尝试至少让那些模型的用户生活得更好。

这与真实的人类有关,因此这里的传统答案是这要视情况而定。我总是制定一些用户模型,并尝试至少让那些模型的用户生活得更好。

我认为锁定是最常见的,因为它易于实现。不存在你必须处理的可能状态的组合爆炸。但正如奥列格所提到的,这实际上取决于你想要隐藏/锁定什么。如果用户不太可能访问该项目,最好将其隐藏。但是,如果它此时不适用,并且可能随时处于活动状态,那么最好将其锁定。悬停工具提示或指示项目锁定原因的内容将为用户提供一些线索

您可能想从这里提取本地化信息。例如,邮政编码vs邮政编码vs无。这是上下文信息,但可以更恰当地归类为L10N和I18N


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

我认为锁定是最常见的,因为它易于实现。不存在你必须处理的可能状态的组合爆炸。但正如奥列格所提到的,这实际上取决于你想要隐藏/锁定什么。如果用户不太可能访问该项目,最好将其隐藏。但是,如果它此时不适用,并且可能随时处于活动状态,那么最好将其锁定。悬停工具提示或指示项目锁定原因的内容将为用户提供一些线索

您可能想从这里提取本地化信息。例如,邮政编码vs邮政编码vs无。这是上下文信息,但可以更恰当地归类为L10N和I18N


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

禁用灰色控件,并在控件旁边显示一条解释错误消息,该消息具有类似的视觉权重/调色板,在控件内,或作为工具提示


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

禁用控件灰显,并在控件旁边显示一条解释错误消息,该消息具有相似的视觉权重/调色板,或者在控件内部显示,或者显示为 工具提示

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

+1-禁用可以启用的东西;隐藏的东西是无法接近的;在执行启用和可访问的操作时显示故障错误。+1-禁用可启用的操作;隐藏的东西是无法接近的;在执行启用和可访问的操作时显示故障错误。