使用 aria-hidden="true" 隐藏 flash 元素和 iFrame 是否有助于使我的网站易于访问?

Does hiding flash elements & iFrames with aria-hidden="true" help make my website accessible?

我在一家网站设计公司工作,我们有很多 Flash 项目,客户不断将 iframe 嵌入 Facebook 等。

例如,当我使用屏幕 reader 进行测试时,当您进入 Iframe 时,这似乎是一种糟糕的用户体验,因为大多数 Facebook 提要永远嵌入负载,您甚至可能会陷入困境ajax 正在加载 iFrame。

我想知道使用 aria-hidden 从屏幕 readers 中隐藏 flash/iframe 元素是否被认为是不好的做法?另外,是否可以通过隐藏它们来访问我的网站?

谢谢!

我认为无条件隐藏不是一个好主意。所有用户都有权看到所有相同的内容。

  1. 您可以添加一个 link 来跳过 iframe 上方的 iframe,如下所示。

    <a href="#skipfacebook" class="blind">skip facebook feed</a>
    <iframe></iframe>
    <div id="skipfacebook" name="skipfacebook">Next content</div>
    
  2. 我不知道您使用的是哪个屏幕 reader,但据我所知,您可以使用屏幕 reader 跳过 iframe,因为屏幕 reader 有很多热键,例如 'see all links'。 例如,您可以使用 [Alt+.] 移动到上一个元素,也可以使用屏幕中的 [Alt+,] 移动到下一个元素 reader 我知道。

主要看情况

如果您的 iframe 不可见(例如作为技术跨源问题的 ajax 代理),可能需要 aria-hidden(当设置 display:none 是不可能的)。

在许多其他情况下,iframe将包含可见和交互元素。

使用 aria-hidden 隐藏将无法阅读,例如,对于使用屏幕阅读器的文盲,可能 select iframe 想要阅读内部内容。

当然这需要iframe的内容可以访问。如果不是,那么最好使用 aria-hidden 并提供可访问的替代方法。

如果内容或功能可供一组人使用,那么它应该可供所有人使用。如果您在 iframe 中提供无法访问的内容,将其隐藏起来让盲人用户不知道它不存在您的 "get out of jail free" 卡,这违反了 Web 内容可访问性指南,具体取决于您在哪个国家/地区住在里面可能会违反您的无障碍法。

上面有人说了,如果iframe的内容是纯粹的装饰性的,那么隐藏起来还可以,但是如果里面包含了重要的信息或者交互元素,那么就不能向一群用户假装它不存在一个选项。