Решение здесь зависит от того, что должно делать действие.
Рефакторинг действия, которое вызывает переход
Поскольку это действие переносит пользователя на новый маршрут, это должен быть элемент ссылки, <a>
, а не кнопка. Это дает пользователям вспомогательных технологий / средств чтения с экрана подсказку, что взаимодействие приведет их куда-то в приложение.
Это может быть изменено на ссылку в Ember, которая обернет содержимое в <a>
:
{{#link-to someRoute}}
<div> more content </div>
{{/link-to}}
someRoute
может быть вычисляемым свойством, если его необходимо информировать несколькими частями данных. В противном случае это может быть строка.
Рефакторинг взаимодействия, которое держит вас на той же странице
В тех случаях, когда действие не переносит вас на другую страницу, может быть целесообразно использовать <button>
. Примером этого может быть кнопка, которая разворачивает складной контейнер или переключает настройку. Однако валидатор w3 говорит нам, что вы не можете помещать div внутри кнопок. Вы можете использовать Phrasing Content , который не является интерактивным , например <span>
.
<button class="some-class" onclick={{action "toggleSomething"}}>
<span> more content </span>
</button>
Узнать больше
Чтобы выявить больше проблем с доступностью в приложении, попробуйте ember-a11y-testing , который проверяет ваше приложение на наличие проблем и дает отчет о том, как их исправить.
На этот вопрос был дан ответ в рамках 2-го сезона 3-го сезона «Могу я задать вопрос». Если вы хотите, чтобы мы обсудили этот ответ полностью, вы можете посмотреть видео здесь: https://youtu.be/nQsG1zjl8H4