Как запретить программе чтения с экрана произносить «группа» при чтении текста этого тега div? - PullRequest
0 голосов
/ 06 марта 2019

На моей веб-странице у меня есть div (показано ниже), в котором есть текст, который я хочу прочитать с помощью программы чтения с экрана.

HTML

<div tabIndex={0}>
    "text needs to be read"
</div>

Я слышу, что текст читается, даже не указав метку арии.Тем не менее, я слышал "текст должен быть прочитан группой".Я хотел бы знать, как я могу избежать этого, говоря «группа»?Я не ставил групповую роль для тега div.

1 Ответ

1 голос
/ 06 марта 2019

Здесь происходит много всего.

Прежде всего, весь текст на веб-странице доступен для программы чтения с экрана и не нуждается в tabindex="0", чтобы сделать его доступным длячитать.Программы чтения с экрана предоставляют множество сочетаний клавиш для навигации по различным типам элементов (заголовки, таблицы, списки и т. Д.).Для элементов, у которых нет клавиши прямой навигации, пользователь программы чтения с экрана может использовать клавиши со стрелками вверх / вниз для обхода дерева доступности (аналогично DOM).

Во-вторых,Что касается tabindex="0", то он должен быть установлен только для интерактивных элементов. tabindex spec гласит:

авторы должны делать элементы фокусируемыми, только если они действуют как интерактивные элементы управления или виджеты.Кроме того, авторы должны убедиться, что эти фокусируемые элементы имеют соответствующий атрибут роли ARIA.

А что касается ролей ARIA во втором предложении в спецификации, если ваш элемент получает фокус, если он не является изначально фокусируемым элементом (таким как <a> или<button> или <input>), тогда он должен иметь соответствующую роль , чтобы пользователь программы чтения с экрана знал, как с ней взаимодействовать.

И, касаясь этого, вы упомянулиaria-label.aria-label только для элементов, которые играют соответствующую роль.См. « 2.10 Практическая поддержка: aria-label, aria-labelledby и aria-descriptionby ».

Итак, учитывая все это, немного сложно ответить на ваш вопрос, потому что ваш простой пример недостаточно конкретный.A <div> без роли не следует читать как «группа».Группа обычно role="region" (или <section>).Поведение, которое вы слышите, может зависеть от того, какой браузер вы используете, какую программу чтения с экрана, как вы перемещаетесь с помощью программы чтения с экрана ( tab или arrow или клавиша быстрого набора).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...