【问题标题】:Override aria-label of ionic3 ion-icon覆盖 ionic3 ion-icon 的 aria-label
【发布时间】:2018-11-15 10:46:23
【问题描述】:

我正在使用 iOS 的 VoiceOver 功能测试我的 Ionic3 应用程序的可访问性。看起来 ion-icon 在其 aria-label 属性中使用了图标的名称,并被大声读出。有没有办法用其他东西覆盖它或抑制图标的 aria-label?

示例...

我有一个这样的按钮:

<button ion-button icon-right>
    Finish my postcard 
    <ion-icon name="checkmark-circle"></ion-icon>
</button>

使用 VoiceOver 将其朗读为“完成我的明信片复选标记圈”。

标签也是如此:

<ion-tab [root]="tab3Root" tabTitle="Postcards" tabIcon="images"></ion-tab>

作为“图像轮廓明信片”大声读出

在这两种情况下,最好根本不公布图标的名称。但是,如果知道如何用自定义文本覆盖它,那就太好了。

【问题讨论】:

    标签: ionic3 accessibility voiceover ionicons


    【解决方案1】:

    根据ionicons compontent documentation,您可以简单地覆盖aria-label:

    &lt;ion-icon name="checkmark-circle" ariaLabel="Completed"&gt;&lt;/ion-icon&gt;

    由于您在听起来像任务的内容旁边显示复选标记,我假设该图标实际上包含重要信息:任务已完成。因此,您不应向屏幕阅读器用户隐藏该信息。

    【讨论】:

      【解决方案2】:

      在这种情况下,我想出了如何在使用 ion-icon 代码时隐藏图标的名称。只需添加 aria-hidden="true"

      <button ion-button icon-right>
          Finish my postcard 
          <ion-icon name="checkmark-circle" aria-hidden="true"></ion-icon>
      </button>
      

      仍在尝试找出如何为标签抑制它或覆盖标签。

      【讨论】:

      • aria-hidden 是您发现的按钮最干净的解决方案。另一种方法是使用&lt;button aria-label='finish my postcard'&gt;...。 aria-label 将覆盖按钮中包含的所有内容,并且是唯一读取的内容。对于您的标签,我不确定。 &lt;ion-tab&gt;生成的html是什么?
      猜你喜欢
      • 2013-11-06
      • 2014-05-13
      • 2013-07-02
      • 1970-01-01
      • 2019-10-17
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2017-10-07
      相关资源
      最近更新 更多