您是否曾经遇到过您真正想要使用的菜单功能,但不能导致其被禁用或更糟糕的情况?
有一个参数可以始终保持启用菜单,然后向用户显示一条消息,说明单击菜单功能时无法激活菜单功能的原因。我认为这有其优点,但也许有一种更聪明的方法可以解决这个问题。
我很想听听别人的想法。
答案 0 :(得分:10)
如果您正在引用Joel的帖子Don't hide or disable menu items,他clarified in the StackOverflow podcast他打算提供信息 - 而不是对话 - 告诉您为什么菜单项不会执行任何操作:
因此,我想到的用例是,您曾经提到过,在Windows Media Player中,当您收听播客等时,您可以更快地播放内容,并且可以加快速度。当我在那里看时,那是被禁用的。我无法弄清楚如何启用它。显然,帮助文件没有帮助 - 不是任何人都阅读帮助文件,但即使你这样做,你也找不到答案。这有点令人沮丧,我宁愿让菜单项启用,让它告诉我“由于以下原因,我现在不打算这样做。我拒绝这样做。”
答案 1 :(得分:4)
与大多数关于可用性的问题一样,答案是“它取决于”。这取决于问题域,用户类型,功能的重要程度等等。你的问题没有单一的答案。
我认为普遍的共识是,永远不要完全从菜单中删除项目。菜单允许用户自由发现可用的功能,但如果隐藏或移动这些项目则无助于用户。此外,移动它们使得无法熟练使用该应用程序,因为您必须不断扫描要选择的项目的菜单。
至于禁用与启用项目并显示对话框或消息,解释为什么它不是你可以做的事情,我通常更喜欢前者。但是,如果有一个功能,用户无法合理地预期从显示器直观,则启用它是一个不错的选择。
例如,如果禁用“粘贴”,则对大多数计算机用户来说,没有什么可以粘贴的,这是相当明显的。但是,如果你有一个“Frizzle the Bonfraz”菜单项并且用户可能不知道Bonfraz是什么或为什么他们可能想要启用但不能,那么最好让它至少启用一段时间。
所以,这又取决于。如果可能的话,做你认为最好的事情然后问你的用户。
答案 2 :(得分:3)
稍微概括一下(可能不正确......),您更喜欢以下哪种情况:
也许我有偏见,但我不相信启用菜单选项并允许用户点击它是最好的主意。那只是在浪费某个人的时间。在他们点击该项目之前,他们无法区分该项目是否可用。 (情景#3)
将所有物品隐藏在一起有其优点和缺点。完全隐藏,您冒着用户永远不会发现所有这些功能的风险;然而,与此同时,您将有机会使您的应用程序“有趣”和“可被发现”。我一直认为动作的可见性更适合工具栏之类的项目。一个很好的例子就是在某些应用程序中,当您单击图像时弹出图片工具栏...并在您单击文本时消失。总的来说,如果您的应用程序的整体体验有助于用户“发现”和“探索”的态度,我会说这样的事情是最好的。 (情景#1)
我一般建议禁用这些项目并向用户提供工具提示,通知他们如何启用它(甚至是帮助链接?);但是,这不能过头了。这必须适度进行。 (情景#2)
通常,当用户可以轻松发现与上下文相关的操作(即图片工具栏)时,隐藏项目。如果用户不能轻易找到它,请将其禁用。
答案 3 :(得分:2)
禁用它,但让工具提示解释禁用的原因
答案 4 :(得分:0)
我一直相信你应该尽可能地隐藏起来。 (您的应用程序不应该比用户可以/应该做的更复杂。)
如果您显示用户不应使用的菜单选项,他们可能会点击它,但认为您的应用程序已损坏,因为没有任何反应。
这就是我至少想到的......
答案 5 :(得分:0)
这取决于具体情况。如果菜单项已应用于当前上下文但由于状态而不可用,则应禁用该菜单项。如果上下文已更改,因此不再适用,则应将其删除。
答案 6 :(得分:0)
我自己从未真正理解过这一点(我不编程GUI)。为什么甚至首先隐藏或禁用菜单项?对于正在寻找特定菜单选项的大多数用户来说,如果发现它已禁用,或者甚至不在场,则这是不直观的。
工具提示也不直观。如果我在菜单项上移动鼠标,我不会停留足够长的时间来获得工具提示说明。我更有可能因为我希望通过菜单访问的内容不存在或被禁用而感到沮丧。
那就是说,我实际上并不经常使用GUI菜单。我发现可用的选项通常没用,或者可以通过更直观的方式访问,例如常用的键盘快捷键。
答案 7 :(得分:0)
您可以在状态栏中显示“原因”。或者更好的是,使用描述操作的文本并在可能的情况下包含信息。例如,对于“复制”菜单项,状态栏中的文本将为:复制所选文本。请注意“选定”部分,它告诉用户他需要选择文本以启用菜单项。
我正在制作的工具中的另一个例子,我们有'Drop database'菜单项,但只有当你连接它时才能执行此操作。因此,状态栏中的文本类似于:'删除数据库(仅在连接时)'。