A website can work perfectly and still feel unfinished.
The pages load, buttons click, API responds. That used to be enough for me. Ship it, move on, pretend the missing focus state is a future task.
The trouble is that users notice the gaps even when they never name them. A link that jumps with no transition. A keyboard focus ring that vanished in a CSS reset. A mobile page that shifts as images arrive.
Nothing crashes. The site just feels a little careless.
CSS Is Part of the Experience
The small details sit between intention and action. A restrained hover state tells someone a link is interactive. A visible focus indicator tells a keyboard user where they are. WCAG 2.2’s Focus Visible guidance treats that indicator as a basic requirement for keyboard-operable interfaces.
Even ::selection colour and the scrollbar belong to the interface. I don’t mean turning the page into a themed operating system. A little alignment is enough. The browser can still behave like a browser; it just doesn’t need to look like three unrelated plugins assembled the brand.
Lighthouse Made the Habits Less Optional
I used to treat Lighthouse as a scoreboard: green meant good, red meant later. That wasn’t a useful workflow. Chrome’s Lighthouse documentation describes its audits as indicators for what to improve across performance, accessibility and SEO.
The useful fixes are usually boring: size images properly, reserve space for late content, remove unused JavaScript, and test the real mobile layout. Images and embeds without dimensions can move content after it appears, creating the sort of layout shift web.dev recommends fixing.
I now run Lighthouse in a fresh incognito window, then open the page on a phone. That catches both the lab result and the bit where a button has quietly wandered off-screen.
Finished Means Considerate
Accessibility isn’t a later layer to add once the launch dust settles. Semantic HTML, usable buttons, visible focus, sensible contrast and prefers-reduced-motion are basic defaults.
They also tend to make the code simpler, which is a nice bonus for anyone who has maintained a div pretending to be a button.
Mobile exposes what desktop politely hides: oversized images, slow fonts, layout shifts and JavaScript that exists because nobody deleted it.
The point isn’t to polish every pixel into a museum exhibit.
Features get a site working. Attention makes it feel finished.