#accessibility #multi-select #web-accessibility #sumoselect.js
#Специальные возможности #множественный выбор #веб-доступность #sumoselect.js
Вопрос:
У меня есть приведенный ниже код для отображения кнопок в выпадающем списке с несколькими вариантами выбора. Я использовал tabindex=»0″ для каждого
тег. Также добавлен фокус в css. HTML — код:
<div class="form-group-multi__MultiControls">
<p tabindex="0" class="btn-tertiary--light">Cancel</p>
<p tabindex="0" class="btn-clear-all">Clear all</p>
<p tabindex="0" class="btn-secondary">Apply</p>
</div>
Код CSS:
.btn-clear-all:focus {
outline: -webkit-focus-ring-color auto 1px;
outline: 1px solid black;
}
Моя проблема здесь в том, что кнопка «Отмена» доступна для клавиши табуляции, но не для двух других — очистить все и применить.
Пожалуйста, предложите, если я что-то упускаю.
Комментарии:
1. Я могу сосредоточиться на всех ссылках, если я запущу ваш фрагмент кода
2. почти уверен, что, глядя на ваш CSS «Очистить все», вы увидите свой пользовательский индикатор фокусировки, а не «Отменить». Помимо того факта, что вы должны использовать
<button>
элемент для обеспечения доступности, и поэтому вам не нужно беспокоиться оtabindex="0"
том, что вам нужно изменить свой CSS-селектор на be.btn-tertiary--light:focus, .btn-clear-all:focus, .btn-secondary:focus{
. Кроме того, если это bootstrap (как это выглядит), то вам.btn
также следует добавить класс к каждой кнопке, чтобы вы могли просто настроить таргетинг на него в своем CSSclass="btn btn-tertiary--light"
и т.д. позволяет вам просто делать.btn{
.
Ответ №1:
Вам не хватает чрезвычайно очевидной вещи (я имею в виду, для семантики и доступности).
Посмотрите на свои кнопки и обратите внимание на то, что вы видите. Вы видите кнопки?
Правильный ответ: Нет. Вы видите абзацы ( <p>
ы, а не <button>
ы).
Есть два решения, одно лучшее и одно не очень хорошее:
- Лучшее решение. Измените все ваши
<p>
буквы s на<button>
s. У вас уже естьbtn-secondary
класс Bootstrap, примененный к ним, так что я почти уверен, что ваш стиль никоим образом не пострадает. - Добавить
role="button"
в свой<p>
s. Опять же, поскольку первое правило ARIA гласит, что вы не должны использовать ARIA, если вам абсолютно не нужно, это не слишком хорошее решение.