-1

首先让我们解释一下hack。

通过我的网页使用 Total Validator Tool 时,我收到以下错误:

[WCAG v1 6.3 (A), US-508-l] 考虑在每个标签之后提供替代方案

由于我的页面严重依赖 javascript,因此我无法提供真正的替代方案,因此我想在每个脚本出现后添加一个空的 noscript 标记。(我知道 hack 很傻,让我们用它作为示例材料,我的帖子的重点是最后的问题)

我尝试了以下方法:

$(document).ready(function(){
   $("script").each(function() {
      $(this).after("<noscript></noscript>");
   }); 
});

出现问题是因为我的页面上有一个 jQueryUI DatePicker 组件。jQuery 在 DOM 准备好后添加了一个脚本部分,因此我的 hack 因错过此部分而失败。

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

4

3 回答 3

1

可访问性工具和您收到的警告消息是指导方针。之后放置空的 noscript 标签不会提高可访问性,只会损害您的可信度。

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

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

于 2012-10-31T10:52:10.400 回答
1
document.addEventListened('DOMNodeInserted', function(e) {
    if (e.srcElement instanceof HTMLScriptElement) {
        // a new <script> tag was inserted -> e.srcElement
    }
});
于 2012-10-31T10:58:34.717 回答
0
  1. 如果您<noscript>通过 JavaScript 添加一个无意义的标签,因为<noscript>只有在浏览器中禁用脚本时才会解析,但如果脚本被禁用,则<noscript>根本不会写入

  2. 您是否阅读了 WCAG 而不是盲目地尝试修复不属于其中的错误?如果您不能提供一个没有脚本的替代方案,那么您将无法获得可访问的文档。您应该问自己的第一个问题是:我真的需要这种合规性吗?如果这样做,请设置一个无需激活 JavaScript 或任何插件即可 100% 运行的网站。然后将任何脚本增强功能添加到该站点。该方法不需要<noscript>标签,它使您的网站可供禁用 JavaScript 的用户使用。

于 2012-10-31T10:55:27.120 回答