📖 Scenario: You are creating a simple webpage for a local bakery. The page should have a header, a navigation menu, a main section with a welcome message, and a footer with contact info.However, the initial HTML has some common mistakes that can cause problems in browsers or for people using assistive technology.
🎯 Goal: Fix the common HTML mistakes in the bakery webpage so it uses correct tags, proper nesting, and semantic structure. The page should be accessible and display correctly in browsers.
📋 What You'll Learn
Use semantic HTML5 elements like ,
Include with and sections
Add tags for charset and viewport inside
Use proper nesting of tags (no overlapping or missing closing tags)
Add accessible attributes like
Use or for emphasis instead of deprecated tags
Ensure the page title is inside tag
💡 Why This Matters
🌍 Real World
Webpages must be correctly structured and accessible to work well on all devices and for all users, including those using screen readers.
💼 Career
Understanding and fixing common HTML mistakes is essential for front-end developers and web designers to create professional, accessible websites.
Progress0 / 4 steps
1
Create the basic HTML structure
Write the basic HTML skeleton with <!DOCTYPE html>, <html lang="en">, <head>, and <body> tags. Inside <head>, add a <title> with the text "Local Bakery". Also add <meta charset="UTF-8"> and <meta name="viewport" content="width=device-width, initial-scale=1.0"> tags.
HTML
Hint
Start with the standard HTML5 document structure. The lang attribute helps screen readers. The meta tags set character encoding and make the page responsive.
2
Add semantic page sections
Inside the <body>, add a <header> with an <h1> that says "Welcome to Our Bakery". Then add a <nav> with an aria-label="Main navigation" attribute. Inside <nav>, add an unordered list <ul> with three list items <li> containing links <a> to #home, #menu, and #contact with text Home, Menu, and Contact respectively.
HTML
Hint
Use semantic tags for page sections. The aria-label on nav helps screen readers understand the menu purpose.
3
Add main content with proper tags
Below the <nav>, add a <main> section. Inside <main>, add a paragraph <p> that says "Freshly baked bread and pastries every day." Use <strong> tags to emphasize the word "Freshly".
HTML
Hint
The main tag holds the main content. Use strong to highlight important words instead of deprecated tags like b.
4
Add footer with contact information
At the bottom of the <body>, add a <footer> section. Inside it, add a paragraph <p> with the text "Contact us at " followed by an email link <a href="mailto:info@localbakery.com">info@localbakery.com</a>. Make sure all tags are properly closed and nested.
HTML
Hint
The footer usually contains contact info or copyright. Use mailto: links for email addresses.
Practice
(1/5)
1. Which of the following is a common mistake when writing HTML tags?
easy
A. Writing comments with <!-- comment -->
B. Using lowercase letters for tags
C. Adding spaces between attributes
D. Not closing tags properly, like forgetting </p>
Solution
Step 1: Understand proper tag closure
HTML tags like <p> must be closed with </p> to define content boundaries.
Step 2: Identify the mistake
Not closing tags properly breaks the page structure and can cause rendering issues.
Final Answer:
Not closing tags properly, like forgetting </p> -> Option D
Quick Check:
Close tags properly = A [OK]
Hint: Always match opening and closing tags exactly [OK]
Common Mistakes:
Forgetting to close tags
Self-closing tags without slash
Mismatched tag names
2. Which of these is the correct way to write an image tag with an alt attribute?
easy
A. <img src='cat.jpg' alt='cat'>
B. <img src="cat.jpg" alt=cat>
C. <img src=cat.jpg alt=cat>
D. <img src=cat.jpg alt='cat'>
Solution
Step 1: Check attribute quoting rules
HTML requires attribute values to be in quotes, either single or double quotes.
Step 2: Find the option with all attributes quoted
<img src='cat.jpg' alt='cat'> uses single quotes around both src and alt values correctly.
Final Answer:
<img src='cat.jpg' alt='cat'> -> Option A
Quick Check:
Attributes need quotes = C [OK]
Hint: Always put quotes around attribute values [OK]
Common Mistakes:
Missing quotes around attribute values
Mixing quote types incorrectly
Using invalid characters in attributes
3. What will the browser display when rendering this HTML snippet?
<div><p>Hello<div>World</p></div>
medium
A. Hello followed by World outside the paragraph
B. HelloWorld inside nested div and p tags correctly
C. Only Hello displayed, World ignored
D. A rendering error or broken layout
Solution
Step 1: Analyze tag nesting rules
A <div> cannot be inside a <p> tag because <p> cannot contain block elements like <div>.
Step 2: Understand browser correction behavior
The browser closes the <p> before the inner <div>, so "World" is outside the paragraph.
Final Answer:
Hello followed by World outside the paragraph -> Option A
Quick Check:
Invalid nesting moves content outside = A [OK]
Hint: Block tags can't go inside <p> tags [OK]
Common Mistakes:
Placing block elements inside <p>
Assuming browser ignores invalid nesting
Not closing tags properly
4. Identify the error in this HTML snippet:
<ul>
<li>Item 1
<li>Item 2</li>
</ul>
medium
A. Using <li> inside <ul> is invalid
B. Missing closing tag for first <li> element
C. The <ul> tag should be <ol>
D. The second <li> tag is self-closing incorrectly
Solution
Step 1: Check list item tags
Each <li> must be properly closed to separate list items.
Step 2: Identify missing closing tag
The first <li> is not closed, so the browser may merge both items incorrectly.
Final Answer:
Missing closing tag for first <li> element -> Option B
Quick Check:
Close all
tags properly = B [OK]
Hint: Close every <li> tag to separate list items [OK]
Common Mistakes:
Omitting closing
Confusing <ul> and <ol>
Incorrect nesting of list tags
5. You want to create a form with a label and input that is accessible and correct. Which snippet fixes the common mistake below?
<label>Name</label>
<input type="text" id="name">
hard
A. <label id="name">Name</label>\n<input type="text">
B. <label>Name<input type="text" id="name"></label>
C. <label for="name">Name</label>\n<input type="text" id="name">
D. <input type="text" id="name">\n<label>Name</label>
Solution
Step 1: Understand label-input association
Labels should be linked to inputs using the for attribute matching the input's id.
Step 2: Check options for correct association
<label for="name">Name</label>\n<input type="text" id="name"> uses for="name" on label and id="name" on input, making it accessible and correct.
Final Answer:
<label for="name">Name</label>\n<input type="text" id="name"> -> Option C
Quick Check:
Use for and id to link label and input = D [OK]
Hint: Use label's for attribute matching input's id [OK]
Common Mistakes:
Not linking label and input
Wrapping input inside label incorrectly
Using id on label instead of for
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.