Javascript IOS Voiceover未读取div内容

Javascript IOS Voiceover未读取div内容,javascript,angularjs,accessibility,voiceover,uiaccessibility,Javascript,Angularjs,Accessibility,Voiceover,Uiaccessibility,当我使用div内容在图像或图形下显示时,我必须关闭这些可视内容以获得可访问性选项。我只想展示我的咏叹调标签内容(画外音),但是。画外音没有读这个标签 <div tabindex="0" role="definition" aria-hidden="false" aria-label="the bar for Current Balance & Available Credit" ng-if="vm.openCycleInfo" > <progress-b

当我使用div内容在图像或图形下显示时,我必须关闭这些可视内容以获得可访问性选项。我只想展示我的咏叹调标签内容(画外音),但是。画外音没有读这个标签

<div tabindex="0" role="definition" aria-hidden="false" aria-label="the bar for Current Balance & Available Credit" ng-if="vm.openCycleInfo" >
        <progress-bar tabindex="-1" aria-hidden="true" class="full-width" vb-min-text="Current Balance" vb-max-text="Available Credit" vb-id="BalanceProgress" vb-minimum-value="0" vb-maximum-value="{{vm.openCycleInfo.CreditLimit.Value}}" vb-current-value="vm.openCycleInfo.OTBBalance.Value"></progress-bar>
        <div tabindex="-1" aria-hidden="true" class="progress-bar-space"></div>
    </div>

我在Windows上使用Chrome和Firefox在NVDA中测试了您的代码,并且每次都正确读取了
aria标签
属性。与其他屏幕阅读器相比,画外音似乎有一些独特的行为,所以我不会太担心它

一些选项:

  • 您只需将
    aria label
    属性的内容作为纯文本添加到div中即可。它肯定会被阅读

  • 如果你真的不想看到这个文本,你也可以使用CSS而不是使用
    aria-label

  • 在任何情况下,我都不会对一个屏幕阅读器是如何工作的太在意。每个屏幕阅读器/浏览器组合将产生略有不同的结果,这些结果将随着软件更新而改变。作为开发人员,您所能做的最好的事情就是按照既定的标准编写代码


    有些人会编写黑客的“变通办法”,以缓解技术的弱点(如此)。如果您有资源不断更新代码,那么沿着这条路走就可以了。当屏幕阅读器或浏览器制造商开始着手解决问题时,采取的变通办法可能会导致比解决问题更多的问题。

    Voice over没有阅读aria label=“当前余额和可用贷项栏”此字段