Bird
Raised Fist0
HTMLmarkup~20 mins

Clean HTML structure - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
HTML Structure Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Identify the semantic element for main content
Which HTML5 semantic element is best used to wrap the main content of a webpage for better structure and accessibility?
A<section>
B<main>
C<div>
D<article>
Attempts:
2 left
💡 Hint
Think about the element that clearly defines the primary content of the page.
📝 Syntax
intermediate
1:30remaining
Find the error in this HTML snippet
What is wrong with this HTML snippet?
<header>
  <h1>Welcome</h1>
  <nav>
    <ul>
      <li>Home</li>
      <li>About</li>
    </ul>
  </nav>
</header>
AThe first &lt;li&gt; tag is not closed properly.
BThe &lt;ul&gt; tag is missing a closing tag.
CThe &lt;nav&gt; element cannot be inside &lt;header&gt;.
DThe &lt;h1&gt; tag should be inside &lt;nav&gt;.
Attempts:
2 left
💡 Hint
Check if all tags have matching closing tags.
❓ rendering
advanced
1:30remaining
What will the browser display?
Given this HTML code:
<section>
  <h2>Title</h2>
  <p>Paragraph 1</p>
  <p>Paragraph 2</p>
</section>

What will the browser show visually?
AParagraphs will appear before the heading.
BTwo headings 'Title' and 'Paragraph 1' with one paragraph 'Paragraph 2'.
COnly the heading 'Title' will display; paragraphs are hidden by default.
DA heading 'Title' followed by two separate paragraphs stacked vertically.
Attempts:
2 left
💡 Hint
Think about default block-level elements and their order.
❓ selector
advanced
1:30remaining
CSS selector for all direct children
Which CSS selector targets only the direct child <article> elements inside a <main> element?
Amain > article
Bmain article
Cmain + article
Dmain ~ article
Attempts:
2 left
💡 Hint
The '>' symbol means direct child in CSS selectors.
❓ accessibility
expert
2:00remaining
Best practice for accessible navigation landmarks
Which is the best way to make a navigation menu accessible and clearly identified by screen readers?
AUse a &lt;section&gt; element with a heading but no ARIA labels.
BUse a &lt;div&gt; with a class 'nav' and no ARIA attributes.
CUse a &lt;nav&gt; element with an aria-label describing the menu purpose.
DUse a &lt;nav&gt; element but hide it visually with CSS.
Attempts:
2 left
💡 Hint
Screen readers rely on landmarks and labels to identify page regions.

Practice

(1/5)
1. Which HTML tag is best to use for the main content of a webpage to keep the structure clean and semantic?
easy
A. <span>
B. <div>
C. <section>
D. <main>

Solution

  1. Step 1: Understand semantic tags purpose

    The <main> tag is designed to hold the main content of a page, making it clear and meaningful.
  2. Step 2: Compare with other tags

    While
    and <section> can group content, <main> specifically indicates the primary content, improving clarity for users and search engines.
  3. Final Answer:

    <main> -> Option D
  4. Quick Check:

    Semantic main content = <main> [OK]
Hint: Use <main> for main content, not generic <div> or <span> [OK]
Common Mistakes:
  • Using <div> instead of semantic <main>
  • Confusing <section> with main content
  • Using <span> which is inline, not structural
2. Which of the following is the correct way to declare the character set in a clean HTML document?
easy
A.
B.
C.
D.

Solution

  1. Step 1: Check correct charset attribute value

    The standard and correct value for UTF-8 encoding is 'UTF-8' with a hyphen and uppercase letters.
  2. Step 2: Validate syntax correctness

    The meta tag must be written as exactly for browsers to recognize it properly.
  3. Final Answer:

    <meta charset='UTF-8'> -> Option A
  4. Quick Check:

    Correct charset syntax = <meta charset='UTF-8'> [OK]
Hint: Use exact 'UTF-8' spelling with hyphen in meta charset [OK]
Common Mistakes:
  • Writing 'utf8' without hyphen
  • Using lowercase or missing hyphen
  • Incorrect attribute name or missing quotes
3. What will the browser display when rendering this HTML snippet?
<!DOCTYPE html>
<html lang='en'>
<head>
  <meta charset='UTF-8'>
  <title>Test</title>
</head>
<body>
  <header><h1>Welcome</h1></header>
  <main><p>Hello World</p></main>
  <footer><p>Footer text</p></footer>
</body>
</html>
medium
A. Page with header 'Welcome', paragraph 'Hello World', and footer 'Footer text'
B. Page with only 'Hello World' text
C. Page with header and footer but no main content
D. Blank page due to missing body tag

Solution

  1. Step 1: Identify semantic tags and their content

    The header contains an h1 with 'Welcome', main has a paragraph 'Hello World', and footer has 'Footer text'.
  2. Step 2: Understand browser rendering of semantic tags

    All these tags are valid and will display their content in order on the page.
  3. Final Answer:

    Page with header 'Welcome', paragraph 'Hello World', and footer 'Footer text' -> Option A
  4. Quick Check:

    Semantic tags show all content correctly [OK]
Hint: Semantic tags display their content in order on the page [OK]
Common Mistakes:
  • Assuming main content is hidden
  • Thinking body tag is missing
  • Ignoring footer content display
4. Identify the error in this HTML snippet that breaks clean structure:
<html>
<head>
  <title>Page</title>
  <meta name='viewport' content='width=device-width, initial-scale=1.0'>
</head>
<body>
  <h1>Hello</h2>
  <section>Content here</section>
</body>
</html>
medium
A. Missing charset meta tag
B. Section tag cannot be inside body
C. Mismatched closing tag: </h2> instead of </h1>
D. Viewport meta tag is incorrectly placed

Solution

  1. Step 1: Check tag matching in body content

    The opening tag is <h1> but the closing tag is </h2>, which is incorrect and breaks HTML structure.
  2. Step 2: Verify other tags and meta placement

    The viewport meta tag is correctly placed in head, and section is valid inside body. Missing charset is not a structural error.
  3. Final Answer:

    Mismatched closing tag: </h2> instead of </h1> -> Option C
  4. Quick Check:

    Matching tags must open and close the same [OK]
Hint: Match opening and closing tags exactly to avoid errors [OK]
Common Mistakes:
  • Ignoring mismatched tags
  • Thinking meta tags cause structure errors
  • Believing section can't be inside body
5. You want to create a clean HTML page that is accessible and responsive. Which combination of elements and meta tags is best practice?
hard
A. <!DOCTYPE html>, <html>, <meta charset='utf8'>, <div> for all content, no viewport meta
B. <!DOCTYPE html>, <html lang='en'>, <meta charset='UTF-8'>, <meta name='viewport' content='width=device-width, initial-scale=1.0'>, semantic tags like <header>, <main>, <footer>
C. <html lang='en'>, no doctype, <span> for layout, <meta charset='UTF-8'> only
D. <!DOCTYPE html>, <html lang='en'>, no meta tags, <section> for all content

Solution

  1. Step 1: Identify required meta tags for clean structure

    Using <meta charset='UTF-8'> and viewport meta ensures correct character encoding and responsive design.
  2. Step 2: Use semantic tags and language attribute

    Including <html lang='en'> and semantic tags like <header>, <main>, <footer> improves accessibility and clarity.
  3. Final Answer:

    <!DOCTYPE html>, <html lang='en'>, <meta charset='UTF-8'>, <meta name='viewport' content='width=device-width, initial-scale=1.0'>, semantic tags like <header>, <main>, <footer> -> Option B
  4. Quick Check:

    Best practice = doctype + lang + charset + viewport + semantic tags [OK]
Hint: Always include doctype, lang, charset, viewport, and semantic tags [OK]
Common Mistakes:
  • Omitting doctype or lang attribute
  • Using non-semantic tags for all content
  • Missing viewport meta for responsiveness
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard