Accessibilityintermediate
Every input needs a label and every interactive thing needs to work from the keyboard — this is the difference between a demo and something a real person can use.
A toolbar of icon buttons, a decorative logo, a link that says "click here", and a status that changes without telling anybody. Give every one of them the right name, and give the decorative ones no name at all.
Everything meaningful has a name, everything decorative has none, and a change of state is announced.
Published in full, before you start — every point is one of these and there is nothing else.
Every input needs a label and every interactive thing needs to work from the keyboard — this is the difference between a demo and something a real person can use.
Using header, nav, main and section instead of div everywhere is what lets screen readers, search engines and your own future self understand the page.