首先让我们来解释黑客。
通过我的网页使用Total Validator Tool时出现以下错误:
[WCAG v1 6.3(A),US-508-l]考虑在每个标签后提供替代方案
由于我的网页很大程度上依赖于javascript我无法提供真正的替代方案,因此我想在每个脚本出现后添加一个空的noscript标记。 (我知道黑客很傻,让我们用它作为示例材料,我的帖子的重点是最后的问题)
我尝试了以下方法:
$(document).ready(function(){
$("script").each(function() {
$(this).after("<noscript></noscript>");
});
});
问题引发因为我的页面上有一个jQueryUI DatePicker组件。在DOM准备好之后jQuery添加了一个脚本部分,所以我的hack因为想念这部分而失败。
所以问题是:如何处理文档准备好后要执行的jQuery库?在jQuery完成工作后如何运行我的代码?
答案 0 :(得分:1)
您获得的辅助功能工具和警告信息是指南。之后放置空的noscript标签不会改善可访问性,只会损害您的可信度。
您希望通过测试的原因是我猜您可以拥有一个完全可访问的网站。我认为最好有一个辅助功能声明,解释您为使网站可访问所做的所有选择,以及您的网站未通过测试的原因。这将激励我对您的可访问性更有信心,而不是让网站通过自动化测试。
简而言之,不要试图欺骗测试和读者,而是遵循指导原则,并解释你是如何做到的。
答案 1 :(得分:1)
document.addEventListened('DOMNodeInserted', function(e) {
if (e.srcElement instanceof HTMLScriptElement) {
// a new <script> tag was inserted -> e.srcElement
}
});
答案 2 :(得分:0)
如果您通过JavaScript添加<noscript>
标记毫无意义,因为只有在浏览器中禁用脚本时才会解析<noscript>
,但如果禁用了脚本,则<noscript>
1}}根本不会写出
您是否阅读过WCAG,而不是盲目地尝试修复不属于错误的错误?如果您无法提供无脚本的替代方法,则您将无法访问可访问的文档。第一个问题,你应该问自己:我真的需要合规吗?如果您这样做,请设置一个工作到100%的网站,而无需激活JavaScript或任何插件。然后向该站点添加任何脚本增强功能。该方法不需要<noscript>
标记,并且可以让禁用JavaScript的用户使用您的网站。