有关禁用或者隐藏菜单项的规则
我们是否曾经遇到过我们真正想要使用菜单功能但不能导致菜单功能被禁用或者更糟的情况?
有一个参数始终使菜单保持启用状态,然后向用户显示一条消息,解释为什么单击菜单功能后菜单功能不能被激活。我认为这是有好处的,但也许有解决这个问题的聪明方法。
我很想听听别人的想法。
解决方案
回答
将其禁用,但有工具提示说明为什么禁用它
回答
我一直认为,我们应该尽可能地躲藏起来。 (应用程序不应比用户可以/应该做的复杂。)
如果显示用户不应该使用的菜单选项,则他们可能会单击它,但认为应用程序已损坏,因为什么也没发生。
至少我是这样认为的...
回答
如果我们引用的是Joel的文章"不要隐藏或者禁用菜单项",那么他在StackOverflow播客中澄清说,他希望没有信息告诉对话框菜单项为什么不起作用:
So, the use-case I was thinking of was, you had mentioned that in the Windows Media Player, you can play things faster when you're listening to podcasts and so forth, and it'll speed them up. And when I looked in there, that was disabled. And I couldn't figure out how to enable it. And obviously the help file is no help--not that anybody reads help files, but even if you did you couldn't find the answer to that. And that was kind of frustrating, and I'd rather have that menu item be enabled and have it just tell me "I'm not going to do this right now because of the following reason. I refuse to do this."
回答
这取决于实际情况。如果菜单项已在当前上下文中应用,但由于状态而无法使用,则应将其禁用。如果上下文已更改,因此不再适用,则应将其删除。
回答
我自己从来没有真正了解过这一点(我不编写GUI)。为什么还要首先隐藏或者禁用菜单项?对于正在寻找特定菜单选项以使其被禁用甚至不存在的大多数用户而言,这是不直观的。
工具提示也不直观。如果要在菜单项之间移动鼠标,我将不会停顿足够长时间以获取工具提示说明。我很可能对我希望通过菜单访问的某些内容不存在或者被禁用感到沮丧。
也就是说,我实际上并不经常使用GUI菜单。我发现可用的选项通常没有用,或者可以通过更直观的方式访问,例如常用的键盘快捷键。
回答
与大多数有关可用性的问题一样,答案是"取决于情况"。它取决于问题域,用户类型,功能的关键程度等。问题没有唯一的答案。
我认为普遍的共识是,永远不会从菜单上完全删除项目。菜单允许用户自由发现可用的功能,但是如果隐藏或者移动了这些项目,则无助于用户。此外,移动它们使我们无法精通该应用程序,因为我们必须不断扫描要选择的项目的菜单。
至于禁用还是启用某项并显示对话框或者消息以说明为什么我们不能执行此操作,我通常更喜欢前者。但是,如果存在无法合理预期用户从显示器进行操作的功能,则使其处于启用状态是一个不错的选择。
例如,如果禁用了"粘贴",则对于大多数计算机用户来说,没有任何内容可以粘贴。但是,如果我们有一个" Frizzle the Bonfraz"菜单项,并且用户可能不知道什么是Bonfraz或者为什么他们想启用它但又不能启用它,那么至少将其启用一段时间是个好主意。
同样,这取决于。如果可能,请尽我们所能,然后询问用户。
回答
为了概括一下(也许是错误地……),我们希望在以下哪种情况下使用:
- 在没有船或者桥的岛上找到自己。当然,我们可以和镇上的村民交谈,他会告诉我们神奇的词来架桥……但是我们不知道魔术的存在。
- 我们会看到有一座桥;但是,当我们到达它时,会出现一个标牌,告诉我们该桥尚未开放使用。
- 我们会看到有一座桥在庆祝!当我们到达桥的尽头时,它会告诉我们出口未打开。他们必须回去。
也许我有偏见,但我不认为让菜单选项处于启用状态并允许用户单击它是最好的主意。那只是在浪费某人的时间。在他们单击该项目之前,他们无法区分该项目是否可用。 (方案3)
一起隐藏项目有其优点和缺点。完全隐藏,我们将冒着用户从未发现所有这些功能的风险;但是,与此同时,我们将获得使应用程序"有趣"和"可发现"的机会。我一直认为动作的可见性更适合工具栏之类的项目。一个很好的例子是,在某些应用程序中,当单击图像时,图片工具栏会弹出...而在单击文本时,该工具栏会消失。通常,我想说的是,如果应用程序的整体体验有助于用户"发现"和"探索"态度,那么最好的方法就是这样做。 (方案1)
我通常建议禁用这些项目,并向用户提供工具提示,告知他们如何启用它(甚至是指向"帮助"的链接?);但是,这不能过分。这必须适度进行。 (方案2)
通常,当它是用户可以轻松发现的与上下文相关的动作(即图片工具栏)时,请隐藏它们。如果用户不容易找到它,请将其禁用。
回答
我们可以在状态栏中显示"原因"。甚至更好的是,使用描述操作的文字,并在可能的情况下使用包含信息的文字。例如,对于"复制"菜单项,状态栏中的文本为:复制所选文本。注意"选定"部分,该部分告诉用户他需要选择文本才能启用菜单项。
我正在制作的工具中的另一个示例,我们有" Drop database"菜单项,但是仅当我们连接到它时,此操作才可能执行。因此,状态栏中的文本类似于:"删除数据库(仅在连接时)"。