Как мне проинформировать пользователей с визуальным сопровождением о статусе загрузки своего браузера? - PullRequest
0 голосов
/ 16 октября 2018

Используя стандартный элемент привязки для загрузки контента, я могу перехватить событие щелчка, чтобы проинформировать помогающего пользователя, что загрузка начинается.Тем не менее, кажется, что событие не отправляется, когда загрузка завершается или происходит сбой.Как таковой, зрячий пользователь может видеть браузер «Загрузка всплывающего окна завершена», но это совершенно незаметно для незрячих пользователей.

Контекст: Chromebook / Chrome / ChromeVox

Фрагмент HTML:

<a id=asdf download href="http://50.18.90.151/scv/audio/3510b90ced0e914f83c81d8f03e47c01">
   download sound file</a>
<script>
    var elt = document.getElementById('asdf');
    console.log('Adding listeners', elt);
    elt.addEventListener('click', (evt) => {
        console.log('Starting download');
    });
    elt.addEventListener('load', (evt) => {
        console.log('This never gets called');
    });
</script>

Я перепробовал все следующие события, но ни один не запускается: elt.addEventListener('close', (evt) => { elt.addEventListener('complete', (evt) => { elt.addEventListener('data', (evt) => { elt.addEventListener('downloading', (evt) => { elt.addEventListener('ended', (evt) => { elt.addEventListener('end', (evt) => { elt.addEventListener('loadend', (evt) => { elt.addEventListener('load', (evt) => { elt.addEventListener('message', (evt) => { elt.addEventListener('progress', (evt) => { elt.addEventListener('statechange', (evt) => { elt.addEventListener('storage', (evt) => { │ => elt.addEventListener('success', (evt) => { elt.addEventListener('writeend', (evt) => { elt.addEventListener('end', (evt) => {

1 Ответ

0 голосов
/ 18 октября 2018

Спасибо @jdv за указание на связанный пост, подтверждающий отсутствие события браузера для завершения загрузки.

Решение состоит в том, чтобы обработчик загрузки сервера возвращал файл cookie сеанса, такой как "дата загрузки"».Когда ответ будет обработан, значение файла cookie изменится, и Javascript можно будет использовать для обновления веб-приложения по желанию.

  1. это временный файл cookie, поэтому избегайте maxAge и expires
  2. также избегайте httpOnly , чтобы клиентский Javascript мог получить доступ к cookie

Вот и все!

...