微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

复杂的 aria-live 计时器进度条焦点完成加载和消息问题

如何解决复杂的 aria-live 计时器进度条焦点完成加载和消息问题

我想专注于更改页面上的内容。我想为此使用 aria-live,但我不明白为什么它不起作用。为了弄清楚我把它缩小到一个跨度:

<span class="message" aria-live="polite">Text 1</span>

还有一行 jQuery,我运行它来更改文本:

$('.message').text('Text 2');

在加载条达到 100% 后调用上面的行。完整代码

/* @    -- 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');
}

我对上面的代码做了一个jsfiddlehttps://jsfiddle.net/studiovds/czdug5yn/14/show

在我的 OSX Voiceover 屏幕阅读器上运行此程序不会大声朗读更改的内容

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。