我们正在使用自定义角度表,其中还包括排序功能。
当用户对column1进行排序时,我们将column1的aria-label
设置为:
"单击以按升序排序column1"。
如果用户再次点击相同的标题,我们将相同的aria-label更改为"单击以降序排序column1"。
但据观察,JAWS叙述者未检测到更新的aria-label
。
我们如何解决这个问题,JAWS可以阅读更新的aria-label
,还是有其他选择?
由于
答案 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”角色用于检测动态变化。