上周我提出了一项小小的 设计挑战:设计界面的一小部分,允许用户按喜好顺序对三款巧克力棒进行评分。很多人尝试了这个挑战。我想总结一下我认为最好的作品进行讨论,然后选出“获胜者”(请记住,这只是我个人的选择,不一定代表在世界上每个应用程序中都能获得最佳效果)。
Jesse Shawl 的第一个作品就是三个下拉菜单

我很高兴 Jesse 发布了这个作品,因为它突出了这个挑战的一个重要方面。该设计非常简单,这是好的(虽然我会调整间距以使其更清晰地显示哪些内容相关联)。但它允许用户犯错。用户可以对每款巧克力棒进行评分,但可以选择对每款巧克力棒使用相同的评分,这并不能解决按顺序评分的问题。
Moritz 的作品也使用了下拉菜单

查看
最初只显示一个下拉菜单,包含所有三个选项。选择第一个下拉菜单后,将显示第二个下拉菜单,其中只有剩余的两款巧克力棒选项,最后是第三个下拉菜单,包含最终选项。我会批评最后一个选项是不必要的,但它确实完成了流程。
David Booth 的作品很巧妙,它使用巧克力棒本身作为条形图来反映其当前评分。

不幸的是,它也与 Jesse 的解决方案一样存在问题,即用户可以对两款或多款巧克力棒使用相同的评分。它也没有使用任何已知的 Web 可用性功能。是的,它说“点击一款巧克力棒”,但这是一个相当不寻常的请求,不直观。另外,当只有 3 种可能的评分时,它需要 5 次点击才能完成一个循环,这有点奇怪。
Nate 是第一个尝试拖放界面的。

这解决了每款巧克力棒具有唯一评分的问题。换句话说,不可能使巧克力棒处于无效的评分顺序状态。
还有类似的拖放解决方案,例如 Martin Blackburn、Josh、stursby、Kyle Sevenoaks、Remco Hendriksen、Óscar Mario Víquez、Michael Crawford 和 Kirby。 Cooper 也使用了拖放技术,它具有一个简洁的功能,即会快速弹出通知消息,总结更改内容。
另一个作品来自 Todd Wolfson,他也尝试了一种变体:选择并拖放。 Zach Smith 创建了“容器”,可以将巧克力棒图标拖放到其中,并提供“X”选项,以便在您犯错时将其移回。 Daniel 也使用了“容器”。
关于拖放
拖放功能在计算机操作系统中已经存在很长时间了。用户知道如何操作它,并且感觉很舒服。但 Web 上的拖放功能要新得多。它并不常见,而且(我没有数据,但我敢打赌)很多用户甚至都没有想过在 Web 上尝试它。
但是,拖放功能确实很有用!尤其是在这种情况下。我将提出,如果我们选择实施它,我们应该尽一切努力告诉用户我们对他们的期望。一些选项
- 鼠标光标应设置为“移动”
.move { cursor: move; }
- 解释操作说明的文字(例如,“要更改巧克力棒评分的顺序,请将您要移动的巧克力棒拖到您希望它位于的数字上”。)。
- 设计应突出显示“拖放”。也许可以添加一个小把手来拖动它们,以及一个虚线“容器”来放置它们。
- 除了拖放之外,还应提供另一种交互方式来实现相同目标(如果更繁琐)。这对于移动设备尤其重要,因为没有鼠标。可以使用点击-拖动-点击的方式,但这肯定不是一种已建立的模式。
在 Wufoo 的表单构建器中,我们提供拖放功能来向表单中添加新字段并重新排列当前字段。我们通过文本进行解释并显示正确的鼠标光标。但是,通过拖放可以完成的所有操作都可以通过点击来完成。这样做会更繁琐,因为所有新字段都将位于底部,您需要反复点击才能将其定位到所需位置,但这是可能的。如果用户愿意尝试学习,拖放功能只会使事情变得更容易。
Rafał Krupiński 创建了一个类似于拖放的 UI,但允许用户点击。

将鼠标悬停在第二或第三款巧克力棒上会显示一个箭头,点击该箭头会将该巧克力棒向上移动一个位置。非常简单。作为一项小小的改进,我建议使“向上移动”箭头更加明显(以便不需要解释性文本)并且始终可见。(带文本的替代方案)。只提供向上箭头也略微有点奇怪,因为它可能与用户的思维模式不符。如果他们心里想“士力架,太难吃了!”并且想将其向下移动。他们只能通过向上移动其他内容来做到这一点,这与他们目前的想法相反。
prabhu.webdev 尝试了一个投票系统,其中每款巧克力棒都有向上和向下箭头,这些箭头会影响数值。

很高兴看到 UI 的一种完全不同的方法,但不幸的是,这再次没有解决两款巧克力棒可能获得相同评分的问题。如果将此想法扩展到让一个群体决定哪款巧克力棒最好,这可能正是解决办法。
类似的“投票”概念由 Tauseef Jamadar 创建。
Richard Bland 使用“获胜者区块”的概念解决了拖放的一些问题

此 UI 使拖放的概念更直观,因为大多数用户可能理解获胜者区块的概念,以及每个参赛者都应该占据一个层级。不幸的是,将每款巧克力棒拖放到一个区块上并不是特别令人满意(很难判断您是否“做对了”),并且没有任何东西可以阻止多款巧克力棒位于同一个区块上,或者停用未使用的区块。
Richard 更新了它,以利用一些“放置区域”和吸附行为,从概念上讲这是一个好主意,但出现了一些错误。
Raphael Lopes 使用了拖放,但以一种独特的方式:将巧克力棒制作成垂直滑块。

对我来说,这比其他一些拖放解决方案更自然,但我希望有更多可用性功能,例如浏览器的默认滑块 UI、移动光标或一些有帮助的文本。
Thomas Dybdahl Ahle 的这个作品我非常喜欢,因为他将一些数学知识融入其中。这个作品只需最少的步骤即可完成任务(2 步),只需提供两次比较。

我希望从视觉上看,它不像要进行一个三步过程。我认为如果它直接告诉您将是一个两步过程会很好。它只会显示第一次比较,然后在完成第一次比较后显示第二次比较。
类似的点击投票概念由 Zach Malone 创建。更多作品来自 Pablo Botta、William Blanchette 和 IJas,需要三次点击才能“完成”。
Damon 将投票的概念与条形图结合起来

好主意,但它也存在我们之前讨论过的早期问题,例如可以对同一款巧克力棒投相同的评分,而且有点过于复杂,允许 1-10 的值,而不仅仅是按顺序评分。
Baylor Rae 实现了一些与“具有双向排他性的单选按钮”想法非常相似的东西

查看
我非常喜欢使用简单的表单元素。我最大的批评是,双向排他性感觉有点令人沮丧,因为如果存在冲突,一次点击有时会停用多个先前的选择。改进的方法是使用 值交换,这感觉更好,因为它通过交换而不是停用来处理冲突。
Baylor 还 更新了此技术。它回退到单选按钮网格,但在启用 JavaScript 时,会使用两步排序系统。
另一个点击排名系统的版本来自 Remi

两步即可对所有三款进行排名。它确实依赖于悬停效果(请务必记住移动设备 实际上没有悬停效果)。但这可以通过一些文本来解决。
Peeter 的此技术结合了许多其他作品的元素。乍一看它看起来像单选按钮网格,但在实践中更像是点击投票,结果看起来像条形图。

Peeter 不是唯一一个实现强制用户选择极端选项(如“糟糕!”和“美味!”)的 UI 的人。我更感兴趣的是简单地对它们进行排名,而不是应用标签。使用像这样的极端标签可能会降低用户填写表单的意愿,如果他们不同意这些标签。例如,有人可能非常喜欢这三款,但其中一款比其他两款稍微好一点,另一款稍微差一点(就像我一样)。
Caio Dettmar 的此技术使用了实际的滑块

查看
滑块是一种相当成熟的模式,但这与之前的许多作品存在相同的问题,即您可以将两款巧克力棒滑动到相同的值。另外,为什么可编辑输入?当您更改该值时,滑块似乎不会改变。通常,当实际数值不重要时(就像在这种情况下一样),会使用滑块。
最具想象力和“标新立异”的想法来自 David Booth,他创建了“巧克力棒狙击手”

它类似于获胜者展台的想法,但气球漂浮在空中,上面载着巧克力棒。您点击气球(使其爆裂),巧克力棒就会掉入奖杯中,进行评分。如果目标是速度和实用性,当然这个想法不适用,但无论如何,这个想法超级巧妙有趣!使用这样的想法可能会大受欢迎,鼓励用户参与和分享。例如,在创建新的 Wufoo 帐户时,在您完成表单并在第一次看到应用程序屏幕之前,您会被带到一个显示“组装 Wufoo 功能”的屏幕,其中一系列抽象图标依次闪烁。这不是因为网站需要时间来创建您的帐户(此时已经创建了),而是因为它非常有趣,并且使创建帐户的体验更加特别。
我并没有太担心设计背后的技术,但Richard想出了一个巧妙的方法,只用CSS就能根据喜好重新排列巧克力棒。特别酷的是,它使用了单选按钮输入,所以理论上它可以像真正的表单一样提交数据。

类似的、主要基于CSS的技术由mike实现,只是用了一点jQuery来防止重复。
为了极力减少解决问题的点击次数,David Herrera设计的这个UI只需要一次点击。

查看
显然,这种方法不可扩展(正如David自己所说),但看到这些极端案例还是很有趣的。
总结
看到所有这些想法涌现出来真是太棒了。有很多有趣的提交。如果有人被遗漏了,我表示歉意。我有一些无法运行或者偏离主题太远的提交没有收录。如果你想查看更多,可以阅读完整的评论线程。
这实现了我的期望:突出即使是最简单的用户界面机制也可以用多少种不同的方式实现。下次你需要设计一些用户交互时,想想这个例子,以及看似最简单的事情也可能有多么复杂。
令我惊讶的是,在我看来,没有一个实用的解决方案脱颖而出,成为“明显最佳”的方案。也许这是可以预料到的,因为我们几乎没有上下文可以参考。
“获奖作品”
请记住,这并不代表任何应用的最佳UI,但我认为这三个作品做得非常出色。
- Baylor Rae’ – 简易点击排名,并提供非JavaScript备用方案。
- David Booth – 巧克力棒狙击手
- Richard – 主要基于CSS的点击重排,是一个真正的
<form>
表单。
恭喜你们!希望以后有机会再次举办这样的活动。
令人印象深刻的作品,大家!
感谢Chris组织这个小组项目。我真的很享受这个过程,并且在这个过程中学到了很多东西。
太棒了……
我在这里学到了很多东西……
下次我们再做一次……
我会努力成为最好的……
哈哈哈哈哈哈……
很酷的总结,但我注意到Richard的设计存在bug。如果你先点击底部的那个,然后点击中间的那个,它会交换2和3(预期结果),然后将所有元素向上移动一个位置,将1移动到第三个位置(非预期结果)。
除此之外,总结很酷,看到所有这些设计想法也很有趣。
Baylor实际上使用了市场调研标准布局,即SA PER ROW问题。
每个人都做得太棒了!
这些都是完成标准民意调查的非常酷的方法。
一篇关于非常有趣和令人兴奋的帖子的精彩总结。恭喜三位获奖者!
我很高兴看到David Booth因其狙击游戏而获得认可。尽管其他获奖作品是“理想”且简单的解决方案,但我仍然认为用户体验在当今时代更加重要……人们需要感受到他们正在做的事情的参与感,而这种小小的乐趣和角色扮演非常棒。:-)
也祝贺所有参赛者。我们都尝试了一下,我们都对自身有了新的了解。对我来说,这是我第一次实现任何类型的拖放功能,尽管存在bug,但我肯定会在将来再次尝试。
也感谢Chris的举办!
由于时间有限,我无法参加这项挑战。但是,这是我的贡献
我将尽快在我的博客上发布一篇博文来支持我的解决方案。在此期间……
具有双向排他性的单选按钮是正确的解决方案,因为使用了表单元素(单选按钮是投票/评级的正确解决方案)。为了“评分”,访客需要执行三个操作(三次点击)。
必须使用JavaScript通过操作内容来增强用户体验。拖放解决方案的用户体验要好得多,因为访客最多可以通过2个操作对糖果进行评分。
解决方案必须确保更好的用户体验(使用javascript)和javascript故障保护(通过使用原生表单)。
这是我的解决方案
http://example.dalibor-sojic.info/pages/candy-rating/
附言:抱歉我的英语
再附言:很快会在我的博客上提供更详细的解释。
这对网站来说是一次非常棒的练习。
A)我通过其他读者的思考过程了解了更多关于他们的信息
B)学习了表单开发中的一系列新技术
C)享受了思考各种可能性的乐趣(尽管这次我没有时间提交编码版本!)
非常喜欢这个设计挑战,Chris,你应该多举办这样的活动!祝贺大家,尤其是Baylor Rae,他从我的尝试中获得了灵感,并真正使其变得易于访问:D
似乎对拖放有一些负面评价。也许对于只有3个选项来说,它过于复杂,但对于5个或更多选项来说,它肯定比其他方法更容易。如果犯错,点击评分的“成本”更高,因为你通常需要重新开始,而拖放则可以微调。同意应该立即明确需要拖放。
你有一个非常棒的想法,我可能会在实际网站上使用它。我考虑过在添加两个巧克力棒后使选定的巧克力棒可排序,但我不想进行第三次修改。
正如Chris所说,可排序列表在网络上并不太明显。但我对可排序列表的主要担忧是它们在移动设备上不起作用(我只在iPhone上进行了测试)。使用“按你最喜欢的顺序点击巧克力棒”,很容易理解,并且在大多数设备上都可以访问。
Chris,即使我没有参加,观看过程也很有趣。
请多举办这样的活动,甚至不需要奖品,仅仅为了获胜的乐趣。每月一次?
我未提交的设计对于10个选项更有意义,而不是3个,并且考虑到触摸屏,想想点击,点击;)
我只是在学习CSS……非常酷的建议
这是一个非常酷且内容丰富的“竞赛”。我喜欢每天查看网站,了解所有引入的新概念,并且我看到了很多比我的设计更喜欢的作品。
我想这可能与特定网站有关。不同的网站将拥有不同的受众群体,并且网站本身已经内置了人们习惯使用的功能。
将这些概念展现给“现实世界”的人,并观察他们的完成时间和错误次数,将会非常酷。
非常好!
很棒的比赛。我喜欢看到所有不同的方法。超级有创意和乐趣
大家干得都很好
Thomas Dybdahl Ahle 的方法并*不*总是只需要2个步骤——如果你在前两个步骤中选择了Twix,则无法知道你如何将其他两个进行排名,因此需要第3个步骤。我同意最初应该隐藏后两个步骤,然后只显示他们需要的部分。
狙击游戏非常棒,即使它让我想起了那些恼人的“射击-某些东西-”横幅广告。
哇,比赛非常享受
将来也希望举办……很喜欢
很棒的见解和巧妙的比赛!