Принудительно прерывать программы чтения с экрана ⇐ Javascript
-
Anonymous
Принудительно прерывать программы чтения с экрана
Я работаю в компании, разрабатывающей обучающий контент на основе WebGL, и мы хотим добавить в наши программы больше специальных возможностей. С этой целью я пытался найти способ заставить работать программы чтения с экрана, но столкнулся с проблемой, из-за которой она может отставать (скажем, при наведении курсора на несколько интерактивных объектов в быстрой последовательности). Я собрал эту демонстрацию, чтобы проиллюстрировать проблему: https://jsfiddle.net/dzqek8os/
Когда вы наводите курсор на цветные квадраты слева от вывода, он обновляет элемент div с тегом aria-live="assertive" именем цвета, а также выводит при нажатии на одной из площадей. Однако, когда вы быстро проводите мышью по квадратам, даже если элемент div обновляется немедленно, программа чтения с экрана (в моем случае протестированная с помощью NVDA) не прерывает обновление. Однако он прерывается, когда вы нажимаете на один из квадратов.
Справа показано поведение, которое я пытаюсь воспроизвести. Если вы наведете курсор на слова (простые теги p в другом элементе div), программа чтения с экрана прервется, когда вы наведете курсор на новый элемент.
Другие вещи, которые я пробовал:
[*]добавление нового элемента div в качестве дочернего элемента утвердительного элемента управления [*]то же, что и выше, но перед добавлением нового дочернего элемента очищается родительский элемент div. [*]наличие 5 отдельных элементов div (все с aria-live="assertive") и циклическое обновление одного из них при каждом наведении курсора мыши.
Есть ли способ воспроизвести поведение справа с помощью JS?
Я работаю в компании, разрабатывающей обучающий контент на основе WebGL, и мы хотим добавить в наши программы больше специальных возможностей. С этой целью я пытался найти способ заставить работать программы чтения с экрана, но столкнулся с проблемой, из-за которой она может отставать (скажем, при наведении курсора на несколько интерактивных объектов в быстрой последовательности). Я собрал эту демонстрацию, чтобы проиллюстрировать проблему: https://jsfiddle.net/dzqek8os/
Когда вы наводите курсор на цветные квадраты слева от вывода, он обновляет элемент div с тегом aria-live="assertive" именем цвета, а также выводит при нажатии на одной из площадей. Однако, когда вы быстро проводите мышью по квадратам, даже если элемент div обновляется немедленно, программа чтения с экрана (в моем случае протестированная с помощью NVDA) не прерывает обновление. Однако он прерывается, когда вы нажимаете на один из квадратов.
Справа показано поведение, которое я пытаюсь воспроизвести. Если вы наведете курсор на слова (простые теги p в другом элементе div), программа чтения с экрана прервется, когда вы наведете курсор на новый элемент.
Другие вещи, которые я пробовал:
[*]добавление нового элемента div в качестве дочернего элемента утвердительного элемента управления [*]то же, что и выше, но перед добавлением нового дочернего элемента очищается родительский элемент div. [*]наличие 5 отдельных элементов div (все с aria-live="assertive") и циклическое обновление одного из них при каждом наведении курсора мыши.
Есть ли способ воспроизвести поведение справа с помощью JS?
Мобильная версия