如何解决复杂的 aria-live 计时器进度条焦点完成加载和消息问题
我想专注于更改页面上的内容。我想为此使用 aria-live,但我不明白为什么它不起作用。为了弄清楚我把它缩小到一个跨度:
<span class="message" aria-live="polite">Text 1</span>
还有一行 jQuery,我运行它来更改文本:
$('.message').text('Text 2');
/* @ -- Progressbar */
var timerCount = 0;
var lastCount = false;
var waitingTime = 10000; //ms
var waitingDevide = 100 / waitingTime;
function loadCalc() {
if (timerCount <= waitingTime) {
if (timerCount !== 0) {
/* @ ---- If not first call */
var currentPercentage = Math.round(timerCount * waitingDevide);
$('.waiting-progressbar-bar').css({width: currentPercentage + "%"});
$('.waiting-progressbar').attr('aria-valueNow',currentPercentage);
if (currentPercentage === 100) {
/* @ ------ When loading is done */
finishedLoading();
}
}
if (timerCount < waitingTime - 1000) {
/* @ ---- Create Random Time for Realistic loader */
var randomInterval = Math.floor(Math.random() * 11) * 100;
/* @ ---- Call Function After Random Time */
setTimeout(loadCalc,randomInterval);
/* @ ---- Add Random Number to Counter */
timerCount = timerCount + randomInterval;
} else if (timerCount !== waitingTime) {
var lastStep = waitingTime - timerCount;
timerCount = timerCount + lastStep;
setTimeout(loadCalc,lastStep);
}
}
}
loadCalc();
function finishedLoading(){
$('.message').text('Text 2');
}
我对上面的代码做了一个jsfiddle:https://jsfiddle.net/studiovds/czdug5yn/14/show
在我的 OSX Voiceover 屏幕阅读器上运行此程序不会大声朗读更改的内容?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。