'use client'; import { useState } from 'react'; import { PageLayout, StatusBadge } from '@/components/ui'; const checks = [ { id: 1, name: 'ARIA landmarks', desc: 'role="main", role="navigation", role="complementary"', status: 'pass' }, { id: 2, name: 'Keyboard navigation', desc: 'Tab order, focus indicators, skip links', status: 'pass' }, { id: 3, name: 'Screen reader', desc: 'aria-label, aria-describedby, aria-live', status: 'pass' }, { id: 4, name: 'Color contrast', desc: 'WCAG 2.1 AA — min 4.5:1 for text', status: 'pass' }, { id: 5, name: 'Responsive layout', desc: 'Mobile hamburger, fluid grids, touch targets', status: 'pass' }, { id: 6, name: 'Form labels', desc: 'FormField component wraps all inputs', status: 'pass' }, { id: 7, name: 'Modal accessibility', desc: 'role="dialog", aria-modal, ESC close, focus trap', status: 'pass' }, { id: 8, name: 'Image alt text', desc: 'Decorative images use aria-hidden', status: 'warn' }, { id: 9, name: 'Language attribute', desc: 'html lang="ru"', status: 'pass' }, { id: 10, name: 'Dark mode', desc: 'Tailwind dark: classes, system preference', status: 'pass' }, ]; export default function AccessibilityTestPage() { const [filter, setFilter] = useState('all'); const filtered = filter === 'all' ? checks : checks.filter(c => c.status === filter); const passCount = checks.filter(c => c.status === 'pass').length; return (
{['all', 'pass', 'warn', 'fail'].map(f => ( ))}
{filtered.map(c => (
{c.status === 'pass' ? '✅' : c.status === 'warn' ? '⚠️' : '❌'}
{c.name}
{c.desc}
))}
); }