笔者注:主要介绍ribbon的设计思想
-
以带文字的标签进行组织:虽然菜单栏是以标签进行分组的,但是这些组仅仅是一个下拉菜单,并不直接,或者仅仅是以一条横线进行区分。工具栏中的分组也是用类似的无标签横线进行区分。ribbons通过带标签的组将命令进行划分,使得查找和理解这些命令更加容易。
-
模态的,但不是分层的:菜单栏的比例通过创建一个有层次的命令来决定,带有很多项的菜单可以使用一层或者多层子菜单来提供更多的命令。Ribbon命令比工具栏命令需要更多的屏幕空间,所以他们使用tabs来决定大小。这样使用tabs使得ribbon是模态的(modal),时不时的需要用户来切换tabs来找到相应的命令。然而在一个tab中,大多数命令要么是非常直接的,或者只是使用一个拆分的按钮或者菜单按钮,没有分层结构。
-
直接、实时的:如果一个命令只点击一下就可以执行(不需要在菜单间进行切换),那么这个命令就是直接的;如果能够立即生效(不需要弹出一个对话框收集其他数据),那么他就是实时的。菜单栏的命令就是不直接的,而且通常也是非实时的。Ribbon就像工具栏一样,上面的命令被设计成直接和实时的,常用的命令只需要点击一次即可,不需要对话框收集辅助信息。
-
宽阔的(spacious):菜单栏和工具栏设计时主要考虑的是提高空间的利用率。为了集成这个优点,ribbon在设计时考虑尽较多多的而是用垂直空间,差不多是一个菜单栏加上3个工具栏的宽度,然而很少有程序会使用3个工具栏这样的宽度,因此ribbon比传统的UI需要更多的空间。
-
有一个应用程序按钮和快捷工具栏:Ribbon一般都会有一个应用程序按钮和一个快捷工具栏,这样做允许用户可以使用一些同文件相关的或者常用的命令,同时不需要在tabs中进行切换,提供程序上的一致性。
-
最小化用户自定义:虽然菜单栏的表达是固定的,但是许多工具栏是可以让用户进行自定义位置,大小以及内容的,ribbon本事是不能自定义的。但是快捷工具栏提供有限的自定义能力。
-
增强键盘快捷方式:菜单拥有很好的键盘操作方式,只需要按下alt键就可以直接将输入的焦点转移到菜单栏上。但是对于工具栏就没有类似的方式了,主要是因为他们同窗口内容共享键盘导航。一般情况下,用户必须使用Tab键导航到相应的工具栏,然后使用箭头按钮导航到相应的命令。
同工具栏相比,ribbon提供增强型键盘操作方式,通过keytips实现,通常使用3步来实现。
-
按下alt键进入keytip模式
-
按下一个字母进入对应的tab,应用程序按钮或者快捷工具栏中的命令。
-
在一个tab中,按下一个或者2个字母来选择一个命令。
整个或者可以高度可视化,并且非常的灵活,使得程序更好的调整大小,并且有更多的助记的快捷方式。
不要将访问按钮和快捷方式按钮混淆。他们都提供访问UI的键盘方式,他们的设计目的和准则并不相同,如果想要了解更多的信息,请查看Keyboard。