Как остановить очередь оповещений 508 Jaws aria

Моя текущая кодовая база использует следующую функцию для создания предупреждений для уведомления слепых пользователей о том, что что-то произошло, например, "Боб успешно назначен в синюю команду".

var create508Message = function (message, type) {
    var $messageElement,
        templateOptions = {
            message: message
        };

    // create the $messageElement
    switch (type){
        case 'alert':
            templateOptions.isAlert = true;
            $messageElement = $(HBS['common/accessibilityUtil'](templateOptions));
            break;
        case 'status':
            templateOptions.isStatus = true;
            $messageElement = $(HBS['common/accessibilityUtil'](templateOptions));
            break;
        default:
            return;
    }

    // trigger the message
    $('body').append($messageElement);
    // clean up automatically after 5 secs
    setTimeout(function (){
        $messageElement.remove();
    }, 5000);

},

Большинство компонентов многократного использования позволит слепому пользователю знать текущее состояние. Я сталкиваюсь с некоторыми проблемами, когда, например, таблица обновляется, число страниц читается, а затем применяется фильтр, и номер страницы изменяется, потому что количество элементов в отфильтрованном списке изменилось. Это приводит к тому, что Jaws читает слепому пользователю ряд конфликтующих состояний, поскольку он читает всю очередь предупреждений.

Я надеялся, что есть способ предотвратить чтение очереди, что-то вроде:

killAriaLive: function () {
    $('div[aria-live]').map( function () {
            $(this).removeAttr('aria-live');
            $(this).removeAttr('role');
            $(this).attr('hidden', 'true');
            $(this).attr('aria-hidden', 'true');
    });
},

но это тоже не сработало, оно все равно читает всю очередь сообщений.

1 ответ

Вы можете попробовать создать / обновить элемент с помощью aria-live="assertive" (см. https://developer.paciellogroup.com/blog/2014/03/screen-reader-support-aria-live-regions/) с пробелами (Хотя я еще не пробовал это сделать), однако, вы могли бы затем начать подавлять речь, которую законно должен услышать пользователь.

Другие вопросы по тегам