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

时间:2016-10-17 14:04:33

标签: wai-aria jaws-screen-reader narrator

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

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

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

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

我们如何解决这个问题,JAWS可以阅读更新的aria-label,还是有其他选择?

由于

3 个答案:

答案 0 :(得分: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)

感谢您的回复,但我以不同的方式做到了,

1.我已将下面的代码添加到html中,其中包含role =&#34; log&#34;咏叹调活&#34; =&#34;礼貌&#34;

<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。

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

答案 2 :(得分:1)

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