Попробуйте role="listitem"
или role="group"
и aria-labelledby="shopping cart items"
. См. Пример 1. 2
- это текстовое содержимое, которое должно читаться программой чтения с экрана уже с атрибутом, считываемым как контекст для содержимого. См. Этот раздел.
ОБНОВЛЕНИЕ 2
Добавьте aria-readonly=true
role=textbox
, если вы используете ввод. Если есть сомнения, использовать ли aria-label
или aria-labelledby
, прочтите это статья. В документации для JAWS и во время ее самого тестирования подтверждается тот факт, что aria-label
игнорируется. Кроме того, семантика очень важна, когда вас беспокоит доступность. Использование div, когда вы можете использовать ввод, семантически нецелесообразно, и, как я сказал ранее, JAWS будет принимать элемент формы с большей готовностью, чем div. Я предполагаю, что эта «корзина для покупок» является формой или частью формы, и если вам не нравятся ее границы, input {border: 0 none transparent}
или используйте <output>
*, что будет A + с точки зрения семантики.
Извините, @RadekPech напомнил мне; Я забыл добавить, что для использования aria-labelledby
нужен видимый текст, а для текста нужен идентификатор, который также указан как значение (я) aria-labelledby
. Если вам не нужен текст из-за эстетики, используйте color: transparent
, line-height: 0
или color:<same as background>
. Это должно обеспечивать наглядность с точки зрения модели DOM * и при этом оставаться невидимым невооруженным глазом. Помните, что эти меры вызваны тем, что JAWS игнорирует aria-label
.
* непроверено
ПРИМЕР 3
<span id="shopping">Shopping</span>
<span id="cart">Cart</span>
<span id="items">Items</span>
<input id='cart' tabindex="0" aria-readonly=true readonly role="textbox" aria-labelledby="shopping cart items" value='2'>
ОБНОВЛЕНИЕ 1
Для JAWS, наверное, придется немного настроить:
- Щелкните пункт меню Утилиты.
- Затем Центр настроек.
- Схемы речи и звуков
- Схема Modiy ...
- HTML Вкладка
В этом конкретном диалоговом окне вы можете добавить определенные атрибуты и то, что будет сказано при переходе к элементу с помощью вкладки. JAWS будет легче реагировать на элементы формы, потому что они могут вызвать событие focus
. Вместо этого вам будет проще выполнить Пример 2:
ПРИМЕР 1
<div id=myCoolDiv tabindex="0" role="listitem" aria-labelledby="shopping cart items"> 2 <div>
ПРИМЕР 2
<input id='semantic' tabindex="0" role="listitem" aria-labelledby="shopping cart items" value='2' readonly>
person
zer00ne
schedule
14.07.2016
title
читается программами чтения с экрана? HTML5 spec явно не рекомендует использовать его для обеспечения доступности. - person rvighne   schedule 14.07.2016tabindex
на все, что не является реальным контролем. - person aardrian   schedule 15.07.2016sr-only
для своих целей. - person   schedule 17.07.2016aria-label
, потому чтоDIV
не имеет ARIA по умолчаниюrole
. Вы должны установитьrole
, чтобы атрибутыaria-*
активировались. - person Radek Pech   schedule 18.07.2016