windows:Commands/toolbars/design-concepts
出自UXGuide.net
工具栏:设计理念
Toolbars: Design Concepts
目录 |
它用在这里合适吗?
考虑下列问题以进行判断:
- 该窗口是否是主窗口?工具栏在主窗口内比较合适,而在辅助窗口中则往往显示得突兀。对于辅助窗口来说,应当改用命令按钮>、菜单按钮及链接。
- 是否存在少数非常常用的命令?工具栏不能像菜单栏那样处理大量命令,因此它最适合的方法即是高效访问很少的一组最常使用的按钮。
- 大部分命令是否都是立即执行的?或者说,是否大部分命令都不需要额外的输入?为了提高效率,工具栏应当给人直接、立即的感受。如果不是,则菜单栏更加适合于需要额外输入的命令。
- 大部分命令是否都能直接呈现?或者说,用户操作它们的时候是否只需要一次单击?虽然一些命令可以使用菜单按钮来呈现,但如果大多数命令都如此呈现会逐渐削弱工具栏的使用效率,菜单栏则是更好的选择。
- 这些命令是否能用图标很好地表现?工具栏按钮主要是以图标方式呈现,而非文本标签(虽然有些工具栏按钮两者俱备),而菜单命令则是以文本方式呈现的。如果命令图标质量不高且不具有自描述性,则菜单栏是更好的选择。
如果你的程序有工具栏而没有菜单栏,且大部分命令都是通过菜单按钮及分割按钮(split button)来间接访问的话,该工具栏在事实上是菜单栏。应当改用菜单设计规范中的工具栏菜单模式。
设计理念
一个好的菜单栏应当是对所有可用的顶级命令的全面分类,而一个好的工具栏则应当提供对常用命令的快速、便捷的访问。工具栏并不打算训练用户——而只是让他们工作效率更高。一旦用户学会使用工具栏上的命令,他们就很少会再从菜单栏中访问该命令。基于这些原因,程序的菜单栏和其工具栏无需直接对应。
工具栏 vs. 菜单栏
习惯上,工具栏与菜单栏在下列方面存在差异:
- 使用频率。工具栏只呈现最常使用的命令,而菜单栏则将程序中所有可用的顶级命令都分类呈现。
- 即时性。单击工具栏按钮将立即生效,而菜单命令可能还需要额外的输入。例如,菜单栏中的“打印”命令会先显示打印对话框,而“打印”工具栏按钮则会将文档直接在默认打印机上打印一份。
-
- 在这个示例中,单击“打印”工具栏按钮会将文档直接在默认打印机上打印一份。
- 直接性。工具栏按钮是通过单击来触发的,而菜单栏命令则需要通过菜单导航。
- 数量和密度。工具栏所需要的屏幕空间与其命令的数量成正比,且这些空间将被持续占用,即使这些命令并非总是会被使用。因此,工具栏必须有效地使用其空间。相反,菜单栏命令通常在界面上是隐藏的,其层次结构可以包含任意数目的命令。
- 尺寸和呈现方式。为了在较小的空间内摆放大量命令,工具栏采用基于图标的命令(带有工具提示标签),而菜单栏则使用基于文本的命令(部分带有图标)。虽然工具栏按钮也可以具有标准的文本标签,但这会明显占用更多的空间。
-
- 带标签的工具栏按钮所占用的空间大概是不带标签的三倍。
- 自说明性。设计良好的工具栏的图标大多具有自说明性,因为用户不可能仅仅通过工具提示来高效地找到命令。不过,如果只有一些不太常用的命令自说明性不强的话,工具栏仍然是好用的。
-
- 在这个示例中,最常用的图标都具有自说明性。
- 可识别性与区分性。对于经常使用的命令,用户会记住其工具栏按钮的位置、形状和颜色等属性。对于设计良好的工具栏来说,即使用户不记得具体的图标符号也能快速找到命令。相反,用户能够记得常用菜单栏命令的位置,但需要依赖命令标签来做出选择。
-
- 对于工具栏按钮来说,独特的位置、形状及颜色都有助于提高图标的可识别性与区分性。
-
- 对于菜单栏命令,用户最终还是依赖于其标签。
效率
鉴于其自身特点,工具栏必须主要为提高使用效率而设计。效率不高的工具栏是没有任何意义的。
最重要的一点:
确保你的工具栏主要是为提高使用效率而设计的。工具栏应专注于常用、即时、直接且能够快速识别的命令。
隐藏菜单栏
工具栏与菜单栏通常能够配合得很好:好的工具栏能够提高效率,而好的菜单栏则保证完整性。同时拥有菜单栏和工具栏可以发挥各自的优势而不会相互影响。
令人意外的是,这种模式在简单程序中被打破了。对于只有少数命令的程序来说,同时具有菜单栏和工具栏并不合适,因为菜单栏会显得多余,成了低效率版本的工具栏。
为了避免重复,Windows Vista® 中的很多简单程序都仅通过工具栏来提供命令,默认隐藏菜单栏。这些程序包括 Windows Explorer、Windows Internet Explorer®、Windows Media® Player 和 Windows Photo Gallery。
这是一个不小的改变。移除菜单栏彻底改变了工具栏的性质,因为此时的工具栏需要保证全面性,并在以下方面发生变化:
- 使用频率。移除菜单栏意味着所有无法直接从窗口或其快捷菜单中访问的命令都要能够从工具栏上访问,无论其使用频率如何。
- 即时性。移除菜单栏使得工具栏成为命令的唯一可见入口点,因此要求工具栏具有完全的功能版本。例如,如果没有菜单栏,工具栏上的“打印”命令必须显示打印对话框,而不是直接打印。(不过这种情况下,使用分割按钮是一个绝佳的折衷方案。关于标准“打印”分割按钮,参见标准菜单和分割按钮。)
-
- 在这个示例中,Windows Photo Gallery 中的“打印”工具栏按钮会显示打印对话框。
- 直接性。为了节约空间和避免混乱,不太常用的命令可能会移进菜单按钮,使其直接性降低。
用于对菜单栏进行补充的工具栏的设计与被移除或隐藏的菜单栏一起使用的工具栏是不同的。因为你无法假定用户会显示隐藏的菜单栏来执行某个命令,因此在进行设计决策时,应当将隐藏菜单栏视为完全移除了菜单栏一般。(如果你默认隐藏了菜单栏,不要假设用户会想到显示菜单栏来寻找命令甚至是研究如何显示它。)
设计在没有菜单栏的情况下使用的工具栏往往会需要进行妥协。但为了提高效率,不要过多地妥协。如果隐藏菜单栏会导致效率低下的工具栏的话,就别隐藏菜单栏!
键盘无障碍访问
从键盘访问工具栏与访问菜单栏有很大的不同。当用户按下 Alt 键时菜单栏将接收输入焦点,按 Esc 键则失去焦点。一但菜单栏具有输入焦点,它将会独立于窗口其他部分而进行导航,处理所有的方向键、Home、End 及 Tab 键。相反,工具栏则是在用户按 Tab 键遍历窗口所有内容的过程中接收输入焦点的。因为工具栏在 Tab 顺序中位于最后,所以用户可能需要花费大量精力才能激活复杂页面上的工具栏(除非用户知道使用 Shift+Tab 来往回切换)。
无障碍访问在这里出现了两难的局面:虽然工具栏对于鼠标用户来说更易用,但对于键盘用户来说则较难访问。这在同时拥有菜单栏和工具栏时并没有问题,但当菜单栏被移除或隐藏时则会产生麻烦。
出于无障碍访问的考虑,尽可能保留菜单栏,而不要为了工具栏而将其完全移除。如果你必须选择移除或隐藏菜单栏,那么尽可能进行隐藏。