代码之家  ›  专栏  ›  技术社区  ›  Bruno Mazza

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

  •  3
  • Bruno Mazza  · 技术社区  · 6 年前

    我正在用 WAVE (Web可访问性评估工具)Chrome扩展,我收到一个警告 <noscript> 元素。具体来说,警告告诉我:“确保脚本内容是可访问的。内容将呈现给极少数用户,但如果使用,则必须可访问。”

    现在,我一直在试图找到一个可行的解决方案 aria-hidden="true" ),但似乎找不到确切的答案。知道吗?

    编辑:我的 <noscript> 元素只包含一个文本字符串:“您需要启用JavaScript才能运行此应用程序。”

    谢谢!

    1 回复  |  直到 6 年前
        1
  •  3
  •   Tsundoku    6 年前

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

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

    然而 WCAG 2 Techniques 很少使用 乔治·毛内 元素。我能找到的唯一例子是 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的用户代理中提供有用的回退,则可以执行以下操作:

    • 或者在 乔治·毛内 元素。但是,在许多情况下(取决于JavaScript实际做什么),这将不是 相等的 退路。
    • 或者使用“渐进式增强”:也就是说,您提供了一个不使用JavaScript的功能基线,然后添加JavaScript以提供更丰富的体验。

    (提倡逐步提高是 乔治·毛内 元素在“现代”可访问性技术中使用得不多(如果有的话)。然而,渐进式增强本身也成为争论的话题。2013年,它的支持者们已经觉得有必要为它辩护,以防大家都启用了JavaScript;参见例如。 Progressive enhancement is still important 自2013年7月起。)