Chapter practice task
Build a semantic contact page with a working form layout
- Create contact.html with a form: name, email, project type (select) and message.
- Give every input a <label> and the right type, and mark the required fields.
- Wrap your menu in <nav>, the top area in <header> and the copyright in <footer>.
- Put the unique content of each page inside one <main>.
- Test the form with the keyboard only, using Tab and Enter.
By the end of this chapter
- You can build accessible forms with labels and built-in validation
- You know the difference between <section>, <article> and <div>
- Your pages now have a clear, semantic structure
Quick answers for this chapter
Why doesn’t my form send email?
HTML can’t send email by itself. You need a server script or a form service to receive the data.
Do semantic tags change how the page looks?
Not really. They change what the page means to browsers, screen readers and search engines.
Should I use a placeholder instead of a label?
No. Placeholders disappear as you type. Always use a visible label.