减少新开窗口提升可访问性

作者:一叶千鸟 来源:千鳥志 时间:2009-04-17 13:56:00 

论证完使用target=_blank并非绝对错误之后,分场景探讨如何减少新开窗口。自有意识注意这个问题,是看到蓝色经典Plod大叔在04年提倡不乱弹窗的奔走相告。

抛开某些不合逻辑意图不论,为什么大量使用弹出页面?因为设计师担心用户迷失方向。为什么用户会迷失方向?因为导航系统不够好。为什么导航系统不够好?因为产品功能太多太乱。为什么功能太多太乱?因为需求没控制好。为什么需求没控制好?因为提需求的人自己也没想清楚。

说白了,很多场合都不仅仅是设计师的问题,因此只能选择不断妥协用劣质方案堆砌豆腐渣结构体系。快节奏中有些事情没法避免很正常,但设计师应该尽责做到迭代式的全局统筹重构。

应该强制target=_blank

  1. 文件下载链接

  2. 文件打印链接

  3. 非主线任务并打断进程的链接

以上参考淘宝的老包同学在08年总结符合国情的链接新窗口打开中的应用场景。下载各种文件、打印各种文档,需要前后对比的帮助,注册表单的隐私条款都有必要target=_blank。

能够定论target=_blank必然提升用户体验的场景很少,并且个人认为随着客户端技术的发展,会被逐步取代。比如lightbox这个ajax应用,给设计师带来了“查看大图不用再新开窗口”的全新设计理念,这在以前是不可想象的。

可选择target=_blank

  1. 跨域名链接

  2. 跨应用平台链接

  3. 布局改变链接

主域名更换比如友情链接、网志内嵌的关键词外部链接等,而跨应用平台的链接通常也得更换二级域名。如果全部不新开窗口,为了避免意外跳出,应该先提醒用户这是外部链接;如果部分新开窗口,那么应该有统一规则进行约束,并明确告知将opens new window。见过三类案例:

msdn例子,icon告知用户这是站外链接。


gblog例子,icon告知用户这是站外链接,同时可以点击target=_blank。


egloos(韩国)例子,触发时才icon告知用户这是站外链接,也可以点击target=_blank。


来自sitepoint的Neil Turner文章补充了三种形式,大同小异。值得一提的是,有个使用title提示open in new window的案例,其实也符合使用Title提升可访问性中提到“操作指引”的应用。


版面改变如列表页与内容页的区别,用户需要在内容页长时间阅读,每次都返回列表进入其实更不方便。最典型是Google大概在06年初做出的改进,给搜索结果列表链接默认target=_blank,这个例子几乎同时满足以上三个条件,并且提供默认设置自定义改回去,100%保险。

 

标签:问题,窗口,访问性
0
投稿

猜你喜欢

  • HTML5拿什么取代Flash?

    2010-05-10 20:37:00
  • asp全面解析Server对象

    2008-10-19 17:24:00
  • ul设置浮动后不能自适应高度

    2011-01-25 12:48:00
  • 给网站界面预留退路

    2009-03-25 20:32:00
  • Asp 防止网页频繁刷新一法

    2008-04-07 13:03:00
  • Cookies 欺骗漏洞的防范方法(vbs+js 实现)

    2011-03-09 11:09:00
  • 解释FCKeditor样式的工作原理

    2007-10-11 13:34:00
  • 如何获取当前 select 元素的值

    2010-03-29 13:07:00
  • ASP生成静态页面的方法

    2010-05-27 12:13:00
  • 如何绕过ODBC直接访问SQL Server?

    2010-05-18 18:13:00
  • 互联网产品交互事件分析

    2009-10-06 15:23:00
  • Bowman vs Google-设计与数据彼此相互需要

    2009-08-16 16:06:00
  • 轻松掌握执行一个安全的SQL Server安装

    2009-01-13 14:03:00
  • asp如何实现歌曲在线点播?

    2010-05-19 21:32:00
  • javascript 模拟函数指针

    2009-09-19 18:02:00
  • 垂直栅格与渐进式行距(上)

    2009-04-01 18:30:00
  • Sql Server 数据库超时问题的解决方法

    2009-01-13 14:11:00
  • SQL Server中使用DTS设计器进行数据转移

    2009-01-08 16:15:00
  • 如何用Response.Write调用代替内嵌表达式?

    2010-06-13 14:33:00
  • asp如何创建一个Exchange用户?

    2009-11-14 20:52:00
  • asp之家 网络编程 m.aspxhome.com