Project
A multi-page site with no framework and no CSS library
A three-page site — hand-written HTML and CSS, no framework, no CSS library, no build step — that scores 100 on Lighthouse accessibility and is fully operable from the keyboard.
- Use the real elements. header, nav, main, article, footer, one h1 per page, headings that descend in order. Check each element's purpose in the MDN element reference before reaching for a div.
- Lay it out with modern CSS. Grid for the page, flexbox for components, custom properties for the palette and spacing scale,
clamp()for type. No float layouts and no breakpoint per device. - Make the navigation work without JavaScript. If it needs a menu toggle, that toggle is a real
<button>witharia-expanded, reachable by Tab, closed by Escape. - Prove the contrast. Every text-on-background pair through the WebAIM contrast checker at AA or better, plus a focus ring you designed deliberately rather than suppressed.
- Do a keyboard-only pass. Unplug the mouse and complete every task on the site. Add a skip link, and fix every place where focus order jumps or focus disappears entirely.
- Measure, then explain. Lighthouse on mobile: accessibility 100, performance above 95. Then list what the audit caught that you had not noticed — that list is the actual learning.
Scope guard: no framework, no Tailwind, no npm at all. Everything a framework will later do for you, do once by hand here.