【问题标题】:Angular Js and JawsAngular Js 和 Jaws
【发布时间】:2016-01-11 15:01:35
【问题描述】:

我正在制作一个兼容的网站屏幕阅读器,它是在 Angular 框架上开发的。页面大约需要 10 到 15 秒来进行角度引导并加载所有内容(使用 ajax)。

当我在我的 SPA 上运行 JAWS 17 时,Jaws 无法读取页面(我认为页面需要时间来呈现 html),Jaws 将页面读取为“页面没有链接”。

请提出任何解决方案,让 JAWS 等待网页加载内容或强制 JAWS 重新阅读页面。

【问题讨论】:

    标签: angularjs jaws-screen-reader


    【解决方案1】:

    您应该首先阅读wai-aria 并验证 JAWS 是否支持它。

    【讨论】:

    • 谢谢,是的,jaws 支持 wai-aria,我通过添加 ARIA-LIVE 属性测试了 SPA,但它无法正常工作。我对 ARIA-LIVE 的理解是这些用于动态更新的部分。我的问题是 JAWS 无法读取任何内容(从标题到导航)
    • 是的,我们正在使用 ngAria。当我们执行点击、显示隐藏元素等任何操作时,ngAria 主要用于内部内容。正如我所说的主要问题是 JAW 在浏览器上加载时无法读取任何页面内容。虽然当我们点击选项卡并将焦点移到 SPA 上时,JAWs 正在阅读内容(链接、按钮文本框、导航等)。
    【解决方案2】:

    为了解决这个问题,我开发了一个有效的解决方法。以下是分辨率的详细信息。

    创建一个网页(或 MVC 应用程序中的操作方法),其加载时间等于门户(角度应用程序)加载时间 +1 或 2 秒。

    在 iframe 中引用此页面,此 iframe 将驻留在任何 html 标记下的门户中。

    创建一个能够删除自身内部 html 的指令(角度),并将此指令应用于内部具有 iframe 的 HTML 标记。

    这将如何运作 JAWs 无法知道 Angular 何时异步加载门户内容,因此它开始读取其缓冲区,并且由于大量使用指令和动态 HTML,缓冲区没有门户内容。

    添加 iframe 将保持 JAW 读取缓冲区,因为它会不断加载(参考页面)。当所有内容加载到浏览器上时,指令将在最后执行并删除 iframe 和 JAW 开始读取缓冲区(门户内容)。有足够的门户数据可以读取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 2013-09-18
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多