Невозможно использовать класс с aria-labelledby или aria-describedby. Хотя с помощью aria-labelledby к элементу можно прикрепить несколько меток, единственными значениями, с которыми он работает, являются идентификаторы. Я предполагаю, что это так, потому что они ожидают, что эти ярлыки будут уникальными для этой цели. Одним из возможных решений было бы прикрепить «метку арии» к вводу с текстом, который вы хотите, чтобы он действительно читался. Например, имея
<label for="textfield">Q.T.Y.</label> <input type="text" id="textfield" aria-label="Quantity">
позволит программе чтения с экрана читать текст, который отличается от отображаемой метки. Просто имейте в виду, что многие (большинство?) программ чтения с экрана не будут читать элемент <label>, если на входе была использована метка aria.
Изменить: класс предназначен для использования для нескольких экземпляров элемента на странице. Когда вы фокусируетесь на элементе, программа чтения с экрана должна точно знать, какой элемент будет представлять атрибут aria. Вот почему используются идентификаторы — идентификаторы должны быть уникальными для страницы, то есть определенный идентификатор может принадлежать только одному элементу. Это позволяет браузеру (и вспомогательным технологиям) быстро и точно выбрать правильный элемент для атрибута aria. Если бы у вас было три элемента на странице с одинаковым классом, но разным содержанием, что бы вы ожидали прочитать?
Правка №2: я хотел вернуться к этому, чтобы предостеречь от использования арии-метки, отличной от отображаемой метки, из-за возможных проблем с технологиями диктовки (такими как Dragon Naturally Speaking или другими). Пользователь, который управляет веб-страницей своим голосом, часто будет полагаться на отображаемые метки для правильного взаимодействия со страницей.
Чтобы привести пример:
<button aria-label="click to buy">Checkout</button>
Пользователь, который видит оформление заказа на странице, но использует программное обеспечение для диктовки, может продиктовать нажатие кнопки «Оформить заказ», но программное обеспечение для диктовки не узнает о кнопке «Оформить заказ», потому что метка арии означает «щелкнуть, чтобы купить».
person
Skerrvy
schedule
29.06.2016
aria-labelledby. - person Ronnie Royston   schedule 14.02.2018