JAWS没有阅读更新的咏叹调标签

问题描述 投票:1回答:3

我们正在使用自定义角度表,其中还包括排序功能。

当用户对column1进行排序时,我们将column1的aria-label设置为:“单击以按升序排序column1”。

如果用户再次单击相同的标题,我们将相同的aria-label更改为“单击以降序排序column1”。

但据观察,JAWS叙述者未检测到更新的aria-label

我们如何解决这个问题,JAWS可以读取更新的aria-label,还是有替代方案?

谢谢

wai-aria jaws-screen-reader narrator
3个回答
1
投票

已经计算了替代文本,但您可以定义两个按钮/ div并隐藏不必要的文本。

<th>
  <div role="button"
      class="ascending"
      aria-label="Click to sort column in ascending order"></div>
  <div role="button"
       class="descending hidden"
       aria-label="Click to sort column in ascending order"></div>
</th>

1
投票

谢谢你的回复,但我以不同的方式做到了, 1.我已将以下代码添加到html中,其中包含role =“log”aria-live“=”polite“

<div class="hidden" id="sortAnnouncer" role="log" aria-live"="polite">
        <span ng-bind="sortingChangedMessage"></span>
</div>

2.当用户点击列标题进行排序时,调用angular函数并更新sortingChangedMessage变量

       <th ng-click="setSortMessage('column name',direction)">Column name</th>

        $scope.setSortMessage = function(columnName, direction)
        {
          $scope.sortingChangedMessage = "Click on column " + columnName + " to sort in " + direction + " order";      }

JAWS检测到消息更改并开始读取更新的sortingChangedMessage。

这个方法解决了我的问题。


1
投票

只需添加role =“alert”即可。它会解决你的问题。 “alert”角色用于检测动态变化。

© www.soinside.com 2019 - 2024. All rights reserved.