前段时间我们部门的粉丝和布林同学都写过关于这个问题的文章。刚好阅读了关于这个问题的其他争论文章。所以顺便在这补充几点。
这是老问题
确实可以肯定这在中国大陆是个老问题。只有在中国大陆的网页才会出现这么多”target=_blank”的代码;
为什么称只在中国大陆呢。以yahoo为例。无论是yahoo.comca.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...”中提到标签中target属性是不建议使用的。
潜在的风险
前面三七同学也提到会通不过w3c校验 ,确实是这样是。该语法将通不过HTML 4.01 Strict, XHTML 1.0 Strict或者任何未来版本的校验。也就是将来你要使用”target”属性。。只能用XHTML 1.0 transitional。