交互设计实用指南系列(12)—避免出错

作者:千城 来源:taobao.com UED Team 时间:2010-04-12 13:02:00 

一、如何理解本条内容:

一个“简单”和“复杂”的例子

在我和开发人员沟通一个项目需求的时候,他们频频慨叹Mockup的设计所考虑情况之细致,很多程序要实现的预判和“非基础功能点”让开发人员望而却步不情愿去实现。相比较设计师为了让用户避免出错而绞尽脑汁去设想和考虑,开发人员更倾向于直接给到一个只能容许的操作行为,其他非法请求全部报错:“程序是严谨的,他错,我报错,以不变应万变。简单一点不好吗?”程序员们甚至笑言:“考虑他们的体验那么多,我们开发的体验真不好,please,咱们能不能不要把事情搞那么复杂”。

在这个例子里,程序员看来,对于用户在和系统交互的过程中可能出现的各种情况均予以考虑,找寻用户理解起来最明确、操作最简单的、用户犯错最少的设计是缺少效率且浪费时间的。设计师这样做,是在将简单的事情复杂化。OK,现在就有这样一个问题,什么是“错误”?每当程序要处理错误的请求,是否是用户真的在“犯错”?


1、问题一,是谁的错?

我在某一天使用了一个网站的相册功能时,遇到了这样的情况(如下图):

“普通上传”是当前的选中状态,而上传“取消”的Button也是同样的样式。因为选中状态具有“肯定、确定”的潜在暗示,这样消极操作和积极操作的状态完全混淆了,用户在上传过程中很容易出现错点“取消”Button当作确定完成上传任务的误操作。


如果真的发生了这样的情况(应该不在少数,像我就发生了在本地好不容易选择好的图片误点了很像“确认”功能的“取消”而做无用功的情况),是的,用户犯错了,但是责任难道在用户吗? “本来我不会犯错,是你的设计使我犯错,或起码增加了我犯错的几率。”类似这样的错误,系统可能会报错,也可能不会;但真正应该检讨的却是系统本身,即: 用户对界面的理解和本身的系统意图出现误差,系统设计的歧义等固有缺陷导致用户出错。让用户频繁碰壁、产生挫折感的设计,其原因不是用户的愚蠢、而是设计的愚蠢。

2、问题二,这是不是一个错?

关于“错误”一词解释的第二点主要针对用户对系统的行为层来说,即:用户在人机界面交互过程中的误操作,系统未能通过更好的设计减少和避免用户的误操作带来的损失。

还是以“上传照片”为例(如下图):

一个模态的警示框,赫然告诉你,你想在这里上传相片,根本不该使用除了ie之外的浏览器!除了事先不打算通知你之外,同时也没的商量,因为我没有给你提供别的替代性方案和其他选择。

可以想象,用户想要使用这个上传相片的功能,之前已经需要经历过许多步骤,比如要打开自己相册存放的线上地址、要成功登录进入管理后台、要寻找到上传相片的功能模块等等,已经付出了相当一部分的操作成本。但是系统却很残酷的让用户的所有工作都白做了,不仅如此,还很野蛮的方式告诉用户:你从一开始就错了!在这个情况下,用户对系统的理解并不存在误差,但还是在交互过程中产生了严重的挫折感。但是,这真的是用户的错误和需要承担的责任吗?我认为不是:“严格说来,我不是犯错,我只是不清楚我能做什么、以及应该怎么做的规则。”

由以上两方面的案例,我想已经可以初步回答程序员同学的问题了:“是的,简单总是好的,但是在交互过程中,事件永远是复杂的,所可能发生的情况的可能性永远是那么多的,不是你为他考虑的多,让他简单;就是他自己试验和受挫的经历更多,更复杂,体验更差”。

标签:交互设计,指南,程序员
0
投稿

猜你喜欢

  • Flask使用Pyecharts在单个页面展示多个图表的方法

    2021-10-12 18:16:35
  • 详解vue-router和vue-cli以及组件之间的传值

    2024-05-21 10:31:10
  • Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案

    2024-05-02 17:09:28
  • 使用Python多线程爬虫爬取电影天堂资源

    2022-12-06 11:56:27
  • Django ORM 多表查询示例代码

    2021-07-25 05:22:02
  • MySQL 查看链接及杀掉异常链接的方法

    2024-01-27 00:29:40
  • Go语言基于HTTP的内存缓存服务的实现

    2024-05-21 10:25:12
  • Asp用XMLHTTP实现QQ状态在线查询

    2007-10-22 17:46:00
  • Access中的模糊查询

    2007-11-18 14:57:00
  • 详解OpenCV和PIL读取和显示图像的差异

    2021-07-06 22:17:22
  • Python实现去除列表中重复元素的方法小结【4种方法】

    2022-10-17 12:24:09
  • 解决python问题 Traceback (most recent call last)

    2021-10-31 06:17:49
  • Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作

    2021-11-13 16:52:41
  • 一些实用性较高的js方法

    2024-04-29 13:37:40
  • mysql常用备份命令和shell备份脚本分享

    2024-01-13 14:37:35
  • JPA之映射mysql text类型的问题

    2024-01-17 06:38:41
  • 详解Python3迁移接口变化采坑记

    2022-12-25 14:29:49
  • 为什么JavaScript中正则表达式的test方法会出错?

    2009-03-17 12:38:00
  • python七夕浪漫表白源码

    2021-09-27 23:22:13
  • Python中pywifi模块的基本用法讲解

    2023-09-23 00:21:00
  • asp之家 网络编程 m.aspxhome.com