如何使 <noscript> 元素可访问?

How to make the <noscript> element accessible?

我正在使用 WAVE(Web 辅助功能评估工具)Chrome 扩展程序测试我的应用程序,但我收到关于我的 <noscript> 元素的警告。具体来说,警告告诉我:"Ensure that scripted content is accessible. The content will be presented to very few users, but must be accessible if used."

现在,我一直在努力寻找可行的解决方案(尝试使用 aria-hidden="true"),但似乎找不到确定的解决方案。有什么想法吗?

编辑:我的 <noscript> 元素仅包含一串文本:"You need to enable JavaScript to run this app."

谢谢!

noscript 元素如下所示时,它是完全可访问的:

<noscript>You need to enable JavaScript to run this app.</noscript>

然而,WCAG 2 Techniques hardly use the noscript element. The only example I could find was in technique SCR19: Using an onchange event on a select element without causing a change of context,尽管与其他 JavaScript 技术相比,它在这里 相关。

WAVE 扩展中警告的重点不是您需要添加 ARIA 属性; noscript 源自 1999 年的 HTML 4.10 规范,远早于 WAI-ARIA 的引入,并且在没有 ARIA 属性的情况下它工作得很好。

您需要做的是确保可以访问您网站上启用 JavaScript 的内容。 (这就是 WAI-ARIA 可能相关的地方。)

如何处理不支持 JavaScript 的用户代理取决于您的网站设计方法。假设您想在不支持 JavaScript 的用户代理中提供有用的回退,您可以执行以下操作:

  • 或者您在 noscript 元素中提供功能替代。然而,在许多情况下(取决于 JavaScript 的实际作用),这将不是 等价的 回退。
  • 或者您使用 "progressive enhancement":即您提供了一个没有 JavaScript 的功能基线,然后添加 JavaScript 以提供更丰富的体验。

(提倡渐进式增强是 noscript 元素在 "modern" 可访问性技术中未被大量使用(如果有的话)的原因之一。但是,渐进式增强本身也已成为辩论的主题。在 2013 年,它的支持者已经觉得有必要为它辩护,以反对每个人都启用了 JavaScript 的假设;例如,参见 2013 年 7 月的 Progressive enhancement is still important。)