是在新浏览器窗口中打开链接?还是在原有窗口中打开链接?看似不是问题,但实际上是个很重要的事儿;似乎已经有了权威的论断,但权威的论断还并不完美。
目前有三种做法:
1.始终在新窗口中打开
2.始终在同一窗口中打开
3.索引页之间在同一窗口中打开,具体的信息页在新窗口中显示。
第一种和第二种做法比较容易使用户建立起正确的心理模型,也就是说,用户很容易理解,但是这两种做法都存在一定缺陷。
第一种做法的缺陷:只要点击就会打开一个新的浏览器窗口,一种类似于病毒的行为方式,浏览这样的网站,很快用户电脑的任务栏上就会充斥大量的任务标签,标签过多,使得标签上无法显示文字,无法识别。使用这样的网站,用户需要时常关闭一些已经浏览过的窗口。
第二种做法是一些可用性大师所倡导的,比如Jakob Nielsen在他的很多文章里都提到这个问题,他的建议是“除去PDF之类的“non-Web documents”,所有的链接都应当在同一浏览器窗口中打开。”在他所进行的调查中,网页设计者将链接设置为在新窗口中打开的理由是:这样做可以留住用户(Designers open new browser windows on the theory that it keeps users on their site.)。
但这种始终在同一窗口中打开的方式却并不是最理想的。当我在浏览Nielsen的www.useit.com网站时,我的做法经常是将自己感兴趣的多篇文章先都在新窗口中一一打开,然后关掉索引页,再逐篇阅读。因为我会担心也许几分钟后我会被其他事情打断,再回到电脑前的时候可能就会忘记再拜读他的其他文章了,即使我当时有充足的时间慢慢浏览,我也会觉得如果现在先进入到一篇文章中阅读,读完后再返回原先的索引页,查找下一篇文章,那样的话,我需要再次面对索引页,即使我不久前见过这个界面,它对于我来说仍旧是陌生的,至少不是十分熟悉,仍旧需要花费时间了解、认识这个页面,我希望只了解一次索引页就找到所有我需要的链接。线性的,反复操作会降低效率。
“用户总是把绝大部分时间花在其他网站而不是您的网站上”---《专业主页设计技术》Jakob Nielsen著。用户总是在面对新的界面,即使不是全新的,至少也不是他(她)十分熟悉的,那么对一个界面的认识过程就确实存在,花费时间也确实存在,能减少认识界面的次数可以提高效率。
我相信这种需求不是我个人独特的怪异的行为习惯,更不是为了反驳Nielsen而特意编造出来的,这种行为习惯是来自于生活实践中的:在你编辑一个页面的代码时,如果需要你给一篇共有20段的文章每一段都加上p标记(即,在每一段文字的开头加上“<p>”,在每一段的结尾加上“</p>”),你会怎么操作呢?刚一开始,也许你会逐段的添加,但是很快你就会发现,如果先复制了“<p>”然后逐个选择每段的开头位置进行粘贴,再复制“</p>”进行类似的操作,效率会高的多。类似的经验产生了习惯的行为模式,“将相同的操作集中起来完成是高效的”。应用这种经验出现了社会分工,“一个人只负责整个生产流程中的一部分,比每个人都负责整个流程效率高。”还是应用这种经验,出现了上面描述的那种网页操作行为。因此,“在新窗口中显示”这个需求是存在的,也是合理的,当然,“在同一窗口中显示”的需求也是存在的,比如,在一个注册流程中,当用户要进入第二步的时候,通常不需要保留第一步的页面。
在设计页面的过程中,我们往往需要构造用户的“任务流”,“用户希望先做什么,接下来,用户需要做什么了,之后还要做什么...”根据这样的任务流设计相应的页面,然而从上述的“窗口问题”我们可以看到,任务流并不总是存在的,更准确的说,用户的任务并不总是在一个页面中就能够完成的。当用户的下一步任务需要在多个窗口中完成时,就需要打开新窗口了。一个典型的例子是google的搜索结果页,恐怕很少会有可用性专家职责google的搜索结果页每一个结果都是在新窗口中打开的,那么“所有的链接都应当在同一浏览器窗口中打开”这一准则是不是还应该再加一个google的限制条件呢?会不会再有第二个google呢?这个准则的适用范围到底有多大呢?谁能保证互联网的发展不会催生出更多的新服务呢?这些新服务又有多少应该被划定在这一规则之外呢?
我质疑Nielsen得出此结论的过程和理由,我相信在新窗口中打开的设计不仅仅是为了留住用户,但并不反对“链接应在同一窗口中显示”这个结论,“在新窗口中打开”与“在同一窗口中打开”相比较,“在同一窗口中打开”能够保证一个页面既可以在原窗口中打开也可以在新的窗口中打开,只要用户在点击之前按下shift键或右键选择“在新窗口中打开”,而“在新窗口中打开”不征求用户的意见,总是在新窗口中打开。相比之下“在同一窗口中打开”为用户提供了更多的选择,更大的自由度,同时也要求用户付出更大的操作成本。
为了能在适当的时候打开新窗口显示,出现了第三种显示规则,但是第三种做法本身又存在缺陷:由于对“索引页”的定义并不十分明确,使得这种方式的应用并不规范,在用户看来,这种方式更象是无规则的,用户很难在使用过程中注意到这种显示规则,也很难确切的猜到设计规则。
始终在新窗口中打开是一种带有互连网风格的设计,互连网在开始之初,主要的功能就是以索引的方式展示信息,这对于交互的要求相对是比较低的;始终在同一页面种显示是一种带有软件风格的设计,在通常的软件中,用户的使用状态是不断的完成一个个任务流,用户有着相对明确的目的性,当然,这对于交互设计的要求是高的,设计师需要清楚用户随时的需求。随着互联网的发展,在网站所能实现的功能越来越复杂,网上交易、在线银行、网上社区...这使得web界面需要更接近软件设计才能满足这些要求,于是在同一页面中显示方式表现出它的合理性。网站对交互设计的需求是复杂的,不同类型的网站的交互应用水平是不同的,即便是同一网站内,不同的栏目,交互应用水平也是存在很大差异的,所以选择那种显示方式才会始终不能达成共识。
我曾经有意识的注意过,在即将点击开一个链接时我自己的心理,到底是希望在原有页面中打开呢,还是在新页面中打开,实际的结果是,有时我希望在同一页面中打开,而有时我希望在新页面中显示。这样的现象说明,即便进行更大规模的用户调查也不能在“同一页面中显示”和“总是在新页面中显示”两者之中选择出一种,用户群的需求不是单一的,甚至对于同一用户来讲,这种需求也是变化的。
面对“窗口问题”,新的浏览器给出了新的解决方法。在Maxthon(MYIE2)中,在释放鼠标左键之前,将光标拖动,离开原来链接的位置,则可以将原本在同一窗口内打开的链接在新窗口内打开,这种拖动操作代替了IE浏览器的按下shift的操作,用户省去了左手的配合操作,并且比点击右键,在菜单中选择效率要高很多,这种方式不仅给“窗口问题”一个好的解决办法,同时也为web界面的交互设计提供了一个好的思路。web界面由于受技术的限制,很多图形操作系统中的操作都无法实现,比如拖动、圈选、左键双击...web的交互设计也因此受到了很多限制,Maxthon解决“窗口问题”的办法给出了这样一个思路:将web技术上的问题留给浏览器,浏览器是客户端软件,能够实现图形用户界面的全部功能,整个web界面的交互功能由界面本身和浏览器共同实现,对于“窗口问题”,一个始终在同一窗口中打开的网站加上Maxthon浏览器就是个不错的组合。不过,Maxthon的这种解决办法并不是完美的,window界面中对于鼠标点击的操作是这样设计的:对于web上的链接、表单中的各种元件,比如按钮、单选按钮、复选按钮...“如果用户在鼠标按键按下时,移动光标离开控件,那么控件就会回到未按状态。尽管知道释放鼠标按键为止,输入焦点仍然在控件上。但当释放鼠标按键后,输入焦点切断了,任何事儿也没发生。如果用户改变了主意,这也是一条方便的逃逸途径。”---《ABOUT FACE 2.0》 而在Maxthon中,对文字链接的这种操作被赋予了新的功能,表单元件仍然不变,这样一来,第一,文字链接失去了这种“逃逸途径”,第二,这种拖动的操作在Maxthon中有了两种不同的功能,对于表单控件是“逃逸途径”而对于文字链接是在新窗口中打开,用户需要时时牢记才能确保操作正确。
目前最为可行的方法仍旧是在同一页面中打开,使用这种方式的前提是,确信该web界面所面对的用户群都知道在按住shift键的状态下点击链接,链接所指向的内容会在新页面中打开,至少也应该知道在链接上点击右键可以选择在新窗口中打开。这样,用户在希望打开在新窗口中打开链接内容时,只要按下shift键就可以实现了,当然,用户至少又要多占用一个左手的手指了,也许当时用户左手里正拿着一支红河牌香烟,而烟灰也许会在他按下shift键的同时掉落在键盘上。