2012-10-31 67 views
-1

首先我们来解释一下这个黑客行为。jquery完成后运行脚本

在通过我的网页使用总验证工具,我得到以下错误:

[WCAG v1 6.3 (A), US-508-l] Consider providing a alternative after each tag

正如我的页面在很大程度上依赖于JavaScript我不能提供一个真正的选择,所以我想添加一个空的无脚本在每个脚本出现后标记。 (我知道黑客是愚蠢的,让我们用它作为例子的材料,帖子的点是最后的问题)

我尝试以下方法:

​​

的问题提出了,因为我有一个jQueryUI的DatePicker组件在我的页面上。 jQuery在DOM准备好后添加了一个脚本部分,所以我的黑客失败了,因为错过了本节。

所以问题是:在文档准备好后如何处理jQuery库的执行?如何在jQuery完成其工作后运行我的代码?

+4

添加你真的* *将通过JavaScript了''

+0

LMAO ........... –

回答

1

您所获得的辅助工具和警告信息是指导原则。之后放置空的无标记标记不会改进可访问性,并且只会损害您的可信度。

你想通过测试的原因是我猜所以你可以吹嘘一个完全可访问的网站。我认为最好有一个可访问性声明,解释您为使网站可访问而做出的所有选择,以及为什么您的网站未通过测试。这会激发我对您的可访问性更有信心,而不是让网站通过自动化测试。

总之,不要试图欺骗测试和读者,而是遵循指导原则,并解释你是如何做到的。

+0

同意你的意见。我已经编辑了我的问题来强调哪一点是重点。即使这个例子很糟糕,我仍然怀疑:为什么jQuery在$(document.ready)之后生成html? –

0
  1. 如果加上通过JavaScript一个<noscript>标记,是没有意义的,因为如果脚本在浏览器中禁用<noscript>只会被解析,但是如果禁用脚本,该<noscript>不会得到根本

  2. 您是否阅读过WCAG,而不是盲目尝试修复那些不属于您的错误?如果你不能提供一个没有脚本的替代方案,你将不会有一个可访问的文档。第一个问题,你应该问自己:我真的需要遵守吗?如果你这样做,建立一个网站,无需激活JavaScript或任何插件就可以达到100%。之后,将任何脚本增强添加到该网站。该方法不需要<noscript>标签,它使您的网站可供JavaScript禁用的用户使用。

1
document.addEventListened('DOMNodeInserted', function(e) { 
    if (e.srcElement instanceof HTMLScriptElement) { 
     // a new <script> tag was inserted -> e.srcElement 
    } 
});