Ожидаемая "роль" ARIA для неинтерактивных элементов (tabIndex = "- 1") - PullRequest
0 голосов
/ 04 июля 2018

Я пишу компонент для веб-приложения, в котором мне нужно явно запретить элементу фокусироваться на нажатии "tab".

В соответствии со спецификациями W3c Я установил атрибут tabIndex на -1 для объявления неинтерактивных элементов.

Теперь мне интересно, какова роль ARIA для такого неинтерактивного элемента?

<div
    role="???"
    tabIndex="-1"
    onKeyDown="/* ... */"
    onClick="/* ... */"
>
    Lorem ipsum
</div>

1 Ответ

0 голосов
/ 04 июля 2018

В этом конкретном случае, если элемент не может получить фокус, ему не нужна роль. Это не общее правило, хотя. Существует множество элементов, которые не могут получить фокус клавиатуры, но при этом имеют действительную роль, такие как заголовки, списки и таблицы. Наличие действительной роли помогает читателям экрана понимать структуру страницы и позволяет им быстро переходить к этим элементам (например, «H» для перехода к следующему заголовку, «L» для следующего списка или «T» для следующего таблица.) Если ваш элемент не имеет никакого семантического значения, ему не нужна роль.

Как примечание, есть случаи, когда элемент может иметь tabindex="-1" и иметь действительную роль. Если я реализую свой собственный селектор списков, используя <ul>/<li>, где каждый элемент списка является выбором, но я хочу, чтобы весь список в целом был одной точкой табуляции, тогда у меня будет tabindex="-1" для всех элементов списка, кроме одного Я хочу получить вкладку фокус. Это будет иметь tabindex="0". Если я добавлю вкладку ко всему списку, фокус переместится на элемент с tabindex="0". Затем я могу стрелку вверх / вниз по списку, чтобы сделать другой выбор. При перемещении стрелки вверх / вниз я переключаю значение tabindex в соответствующем элементе списка.

...