Есть веб-приложение на Angular 11. Возникли вопросы по поводу доступности.
Есть список элементов. На каждом элементе действует прослушка клика и по клику происходят разные проверки и в зависимости от условий идет роутинг на разную часть приложения.
<ol>
<li *ngFor="let item of list$ | async" (click)="doSomething(basis)">
{{ item }}
</li>
</ol>
Пытаюсь сделать это более доступным как с точки зрения семантики, так и для удобного доступа с клавиатуры.
Я пробовал
{{ item }}
обернуть в тег "a", с атрибутом "href" без значения или просто с решеткой или без этого атрибута вообще, но этот вариант не подходит, потому что при достижении такого элемента с помощью кнопки Tab и по нажатию Enter выполняется не эмуляция клика, а именно переход по ссылке, которая указана в href, а если этого атрибута нет, то вообще ссылка не ловит фокус табом.
Решил на тег "li" Добавить эти атрибуты
tabindex="0" role="link listitem"
, но я нигде не видел примеров, что в атрибуте "role" можно указывать несколько значений.
Можно ли так делать? Какие есть альтернативы?