设计实时响应的用户体验时可能有用的几个基本原则:
1、状态清晰
用户应该清楚系统当前所处的状态,任何时候,程序应该向用户传达清楚当前发生了什么并针对用户的每一步操作给出清晰的反馈。
应用程序本身建立在一个非结构化的系统之上,其试图向用户提供结构化的数据。虽然实时响应的界面并不使用类似于页面刷新器这样的固定标识符,但它同样可以使用恰当的信号来标识状态的改变。
实例:网络连接状态
在我们使用移动设备的时候,难免会碰到网络掉线的情况,这时候最好告诉用户是由于超出程序控制的某种因素导致了这种意外情况。
实例:加载状态
低带宽(网络环境差)、加载数据量大、多点连接等诸多因素都可能引起用户在使用你的程序过程中需要花费一定时间等待。应对这种情况的方法是你要培养自己成为一个具有前瞻性的设计师,通过一定的方法凸显出系统正在响应用户行为并尝试加载新数据,好让用户意识到这一过程。
实例:确认状态
应该积极响应用户的操作,并给出结果的反馈,让用户意识到系统对其行为目标的状态是关心的。
2、有预期的改变
用户应该清楚预期效果是怎样的,就是说程序应该向用户表明在他们操作就将发生什么。
在一套逻辑严谨(按部就班,模式固定)的系统里,出现一些惊喜(意外)并不会令人愉悦。对于一辆负责运送乘客的普通汽车,如果你关心的是其精密的机械结构,那么爆胎和发动机歇火就是在你的关注点之外的意外惊喜。 跟汽车类似的是,一个应用程序通过其精细的设计(相比于汽车通过其精密的机械结构满足人们的需要)来满足用户的某种需求,然而不同于汽车的是,现在的数字媒体(应用程序)允许我们预料到将要发生的变化并提前告诉用户。
实例:(1)传达结果
当系统可能出现较强烈的状态变化时,应该提前向用户预示其行为操作所将带来的结果,这样也就给了用户自己来把控即将发生的事情的机会,进而避免发生出其不意的“惊喜”。
实例:(2)使用骨骼框架
为了缓解用户在等待数据加载时的长耗时,并让页面间的转换过渡更为流畅,可以考虑在数据加载出来之前先向用户显示一个内容框架,让用户能够预期到新页面将要填充的数据类型和复杂度。这样做带来的另一个好处就是会让用户感觉到你的程序在响应用户操作时还是相对及时的。
3. 保持上下文环境统一协调
用户应该清楚他们看到的内容从何而来,是属于哪里的。
在实时响应类型的应用程序中,通常情况下我们不可能看到系统的所有响应变化(有一些中间态可能在某些条件下才能触发),这时候,我们设定并强调一条缓冲带就显得非常重要,它用来揭示每个页面和按钮跟其他元素的关系。这种做法就意味着我们创建了很多个标示,用户依赖它可以在这些关联的页面、元素间流畅切换。
实例:(1)保持布局一致
所有新的内容应该出现在一个可预期的位置,要让用户习惯于在程序中特定的关键位置点间穿梭转换,尽量避免提供多种方式给用户来做同一件事情的做法,这会稀释用户对各个行为路径的关注度和适应性。
实例:(2)保持良好的状态变化姿势
如果关联信息间的状态改变出现在一个不可预期的位置, 可以使用设计精巧的动效来向用户传达新内容的出现及对周围信息的影响。这种做法一定程度上延缓了用户的体验过程,但能使得状态的变化过程非常清晰明了。
实例:(3)记录保存滚动位置
当在两屏内容间来回切换时,要确保用户回到的是返回前在当前页面的最后浏览位置。
译自:http://blog.percolatestudio.com/design/design-for-realtime/