В моем приложении реагирования я заметил проблему в NVDA, когда мое добавление внутри элемента aria-live
считывается несколько раз.Я замечаю эту проблему только в рамках реакции и не могу воспроизвести ее на простом JavaScript.
Я разбил свой код на наименьший воспроизводимый элемент.С NVDA 2018.1 в Firefox 59.0.3 вы можете видеть, как NVDA считывает изменения 6 раз, по одному на переменную.
https://codesandbox.io/s/lx8jykqprz
Когда вы нажимаете кнопку go, ожидаемое поведение - считывание новых счетчиков один раз.Тем не менее, он считывается 6 раз.Если вы измените число переменных ${this.state.counter}
, вы увидите, как изменяется количество раз, которое они считываются.
Кто-нибудь еще сталкивался с этой проблемой?Если да, то как вы обошли его?
==============
Редактировать : Как я уже говорил в своем комментариипод принятым ответом:
Что я заметил, так это то, что в моем примере рендеринг представлял 6 текстовых узлов, по одному для каждой переменной счетчика.Это, в сочетании с тегом aria-atomic
, заставляло переменные считываться несколько раз.
При изменении значения на ${this.state.counter}${this.state.counter}${this.state.counter}${this.state.counter}${this.state.counter}${this.state.counter}
это исправляло проблему, поскольку оно отображалось до одного текстового узла, и, следовательно,изменение было зачитано только один раз.