Часто я сталкиваюсь с задачей использования значков материалов и превращения их в интерактивные кнопки.Например, может быть значок, который при нажатии отображает текст и вращается.При повторном нажатии он поворачивается обратно в исходное положение и текст исчезает.
<div onClick={toggleButton()}>
<i
role="toggle button"
aria-pressed="true"
alt="Toggle text"
class="material-icons"
>
toggle_off
</i>
Random text...
</div>
<div onClick={toggleButton()}>
<i
role="toggle button"
aria-pressed="true"
alt="Toggle text"
class="material-icons"
>
toggle_on
</i>
</div>
-an if conditional would render either of these divs based on pressed or not pressed
Обычно я обрабатываю эту кнопку, добавляя роль, состояние арии и текст alt к значку материала и изменяя состояние арии при нажатии.Однако я всегда чувствую, что могу делать это не так эффективно, как следовало бы.
Как правильно сделать значок, используемый в качестве кнопки переключения, доступным?
(я знаю, что для WCAG (доступность в Интернете) рекомендуется использовать компонент кнопки, ноиз-за уникальной природы значков материалов это невозможно.)