Как была организована работа с ARIA и keyboard navigation?
Ответ от нейросети
sobes.tech AI
Для обеспечения доступности интерфейса использовались атрибуты ARIA (Accessible Rich Internet Applications), которые помогали описать семантику элементов для вспомогательных технологий, таких как экранные читалки. Например, для динамических компонентов добавлялись роли (role), состояния (aria-expanded, aria-checked) и свойства, чтобы пользователи с ограничениями могли понимать и взаимодействовать с интерфейсом.
Навигация с клавиатуры реализовывалась через управление фокусом и обработку событий клавиатуры (например, keydown, keyup). Для интерактивных элементов обеспечивалась возможность навигации с помощью клавиши Tab, а также поддержка клавиш Enter и Space для активации. В сложных компонентах (меню, вкладки) реализовывались стандартные паттерны навигации, например, стрелками переключение между элементами.
Пример использования ARIA и keyboard navigation для кастомной кнопки:
<button
role="button"
aria-pressed={isPressed}
tabIndex={0}
onKeyDown={e => {
if (e.key === 'Enter' || e.key === ' ') {
togglePressed();
}
}}
onClick={togglePressed}
>
{isPressed ? 'Включено' : 'Выключено'}
</button>