第十三天:使用真实链结

Using Real Links 第十三天:使用真实链结

网页设计的苦难根源乃是“ javascript: ”链结;这个假链结会在你按下的时候执行一段 Javascript 程式码。这个问题最常发生于,博客(blog)用这种链结来在另一个视窗里显示回响。为什么这会是个问题呢?因为有 11% 的网际网络使用者因为某些原因而不使用 Javascript ;这同时也包括许多残障的朋友,因为她们所能够使用的浏览器就是不支援。这种假链结对她们来说不能用,你应当改用真实的链结。

虽然这个问题很容易描述及修改,但是无论我多么强调这个技巧的重要性也都不为过。多数问题,像是不提供跳过导航列的“跳过链结”都只不过会在某种程度上减低可用性罢了,至少你的页面还能够被读取。但是现在我们所遇到的这个问题,却会让重要的内容几乎完全无法被取得。如果你的回响被藏在某个“ javascript: ”链结之后,就几乎不存在了

谁因此获益?

  1. 陈建国 从中获益了。因为 Lynx 并不支援 Javascript 。
  2. 莫非 从中获益了。因为 Links 并不支援 Javascript 。
  3. 马大姐 从中获益了。虽然她用的是 Internet Explorer ,但是资讯部门只允许某些获准的网站使用 Javascript ,而把其他网站的 Javascript 给挡掉了;很不幸地,你的网站并不在这些获准的网站中。
  4. Google 从中获益了。因为 Google 会跟着链结来寻找更多内容并加以建立索引,但是它却无法使用“ javascript: ”链结;因为当它索引网页时并不会执行任何 Javascript 程式码。

怎么做

现在 Movable Type 和 Radio 的预设模版都把这个部分处理好了,所以你无须再做任何处理。检视你的首页并搜索“ javascript: ”;如果完全找不到,那么也用不到今天的技巧了。

然而,如果你的 Movable Type 模版包含有像这样的链结:

<a href="javascript:OpenComments(<$MTEntryID$>)">
Comments (<$MTEntryCommentCount$>)</a>

就请把它改成这样:

<a 
href="<$MTCGIPath$>mt-comments.cgi?entry_id=<$MTEntryID$>" 
onclick="OpenComments(<$MTEntryID$>); return false">
Comments (<$MTEntryCommentCount$>)</a>

在支援 Javascript 的浏览器里,原来的链结仍会具有相同的作用;因为 onclick 属性会优先于 href 属性。所以在新版里,仍然会叫用 OpenComments 函式,然后弹出新视窗。然而在不支援 Javascript 的浏览器(还有 Google )的情况下,就会完全忽略 onclick 属性,而只从 href 属性来连结,用同一个视窗来显示评论。

如果你因为其他原因而用了 javascript: 假链结的话,停。停下来。别继续下去,别继续领四千元或之类的。在你的源码里套用上述的技巧,让不支援 Javasript 的浏览器至少还有机会能够使用真实链结。

延伸阅读

附注

甚至别开始用那些以 Javascript 做出来的动态选单系统。他们确实让画面看起来很酷,不过抽烟也一样。用真实链结吧。

<< 第十二天:安全地使用色彩 | 目录 | 第十四天:在链结上加入标题 >>

End Channel Nav
>可访问性指南

Divo in Accessibility

CSS2.0 中文手册

HTML 标准指南