/** * Страница для тестирования доступности */ 'use client'; import { useState } from 'react'; import Sidebar from '@/components/Sidebar'; import AccessibleButton from '@/components/AccessibleButton'; import AccessibleInput from '@/components/AccessibleInput'; import AccessibleModal from '@/components/AccessibleModal'; import { useKeyboardNavigation } from '@/hooks/useKeyboardNavigation'; import { getWCAGLevel } from '@/lib/accessibility/colors'; export default function AccessibilityTestPage() { const [isModalOpen, setIsModalOpen] = useState(false); const [contrastResult, setContrastResult] = useState(null); // Регистрация горячих клавиш useKeyboardNavigation([ { key: 'k', ctrl: true, handler: () => { alert('Глобальный поиск (Ctrl+K)'); }, }, { key: 'Escape', handler: () => { if (isModalOpen) { setIsModalOpen(false); } }, }, ]); const testContrast = () => { const result = getWCAGLevel('#1e3a5f', '#ffffff', false); setContrastResult(result); }; return (

Тестирование доступности

Навигация с клавиатуры

alert('Кнопка 1')} ariaLabel="Тестовая кнопка 1" > Кнопка 1 alert('Кнопка 2')} ariaLabel="Тестовая кнопка 2" > Кнопка 2 setIsModalOpen(true)} ariaLabel="Открыть модальное окно" > Открыть модальное окно

Попробуйте навигацию с клавиатуры: Tab для перехода, Enter/Space для активации, Escape для закрытия модальных окон.

Доступные формы

Проверка контраста цветов

{contrastResult && (

Контраст: {contrastResult.ratio.toFixed(2)}:1

WCAG AA: {contrastResult.aa ? '✅' : '❌'}

WCAG AAA: {contrastResult.aaa ? '✅' : '❌'}

)}
setIsModalOpen(false)} title="Тестовое модальное окно" description="Это модальное окно поддерживает навигацию с клавиатуры и фокус-ловку" >

Содержимое модального окна. Нажмите Escape или кликните вне окна для закрытия.

); }