前段时间我们部门的粉丝和布林同学都写过关于这个问题的文章。刚好阅读了关于这个问题的其他争论文章。所以顺便在这补充几点。
首先说明这里讨论的是在网页是否要用“target=_blank”强制打开新窗口
这是老问题
确实可以肯定这在中国大陆是个老问题。只有在中国大陆的网页才会出现这么多”target=_blank”的代码;
为什么称只在中国大陆呢。以yahoo为例。无论是yahoo.com\ca.yahoo.com(雅虎加拿大\in.yahoo.com(雅虎印度)\yahoo.co.jp\还是在雅虎香港和台湾。都是极少极少用”target=_blank”语法的。
在国内不知道从什么时候开始由门户带头普及用新开窗口,大家现在可以看到yahoo.cn和其他yahoo family都不一样。是跟随大流来决定是否用”target=_blank”语法。相信这段语法在很多网站都普及得很广@.因为连google.cn都迫于用户本土化习惯而改变了搜索页面的打开方式.(google.com默认还是沿用当前窗口打开)
到底要不要开?
本来是个简单的问题。现在变得很难了。
我们部门的三七同学在2005年6月7日发表在他自己blog的一篇文章《target=_blank不符合标准?》说到。
开始引用/
我们要在新窗口中打开链接通常的做法是在链接后面加target=”_blank”,我们采用过渡型的DOCTYPE(xhtml1-transitional. dtd)时没有问题,但是当我们使用严格的DOCTYPE(xhtml1-strict.dtd)时,这个方法将通不过W3C的校验,会出现如下错误提示:”there is no attribute target for this element(in this HTML version)”原来在HTML4.01/XHTML1.0/XHTML1.1严格DOCTYPE下,target=”_blank”、target=”_self”等等语法都是无效的,
/结束引用。。
也就是说这个语法是只符合过渡性的文档类型声明的。不符合严格文档类型声明的。国外的大牛Mark Pilgrim在 2002年写的《Dive Into Accessibility-30 days to a more accessible web site》一书中专门说到这个问题–《Not opening new windows》.
他在这篇文章中提到:几乎所有的浏览者会用系统自带的“后退或者叫发挥上一页”按钮。
如果你用”target=_blank”语法。将会使这个按钮无用武之地。
最重要的一个观点是*/The point is that the choice of whether a link will open in a new window should be the end user’s choice, not the web designer’s choice.是否用新窗口打开应该交给用户自己选择。而不是由网站设计师主观判断代为选择”
对特殊人群浏览不友好。如果你用了新开窗口这个语法。 将会造成“盲人、视弱、认知障碍患者”这一类的用户无法浏览。比如盲人用“Window Eyes”时无法识别(Window Eyes为国外一款知名的读屏软件,说实话我们对这类特殊群体用户几乎是忽略的。这也可能是新开窗口泛滥的最大原因。)文章最后带的延伸阅读中有一条W3C Validator mailing list的 回复“Re: Opening a link in a new window...”中提到<a>标签中target属性是不建议使用的。
潜在的风险
前面三七同学也提到会通不过w3c校验 ,确实是这样是。该语法将通不过HTML 4.01 Strict, XHTML 1.0 Strict或者任何未来版本的校验。也就是将来你要使用”target”属性。。只能用XHTML 1.0 transitional。
我们怎么办
现在来说。如果你觉得未来还早可以随大流自定义新不新开窗口。如果不。就像国外绝大部分网站那样做。国内已经有网站这么做了,比如豆x网(免被说枪手就不说具体名字了。)。一直想问他们的决策者。为什么大家都从了。。他们就不从呢?
如果回到最初确实是很简单的问题。现在这个语法用滥了。已经形成用户习惯了。要改也不是一天两天的事情。只是随着大家对无障碍浏览的越来越重视以及新标准的普及还有等网站决策者下决心再次改变用户的习惯的时候。还是会越来越少用target属性的。这一天总是要到来的。。。 除非我们一直想做有中国特色的 网站
by mutou@koubeiUED