') }) test('sections use aria-labelledby with h2 ids', () => { const out = exportPage(makePage()) expect(out.html).toContain('
') expect(out.html).toContain('

FAQ

') expect(out.html).toContain('
') expect(out.html).toContain('

Features

') expect(out.html).toContain('
') expect(out.html).toContain('

Testimonials

') }) test('hero image alt derives from heading', () => { const out = exportPage(makePage()) expect(out.html).toContain('

Welcome

') expect(out.html).toMatch(/]*src="https:\/\/example\.com\/img\.png"[^>]*alt="Welcome"[^>]*\/>/) }) test('responsive and a11y CSS tokens exist', () => { const out = exportPage(makePage()) expect(out.css).toMatch(/@media \(max-width: 640px\)/) expect(out.css).toMatch(/@media \(prefers-reduced-motion: reduce\)/) expect(out.css).toMatch(/a\.skip-link:focus/) expect(out.css).toMatch(/outline: 3px solid/) }) })