在Bruce Tognazzini的quiz on Fitt's Law中,讨论层次菜单中的瓶颈问题(几乎在每个现代桌面用户界面中都使用)讨论了他对原始Mac的设计:
瓶颈是两者之间的通道 第一级菜单和 二级菜单。用户首先滑动 鼠标指针指向该类别 菜单项。然后,他们必须小心 将鼠标直接滑过 (水平地)以便移动 指针进入二级菜单。
最初设计的工程师 等级显然有他的 前臂安装在轨道上,以便他 可以完美地移动它 水平方向没有任何 垂直分量。我们大部分人, 然而,我们的forarms安装在一个 枢轴,我们喜欢称呼我们的肘部。那 意味着移动我们的手描述 弧线,而不是直线。 要求转动人们移动a 鼠标指针沿直线 横向错误。我们是 甚至自然会下滑 因为我们试图侧身滑动。什么时候我们 不允许滑倒 我们追求的菜单即将关闭 就在我们到达那里之前。
Windows人员试图克服 黑客的枢轴问题:如果他们 看到用户向下移动到 主菜单上的下一个项目, 他们不会立即关闭 二级菜单。相反,他们离开了 它开了大约半秒钟,所以, 如果用户真的很快,他们可以 不准确,但仍然进入 它之前的第二级菜单 关闭。不幸的是,人们的 对提高机会的反应 错误是减速,而不是 加快,成熟 现象。因此,很少有用户会 永远想象得更快 可以解决他们的问题。微软的 解决方案完全错误。
当我指定Mac分层时 80年代中期的菜单algorthm,我 需要一个形状像一个缓冲区 <,以便用户可以制作一个 他们越来越大的错误 在没有恐惧的情况下接近等级 跳到不需要的菜单。如 只要用户的指针移动 每一个下来几个像素, 平均而言,菜单保持开放,没有 他们搬家的速度有多慢。 (取消仍然很容易; 只是故意向上或向下移动。)
这只是让我感到震惊!这样一个简单的想法会导致可用性的巨大改进。我确信我不是唯一一个经常关闭下一级菜单的人,因为我没有将鼠标指针移动到完全水平的线上。
所以我的问题是:是否有任何现代的UI工具包可以实现<在分层菜单中形成缓冲区?如果没有,为什么不呢?!
答案 0 :(得分:1)
没有主流的GUI工具包(Win32,MFC,Cocoa,GTK,KDE,FOX,FLTK)。
事实上,菜单手柄通常是如此可怕,没有任何特征,实施起来很糟糕,你不得不想知道为什么没有人以任何方式改进它。
Apple和GTK是这里最糟糕的工具包。