我注意到,当通过JavaScript在按钮上切换aria-pressed
时,VoiceOver(不确定其他屏幕阅读器)无法读取aria-pressed
已更改。只有当按钮获得焦点时才会读出它(例如,当aria-pressed
为false
时为“Lorem ipsum,切换按钮”,aria-pressed
为{true
时为“Lorem ipsum,已选中,切换按钮” {1}})。
谁能告诉我为什么会这样?这是一个错误吗?就个人而言,我认为如果用户正在切换按钮的状态,那么当它改变状态时会得到通知。
注意:与aria-expanded
的行为相同。
这是一个重现的代码片段(假设VO已打开)。
aria-pressed
。aria-pressed
值已更改。)
function toggleAriaPressed(event) {
var $element = $(event.target);
var pressed = $element.attr('aria-pressed') === 'true';
$element.attr('aria-pressed', !pressed);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button onclick="toggleAriaPressed(event)" aria-pressed="false">Lorem ipsum</button>
<span tabindex="0">Something else focusable</span>