Real Projects - Build Complete Websites ๐
Mentor's Note: Projects are where theory meets practice! Just as a chef learns by cooking real meals, you'll become a web developer by building actual websites! ๐๏ธโจ
๐ Educational Content: This comprehensive guide walks you through building real-world projects that demonstrate your HTML mastery.
๐ฏ Learning Objectivesโ
By the end of this lesson, students will be able to:
- Plan and structure complete website projects
- Build responsive layouts with semantic HTML5
- Implement navigation, forms, and interactive elements
- Create portfolio-worthy projects
- Apply best practices and accessibility standards
๐ The Scenario: From Student to Developer ๐โ
Mental Model for beginners: Think of projects as your graduation ceremony! Imagine you're transforming from HTML student to web developer... ๐
- Planning Phase:
<sitemaps>- Project blueprint - Structure:
<semantic>- HTML5 skeleton - Content:
<elements>- Building blocks - Styling:
<classes>- Visual design - Launch:
<deployment>- Go live! - The Result: Real websites in your portfolio! โ
๐ Project Development Overviewโ
Why Projects Matter:โ
- Practical Application: Apply theoretical knowledge
- Portfolio Building: Showcase your skills to employers
- Problem Solving: Learn to overcome real challenges
- Confidence Building: Prove you can build from scratch
- Career Ready: Demonstrate job-ready capabilities
๐๏ธ Project 1: Personal Portfolio Websiteโ
Project Overview:โ
Create a professional portfolio website to showcase your skills and projects.
Key Features:โ
- Hero section with introduction
- About section
- Skills showcase
- Projects gallery
- Contact form
- Responsive navigation
HTML Structure:โ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>John Doe - Web Developer Portfolio</title>
<meta name="description" content="Professional web developer portfolio showcasing projects and skills">
</head>
<body>
<header class="header">
<nav class="navigation">
<ul>
<li><a href="#home">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#skills">Skills</a></li>
<li><a href="#projects">Projects</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</header>
<main>
<section id="home" class="hero">
<h1>John Doe</h1>
<p>Full Stack Web Developer</p>
<a href="#contact" class="cta-button">Get In Touch</a>
</section>
<section id="about" class="about">
<h2>About Me</h2>
<p>Passionate developer with expertise in modern web technologies...</p>
</section>
<section id="skills" class="skills">
<h2>Technical Skills</h2>
<div class="skills-grid">
<div class="skill-item">
<h3>HTML5 & CSS3</h3>
<p>Advanced semantic markup and responsive design</p>
</div>
<div class="skill-item">
<h3>JavaScript</h3>
<p>Interactive web applications and APIs</p>
</div>
</div>
</section>
<section id="projects" class="projects">
<h2>Featured Projects</h2>
<div class="project-grid">
<article class="project-card">
<img src="project1.jpg" alt="E-commerce Website">
<h3>E-commerce Platform</h3>
<p>Full-stack online shopping experience</p>
<a href="#">View Project</a>
</article>
</div>
</section>
<section id="contact" class="contact">
<h2>Contact Me</h2>
<form class="contact-form">
<div class="form-group">
<label for="name">Name</label>
<input type="text" id="name" name="name" required>
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" id="email" name="email" required>
</div>
<div class="form-group">
<label for="message">Message</label>
<textarea id="message" name="message" required></textarea>
</div>
<button type="submit">Send Message</button>
</form>
</section>
</main>
<footer class="footer">
<p>© 2024 John Doe. All rights reserved.</p>
<div class="social-links">
<a href="#">LinkedIn</a>
<a href="#">GitHub</a>
<a href="#">Twitter</a>
</div>
</footer>
</body>
</html>
๐ช Project 2: Small Business Websiteโ
Project Overview:โ
Build a professional website for a local business or service.
Key Features:โ
- Business information and services
- Product/service showcase
- Customer testimonials
- Location and contact details
- Business hours
- Call-to-action buttons
HTML Structure:โ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Coffee House - Best Coffee in Town</title>
<meta name="description" content="Local coffee shop serving premium coffee and pastries">
</head>
<body>
<header>
<div class="logo">
<img src="logo.svg" alt="Coffee House Logo">
<h1>Coffee House</h1>
</div>
<nav>
<ul>
<li><a href="#menu">Menu</a></li>
<li><a href="#about">About</a></li>
<li><a href="#location">Location</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</nav>
</header>
<main>
<section class="hero">
<h2>Artisan Coffee Since 2020</h2>
<p>Experience the finest coffee in town</p>
<a href="#menu" class="cta-button">View Menu</a>
</section>
<section id="menu" class="menu">
<h2>Our Menu</h2>
<div class="menu-categories">
<div class="category">
<h3>Coffee</h3>
<table class="menu-table">
<thead>
<tr>
<th>Item</th>
<th>Description</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>Espresso</td>
<td>Rich, bold shot of espresso</td>
<td>$2.50</td>
</tr>
<tr>
<td>Cappuccino</td>
<td>Espresso with steamed milk foam</td>
<td>$4.00</td>
</tr>
</tbody>
</table>
</div>
</div>
</section>
<section id="about" class="about">
<h2>Our Story</h2>
<p>Founded in 2020, Coffee House brings together coffee lovers...</p>
<blockquote>
"We believe in serving not just coffee, but experiences."
<cite>- Sarah Johnson, Founder</cite>
</blockquote>
</section>
<section id="testimonials" class="testimonials">
<h2>What Our Customers Say</h2>
<div class="testimonial-grid">
<article class="testimonial">
<blockquote>"Best coffee in town! The atmosphere is amazing."</blockquote>
<cite>- Mike R.</cite>
</article>
</div>
</section>
<section id="location" class="location">
<h2>Visit Us</h2>
<address>
123 Main Street<br>
Downtown, City 12345<br>
<a href="tel:+1234567890">(123) 456-7890</a>
</address>
<div class="hours">
<h3>Business Hours</h3>
<table>
<tr>
<td>Monday - Friday</td>
<td>7:00 AM - 8:00 PM</td>
</tr>
<tr>
<td>Saturday - Sunday</td>
<td>8:00 AM - 9:00 PM</td>
</tr>
</table>
</div>
</section>
</main>
<footer>
<p>© 2024 Coffee House. All rights reserved.</p>
</footer>
</body>
</html>
๐ Project 3: Educational Blogโ
Project Overview:โ
Create a content-rich blog or educational website.
Key Features:โ
- Article listing and categorization
- Search functionality
- Author information
- Comment sections
- Newsletter signup
- Related articles
HTML Structure:โ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Learn Web Development - Educational Blog</title>
<meta name="description" content="Learn web development with comprehensive tutorials and guides">
</head>
<body>
<header>
<nav class="main-nav">
<div class="logo">
<h1>WebDev Learn</h1>
</div>
<ul>
<li><a href="#articles">Articles</a></li>
<li><a href="#tutorials">Tutorials</a></li>
<li><a href="#about">About</a></li>
<li><a href="#newsletter">Newsletter</a></li>
</ul>
<div class="search">
<input type="search" placeholder="Search articles...">
<button type="submit">Search</button>
</div>
</nav>
</header>
<main>
<section class="featured">
<article class="featured-article">
<img src="featured.jpg" alt="Featured article image">
<div class="content">
<h2>Complete Guide to HTML5 Semantic Elements</h2>
<p>Master modern HTML5 structure and best practices...</p>
<div class="meta">
<time datetime="2024-01-15">January 15, 2024</time>
<span>By Jane Smith</span>
<span>10 min read</span>
</div>
</div>
</article>
</section>
<section id="articles" class="articles">
<h2>Latest Articles</h2>
<div class="article-grid">
<article class="article-card">
<img src="article1.jpg" alt="Article thumbnail">
<h3>CSS Grid vs Flexbox: When to Use Which</h3>
<p>Understanding the differences and use cases...</p>
<div class="meta">
<time datetime="2024-01-14">January 14, 2024</time>
<span>5 min read</span>
</div>
<a href="#" class="read-more">Read More</a>
</article>
</div>
</section>
<section id="categories" class="categories">
<h2>Browse by Category</h2>
<ul class="category-list">
<li><a href="#html">HTML (15 articles)</a></li>
<li><a href="#css">CSS (23 articles)</a></li>
<li><a href="#javascript">JavaScript (31 articles)</a></li>
</ul>
</section>
<section id="newsletter" class="newsletter">
<h2>Stay Updated</h2>
<p>Get weekly web development tips and tutorials</p>
<form class="newsletter-form">
<div class="form-group">
<label for="email-newsletter">Email Address</label>
<input type="email" id="email-newsletter" name="email" required>
</div>
<button type="submit">Subscribe</button>
</form>
</section>
</main>
<aside class="sidebar">
<section class="about-author">
<img src="author.jpg" alt="Author photo">
<h3>About the Author</h3>
<p>Jane Smith is a senior web developer with 10+ years of experience...</p>
</section>
<section class="related-posts">
<h3>Related Posts</h3>
<ul>
<li><a href="#">Understanding CSS Specificity</a></li>
<li><a href="#">JavaScript ES6 Features</a></li>
</ul>
</section>
</aside>
<footer>
<p>© 2024 WebDev Learn. Educational content for developers.</p>
</footer>
</body>
</html>
๐ฎ Project 4: Interactive Game Pageโ
Project Overview:โ
Build an interactive browser-based game using HTML5 features.
Key Features:โ
- Game canvas and controls
- Score tracking
- Game instructions
- Leaderboard
- Sound effects
- Mobile compatibility
HTML Structure:โ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Memory Match Game</title>
<meta name="description" content="Test your memory with this interactive card matching game">
</head>
<body>
<header>
<h1>Memory Match Game</h1>
<div class="game-stats">
<div class="score">Score: <span id="score">0</span></div>
<div class="moves">Moves: <span id="moves">0</span></div>
<div class="timer">Time: <span id="timer">00:00</span></div>
</div>
</header>
<main>
<section class="game-container">
<div class="game-board" id="gameBoard">
{/* Game cards will be generated here */}
</div>
</section>
<section class="game-controls">
<button id="newGame">New Game</button>
<button id="pauseGame">Pause</button>
<select id="difficulty">
<option value="easy">Easy (4x3)</option>
<option value="medium">Medium (4x4)</option>
<option value="hard">Hard (6x4)</option>
</select>
</section>
<section class="leaderboard">
<h2>Top Scores</h2>
<table class="scores-table">
<thead>
<tr>
<th>Rank</th>
<th>Player</th>
<th>Score</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Alice</td>
<td>1500</td>
<td>2024-01-14</td>
</tr>
</tbody>
</table>
</section>
<section class="instructions">
<h2>How to Play</h2>
<ol>
<li>Click on any card to reveal its symbol</li>
<li>Click another card to find its match</li>
<li>Match all pairs to win the game</li>
<li>Complete in fewer moves for higher score</li>
</ol>
</section>
</main>
<footer>
<p>Built with HTML5, CSS3, and JavaScript</p>
</footer>
</body>
</html>
๐ฑ Project Development Best Practicesโ
Planning Phase:โ
- Define Goals: What should the website accomplish?
- Target Audience: Who will use this website?
- Content Strategy: What information needs to be presented?
- Feature List: What functionality is required?
- Technical Requirements: What technologies will be used?
Structure Phase:โ
- Create Sitemap: Plan page hierarchy
- Wireframes: Basic layout sketches
- HTML Outline: Semantic structure first
- Content Hierarchy: Proper heading structure
- Navigation Planning: User journey mapping
Development Phase:โ
- HTML First: Build semantic structure
- Mobile First: Responsive design approach
- Accessibility: Include ARIA labels and roles
- Performance: Optimize images and resources
- Testing: Cross-browser and device testing
๐ ๏ธ Project Implementation Checklistโ
Pre-Launch Checklist:โ
- Semantic HTML5 structure implemented
- Meta tags and SEO optimization
- Responsive design tested
- Accessibility features added
- Forms validated and styled
- Images optimized and alt text added
- Links tested and working
- Cross-browser compatibility checked
- Loading performance optimized
- Error handling implemented
Post-Launch Checklist:โ
- Website deployed successfully
- Analytics tracking installed
- Contact forms tested
- Social media integration working
- Backup system in place
- Security measures implemented
- User feedback collected
- Performance monitoring active
๐ฏ Practice Exercisesโ
Exercise 1: Portfolio Enhancementโ
Take the portfolio template and add:
- Downloadable resume feature
- Project filtering by technology
- Testimonials section
- Blog integration
Exercise 2: Business Website Expansionโ
Enhance the business website with:
- Online booking system
- Product gallery with filtering
- Customer review system
- Multi-language support
Exercise 3: Blog Platform Upgradeโ
Upgrade the blog with:
- Article search functionality
- User commenting system
- Social sharing buttons
- Dark mode toggle
Exercise 4: Game Featuresโ
Add to the game project:
- Multiple difficulty levels
- Sound effects and music
- Achievement system
- Social sharing of scores
โ Quick Quizโ
Test Your Knowledge:โ
-
What is the most important HTML element for SEO?
- A)
<div> - B)
<title> - C)
<span> - D)
<p>
- A)
-
Which semantic element is best for navigation?
- A)
<section> - B)
<nav> - C)
<header> - D)
<footer>
- A)
-
What attribute makes images accessible?
- A)
src - B)
title - C)
alt - D)
class
- A)
-
Which form attribute is required for validation?
- A)
name - B)
id - C)
required - D)
type
- A)
๐ก Common Mistakes to Avoidโ
Beginner Mistakes:โ
- Skipping Planning: Jumping into coding without a plan
- Ignoring Semantics: Using
<div>instead of semantic elements - Poor Structure: Not using proper heading hierarchy
- Missing Meta Tags: Forgetting SEO and viewport meta tags
- No Accessibility: Ignoring alt text and ARIA labels
Intermediate Mistakes:โ
- Overcomplicating: Adding unnecessary complexity
- Poor Performance: Not optimizing images and resources
- No Testing: Not checking cross-browser compatibility
- Ignoring Mobile: Not implementing responsive design
- Bad Forms: Not validating user input properly
๐ Real-World Examplesโ
Successful Project Examples:โ
- Portfolio Websites: Clean, professional showcases
- E-commerce Sites: Product-focused user experiences
- Educational Platforms: Content-rich, easy navigation
- Corporate Sites: Professional, trustworthy design
- Creative Portfolios: Unique, memorable experiences
What Makes Projects Successful:โ
- Clear purpose and goals
- User-centered design
- Clean, semantic code
- Fast loading times
- Mobile responsiveness
- Accessibility compliance
- Regular updates and maintenance
๐ Next Stepsโ
After Completing These Projects:โ
- Build Your Own: Create unique projects from scratch
- Add JavaScript: Make sites interactive and dynamic
- Learn CSS Frameworks: Bootstrap, Tailwind CSS
- Explore Backend: Node.js, PHP, or Python
- Deploy Websites: Learn hosting and domain management
- Join Communities: GitHub, Stack Overflow, dev.to
Continuous Learning:โ
- Follow web development blogs
- Participate in coding challenges
- Contribute to open source projects
- Attend web development meetups
- Take advanced courses and certifications
๐ Conclusionโ
Congratulations! You've now learned how to build complete, professional websites using HTML. These projects demonstrate your ability to:
- Plan and structure web projects effectively
- Implement semantic HTML5 for better SEO and accessibility
- Create responsive designs that work on all devices
- Build interactive features with forms and media
- Apply best practices for professional web development
Remember, every professional web developer started exactly where you are now. Keep building, keep learning, and most importantly, keep creating!
Happy Coding! ๐โจ
๐ Additional Resourcesโ
Project Inspiration:โ
- Awwwards - Web design inspiration
- Dribbble - UI/UX design ideas
- CodePen - Code examples and experiments
- GitHub - Open source projects
Development Tools:โ
- VS Code - Code editor
- Chrome DevTools - Debugging and testing
- Lighthouse - Performance testing
- WAVE - Accessibility testing
Learning Platforms:โ
- freeCodeCamp - Free coding courses
- MDN Web Docs - Comprehensive web documentation
- CSS-Tricks - CSS and web development tips
- Smashing Magazine - Web development articles
๐๏ธ Project Architecture Diagramsโ
Personal Portfolio Page Structureโ
Project Skill Levelsโ
๐ก More Project Ideasโ
๐ข Beginner Projectsโ
-
Personal Bio Page โ Create a single-page profile with your name, photo, hobbies, and favorite quotes. Practices: headings, paragraphs, images, lists, links.
-
Recipe Card โ Build a styled recipe page with ingredients list, step-by-step instructions, and a nutrition table. Practices: lists, tables, semantic structure, text formatting.
-
Favorite Things List โ Make a page showcasing your top 5 movies, books, or places with descriptions and images. Practices: ordered/unordered lists, media elements, hyperlinks.
๐ก Intermediate Projectsโ
-
Blog Layout โ Design a multi-section blog with article cards, sidebar, categories, and a comment placeholder. Practices: semantic layout (
<article>,<aside>,<section>), navigation, tables. -
Product Landing Page โ Build a marketing page for a product with features grid, pricing table, testimonials, and a sign-up form. Practices: forms, tables, media, call-to-action buttons.
-
Contact Form with Validation โ Create a full-featured contact page with name, email, subject, message, and client-side validation. Practices: form elements, input types, validation attributes.
๐ด Advanced Projectsโ
-
Multi-page Business Site โ Build a 4โ5 page business website (Home, About, Services, Contact, Blog) with consistent navigation. Practices: multi-page structure, semantic HTML, navigation menus, SEO meta tags.
-
E-commerce Catalog โ Create a product listing page with category filters, product cards, detailed product view, and shopping cart summary. Practices: complex tables, forms, structured data (microdata), Open Graph tags.
-
Portfolio + Blog โ Combine a professional portfolio with an integrated blog section featuring pagination and tags. Practices: advanced layout, i18n attributes, accessibility (ARIA), performance optimization.
๐ฃ Pro Projectsโ
-
Full Accessible + SEO Site โ Build a complete site scoring 100 on Lighthouse accessibility and SEO audits. Practices: WCAG compliance, ARIA roles, structured data, canonical URLs, sitemaps.
-
PWA-ready Page โ Create a progressive web app page with offline support, manifest, and service worker registration. Practices:
<link rel="manifest">, meta theme-color, offline fallback markup. -
Component Library โ Design a living style guide page documenting reusable HTML components (cards, buttons, modals, forms) with usage examples. Practices: Web Components,
<template>,<slot>, shadow DOM, documentation patterns.
๐ Project Briefs with Acceptance Criteriaโ
Mentor's Note: Each project below includes clear acceptance criteria โ treat these as your specification! Checking off every box ensures you've built a complete, production-ready project. โ
Project Pipelineโ
1. ๐ข Personal Portfolio Page โ Beginnerโ
Level: Beginner
Scenario: You're a fresh developer applying for internships. A recruiter asks for a link to your portfolio. You need a clean, single-page site that shows who you are, what you know, and how to reach you.
Acceptance Criteria:
- Page has a proper
<!DOCTYPE html>and<html lang="en"> -
<head>includes<meta charset="UTF-8">,<meta name="viewport">, and a unique<title> - Semantic
<header>,<nav>,<main>,<section>, and<footer>are used - Navigation links scroll smoothly to their corresponding sections
- At least one
<img>with meaningfulalttext (your photo or avatar) - Contact section includes a
<form>with name, email, and message fields - Social/profile links (
<a>) open in a new tab withtarget="_blank"andrel="noopener" - HTML validates with zero errors on W3C Validator
HTML Skills Practiced: <!DOCTYPE> ยท <head> & <meta> ยท semantic layout elements ยท navigation with <nav> ยท forms & input types ยท images & alt text ยท links & target attribute
Bonus Challenge: Add a dark mode toggle using a <button> and CSS class toggling.
2. ๐ก Blog Layout โ Beginner-Intermediateโ
Level: Beginner-Intermediate
Scenario: A friend runs a tech blog and wants you to build the HTML structure for their new site. They need a homepage that displays article previews, a sidebar with categories, and a working newsletter signup form.
Acceptance Criteria:
- Blog homepage uses
<header>,<nav>,<main>,<aside>, and<footer> - Article previews are wrapped in
<article>with<h2>titles and<time>elements - Sidebar (
<aside>) contains a category list (<ul>) and an "About" section - At least one
<section>groups featured or latest posts - Newsletter form includes
<label>connected to<input type="email">viafor/id - Each article preview links to a placeholder
#with "Read more" text -
<footer>contains copyright info and social links - All heading levels follow a logical hierarchy (
<h1>โ<h2>โ<h3>, no skipping)
HTML Skills Practiced: <article> ยท <aside> ยท <time> ยท heading hierarchy ยท forms & labels ยท lists ยท semantic grouping
Bonus Challenge: Add a search bar in the <nav> using <input type="search"> with a submit button.
3. ๐ Product Landing Page โ Intermediateโ
Level: Intermediate
Scenario: A startup is launching a new productivity app. They need a persuasive landing page that hooks visitors with a hero section, sells features in a grid, displays pricing, and captures leads.
Acceptance Criteria:
- Hero section has a main heading (
<h1>), supporting tagline (<p>), and a prominent call-to-action (<a>styled as button) - Features section uses a grid of
<article>or<div>cards with<h3>headings - Pricing table is built with semantic
<table>,<thead>,<tbody>, and<th>scope attributes - Testimonials section uses
<blockquote>with<cite>for attribution - Lead capture form includes fields for name, email, and a select dropdown (plan choice)
- Page includes Open Graph meta tags (
og:title,og:description,og:image) - All icons/illustrations have
alttext (decorative images getalt="") - A sticky
<nav>lets users jump between sections without scrolling to top
HTML Skills Practiced: <blockquote> & <cite> ยท <table> with scope ยท Open Graph meta tags ยท form <select> & <option> ยท CTA links ยท decorative vs. meaningful images
Bonus Challenge: Add a "Compare Plans" section using a second <table> that highlights feature differences across tiers.
4. ๐ต Business Website โ Intermediate-Advancedโ
Level: Intermediate-Advanced
Scenario: A local bakery wants an online presence. They need a multi-section site that tells their story, shows their menu, displays a photo gallery, lists customer reviews, and makes it easy to get in touch or find their location.
Acceptance Criteria:
- Site includes
<header>with logo (<img>) and full navigation menu (<nav>with nested<ul>) - Hero section features a background image (or
<img>) and a headline - About section uses
<h2>, paragraphs, and a<blockquote>with a founder testimonial - Menu/Products section uses a
<table>with<thead>,<tbody>, and proper<th>scoping - Gallery section displays at least 4 images, each with descriptive
alttext - Contact section includes
<address>with physical address, phone (<a href="tel:...">), and email (<a href="mailto:...">) - Business hours are presented in a structured
<table>or<dl>(description list) - Footer contains copyright, back-to-top link, and schema.org
ItemListorLocalBusinessstructured data viaitemscope/itemtype
HTML Skills Practiced: <address> ยท tel: & mailto: links ยท <dl> / <dt> / <dd> ยท <table> with complex structure ยท structured data (microdata) ยท image galleries ยท <blockquote> with <cite>
Bonus Challenge: Add a Google Maps <iframe> embed in the contact section.
5. ๐ฃ Accessible & SEO-Optimized Article โ Advancedโ
Level: Advanced
Scenario: You've been hired as an HTML accessibility consultant for a major news publication. Your task is to build a single article page that scores 100 on both Lighthouse Accessibility and SEO audits.
Acceptance Criteria:
- Page uses
langattribute matching the content language; includesdirif RTL - Heading hierarchy is strict: one
<h1>, followed by<h2>for sections,<h3>for subsections - All images have meaningful
alttext; complex images (charts) get a long description viaaria-describedby - Navigation and interactive elements have visible focus indicators and appropriate ARIA labels (
aria-label,aria-current="page") - Tables include
<caption>,<thead>,<tbody>, andscopeattributes - Forms (comment section) use
<fieldset>and<legend>for grouping; each input has an associated<label> - Open Graph (
og:) and Twitter Card (twitter:) meta tags are present and correct - Structured data (JSON-LD or microdata) for
Articleschema type is included
HTML Skills Practiced: ARIA attributes (aria-label, aria-describedby, aria-current) ยท <fieldset> & <legend> ยท JSON-LD / microdata ยท <caption> & scope ยท Twitter Card meta tags ยท focus management markup
Bonus Challenge: Add a "Skip to main content" link as the first focusable element on the page.
6. ๐ด Full E-commerce Catalog Page โ Proโ
Level: Pro
Scenario: A fashion retailer is launching their online store. They need a comprehensive catalog page with product filtering, a detailed product view, a shopping cart summary table, and checkout form โ all built with semantic, accessible, and SEO-optimized HTML.
Acceptance Criteria:
- Page uses full semantic structure:
<header>,<nav>,<main>, and<footer>with meaningful ARIA landmarks - Product listing uses
<article>for each product card with<h3>product names,<figure>/<figcaption>for images, and<del>/<ins>for sale pricing - Category filter form uses
<fieldset>with<legend>and<input type="checkbox">or<radio>elements with proper labels - Product detail view (if single product) includes
<dl>for specifications (size, color, material) - Shopping cart section uses a
<table>with<thead>,<tbody>,<tfoot>, and summary row; includes<th>withscope="col"andscope="row" - Checkout form includes
autocompleteattributes, appropriateinputtypes (tel,email,text,number), andrequired/patternvalidation - Open Graph (
og:) product meta tags, Twitter Cards, andProductschema (JSON-LD) are implemented - All interactive controls work with keyboard navigation (Tab, Enter, Escape) and have visible focus styles
HTML Skills Practiced: <figure> & <figcaption> ยท <del> & <ins> ยท <dl> / <dt> / <dd> ยท <fieldset> & <legend> ยท <table> with <tfoot> ยท autocomplete attributes ยท input types (tel, number, email) ยท JSON-LD for Product schema ยท ARIA landmarks
Bonus Challenge: Add a breadcrumb navigation (<nav aria-label="Breadcrumb">) with itemscope / itemtype="https://schema.org/BreadcrumbList" microdata.