Заставить JAWS объявлять статус aria-selected

У меня есть страница с навигацией с вкладками, и мне нужно, чтобы JAWS объявлял статусы вкладок. Например:

      ________
 Shop | Cart | Recent orders | Profile
--------------------------------------

Когда пользователь перемещается по вышеуказанным вкладкам, JAWS должен сказать что-то вроде

вкладка «Магазин»; не выбрано
(Tab)
Корзина; selected
(Tab)
Недавние заказы; не выбрано
(Tab)
Профиль; не выбран

Там, где у меня есть «(Tab)» со скобками выше, я имею в виду, что JAWS произносит слово «tab», потому что клавиша Tab была нажата для перемещения между вкладками навигации.

В настоящее время JAWS не произносит слова «не выбрано» и «выбрано», но все остальное произносит. Я использую разметку, например

<a aria-selected="false" href="profile.html" id="profileTab">

Официальная документация JAWS (воспроизведена здесь) указывает что JAWS распознает aria-selected, но не сообщает, какой эффект имеет это свойство.

Я вижу разметку ARIA в исходном коде своей страницы, но JAWS не читает ее вслух и, насколько я могу судить, вообще ничего с ней не делает. Как я могу заставить JAWS говорить «выбрано» и «не выбрано» (или что-то подобное)?


person SOLO    schedule 20.09.2018    source источник


Ответы (1)


В авторской практике есть хороший раздел, посвященный управлению вкладками. демонстрационный сайт используя aria-selected, как и вы, но это звучит нормально с JAWS и Internet Explorer, когда я тестировал его только что, хотя демонстрационная установка устанавливает aria-selected на <button> вместо ссылки.

Какой браузер вы использовали?
Последняя версия JAWS?

Кроме того, элемент управления вкладками обычно использует клавиши со стрелками для перехода между вкладками (см. вышеупомянутую «практику авторов»), а не клавишу tab, но это не должно влиять на то, читается ли aria-selected или нет.

(В качестве дополнительного забавного факта вы можете отключить объявление JAWS о «табе» каждый раз, когда вы нажимаете клавишу tab. Я использую JAWS довольно часто, и мне не нужно, чтобы он сообщал мне, когда я нажимаю клавиша табуляции. Это просто звуковой беспорядок (для меня). Ins + J> Утилиты> Центр настроек> Управление метками клавиш> Вкладка> Переключить звук)

Обновление Извините, у меня на мгновение случился сбой в работе мозга. Я забыл упомянуть role="tab". Вот что вызывает вашу проблему. aria-selected недействителен для role="button" или role="link", но действителен для role="tab". См. «Разрешенные роли, состояния и свойства"

Измените свой код на

<a aria-selected="true" href="profile.html" id="profileTab" role="tab">

и это должно работать.

person slugolicious    schedule 20.09.2018
comment
IE11 и недавний, но не последний JAWS (из-за требований компании). Меня предупредили об использовании role="tab" в сообщении в блоге, в котором утверждалось, что я сделал реальный тест. По крайней мере, я попробую в разработке, чтобы посмотреть, что произойдет, и двигаться дальше. - person SOLO; 21.09.2018
comment
Хорошо, я проверил это, и это дает мне полпути. JAWS объявляет вкладку с aria-selected="true" выбранной, но вкладки с aria-selected="false" не получают соответствующего объявления. - person SOLO; 21.09.2018
comment
Вроде работает правильно. aria-selected объявляется только тогда, когда его значение истинно. Ничто не должно быть объявлено, если это ложь. То есть вы не услышите not selected, если значение равно false. Что касается блога, настоящие слабовидящие пользователи написали опровержение в блоге здесь - medium.theuxblog.com/, имитируя название исходного блога. Опровержение было написано уважаемыми экспертами по доступности. Можно использовать role="tab" для ссылок и кнопок. - person slugolicious; 22.09.2018
comment
Ах, очень приятно! Думаю, мне придется добавить какой-нибудь пользовательский обходной путь для моего требования «не выбрано». - person SOLO; 24.09.2018
comment
если вы хотите форсировать невыбранное объявление, это, безусловно, ваш выбор, но пользователи программ чтения с экрана привыкли слышать выбранное или ничего не слышать. вы должны быть осторожны, чтобы не быть слишком многословными в том, что читается. Пользователи программ чтения с экрана обычно любят как можно более краткую информацию, потому что при чтении экрана может быть очень шумно, но это предпочтение может сильно различаться в зависимости от личных предпочтений. вы можете добавить aria-label на свою вкладку, которая не выбрана. - person slugolicious; 24.09.2018
comment
Кстати похоже, что NVDA+Firefox ведет себя как раз наоборот. Он ничего не объявлял о выбранном элементе (параметры внутри списка для меня) и не выбран для всех остальных. В настоящее время думаю о добавлении пользовательского aria-label, но мне кажется, что программа чтения с экрана должна справиться с этим, поэтому я, вероятно, оставлю это. - person Simon Lenz; 29.05.2019