Responsive Semantic Landing Page with Accessible Client‑Side Contact Form

Computer Science

Responsive Semantic Landing Page with Accessible Client‑Side Contact Form

HTML5CSS3 (Flexbox, Grid)JavaScript (ES6)

Responsive Semantic Landing Page with Accessible Client‑Side Contact Form

Build a production‑ready, mobile‑first landing page using semantic HTML, responsive CSS, and vanilla JavaScript validation. The project ends as a static site you can host on GitHub Pages, showcasing modern accessibility practices and responsive design.

5 modules10 lessonsComputer ScienceHTML5CSS3 (Flexbox, Grid)JavaScript (ES6)GitGitHub Pages

What you learn by building this

  • Write semantic HTML5 markup for a landing page and contact form
  • Apply mobile‑first responsive design with Flexbox and CSS Grid
  • Develop vanilla JavaScript validation that meets WCAG 2.1 form accessibility criteria
  • Display dynamic success and error messages using ARIA live regions
  • Publish a static website to GitHub Pages

Learning Journey

1

Project Foundations

2 lessons

Set up the file structure and lay out the semantic HTML skeleton.

2

Responsive Layout

2 lessons

Build a mobile‑first layout and enhance it for larger screens.

3

Accessible Contact Form Markup

2 lessons

Create a fully accessible contact form using proper HTML and ARIA attributes.

4

Client‑Side Validation

2 lessons

Add JavaScript that validates input fields and announces errors accessibly.

5

Feedback & Deployment

2 lessons

Show success feedback, reset the form, and publish the site.

Public lesson

Create project folder and semantic index.html

Set up the project’s semantic starting point

You already know how to structure a document semantically. This time, make a clean project folder that you can build on for the React app.

Tasks

1. Create the project folder

Open your terminal and run:

mkdir react-fullstack-app
cd react-fullstack-app
touch index.html

Tasks

Confirm you are in the new folder:

pwd
ls

You should see the project path and an index.html file.

Tasks

2. Add the document structure

Open index.html. Start with this skeleton, then fill in the missing semantic sections:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>__________</title>
  </head>

  <body>
    <!-- Add the page header here -->
    <header>
      <!-- Add a short site or project name -->
      <h1>__________</h1>

      <!-- Add navigation with at least two links -->
      <nav aria-label="__________">
        <a href="__________">__________</a>
        <a href="__________">__________</a>
      </nav>
    </header>

    <!-- Add the page's primary content here -->
    <main>
      <!-- Create a placeholder hero section -->
      <section>
        <h2>__________</h2>
        <p>__________</p>
        <a href="__________">__________</a>
      </section>
    </main>

    <!-- Add a simple footer -->
    <footer>
      <p>__________</p>
    </footer>
  </body>
</html>

Use content that fits the app you plan to build. The links do not need to lead to finished pages yet, but their href values should be meaningful, such as #features or #contact.

Tasks

3. Check the result in a browser

Open index.html in your browser.

Check that:

  • the project name appears at the top;
  • both navigation links are visible;
  • the hero heading, paragraph, and link appear inside the main content;
  • the footer appears below the main content;
  • the browser tab shows your chosen title.

Tasks

Then inspect the page:

  1. Right-click the page and choose Inspect.
  2. Open the Elements panel.
  3. Confirm the nesting is:
body
├── header
│   ├── h1
│   └── nav
├── main
│   └── section
└── footer

If the browser shows all four page regions and the inspector shows this structure, your semantic starting point is ready.

Course Outline

5 modules · 10 lessons

Project Foundations

Responsive Layout

Accessible Contact Form Markup

Client‑Side Validation

Feedback & Deployment

Learn by building your own version.

Remix this public project to open the workspace, follow the guided build, and let the AI mentor teach you through the work instead of doing it for you.