Я не знаком с полимером, поэтому извиняюсь, если это не применимо, но aria-labelledby
работает при использовании нативного HTML.
<button id="foo">foo</button>
<button id="bar">bar</button>
<input type="radio" name="gender" value="male" aria-labelledby="foo">Male<br>
<input type="radio" name="gender" value="female" aria-labelledby="bar">Female<br>
Когда я переключаюсь на переключатель «Мужской», я слышу «foo radio». Когда я переключаюсь на кнопку «Женский», я слышу «панель радио». Это работает с JAWS, NVDA и VoiceOver (iOS). Так что в теории ваш aria-labelledby
пример должен работать. Можете ли вы проверить сгенерированный код, чтобы убедиться, что aria-labelledby
установлен для элемента html и что элемент, на который ссылается идентификатор, существует?
Но мне неясно, что вы подразумеваете под
«Я пытаюсь заставить программу чтения с экрана считывать значение переключателя при наведении».
Пользователь программы чтения с экрана не будет использовать мышь, поэтому он не будет "парить" над элементом. Они будут переходить на него или переходить к нему через DOM (стрелка вверх / вниз) или использовать клавишу быстрого доступа («A» для JAWS, «R» для NVDA). Если вы действительно наведите курсор мыши на переключатель, вы ничего не услышите от программы чтения с экрана (хотя у NVDA есть возможность отслеживать мышь, но это не типичная настройка для обычного пользователя программы чтения с экрана, но даже с этим опция установлена, я правильно слышу значение aria-labelledby
).