Bird
Raised Fist0
HTMLmarkup~5 mins

Semantic vs non-semantic elements in HTML - Quick Revision & Key Differences

Choose your learning style10 modes available
Recall & Review
beginner
What is a semantic HTML element?
A semantic HTML element clearly describes its meaning to both the browser and the developer. For example, <header> means the top section of a page, and <article> means a piece of content. It helps with accessibility and SEO.
Click to reveal answer
beginner
Give an example of a non-semantic HTML element.
Examples of non-semantic elements are <div> and <span>. They do not tell anything about their content or purpose. They are used mainly for styling or grouping content.
Click to reveal answer
beginner
Why should we prefer semantic elements over non-semantic ones?
Semantic elements improve accessibility for screen readers, help search engines understand the page, and make the code easier to read and maintain.
Click to reveal answer
beginner
Which element is semantic: <section> or <div>?
<section> is semantic because it defines a section of content with meaning. <div> is non-semantic and just groups content without meaning.
Click to reveal answer
intermediate
How do semantic elements help keyboard navigation?
Semantic elements provide structure that assistive technologies use to help users navigate with a keyboard, making websites easier to use for people with disabilities.
Click to reveal answer
Which HTML element is semantic?
A<span>
B<article>
C<div>
D<b>
What is the main benefit of using semantic elements?
AThey reduce file size
BThey make the page load faster
CThey allow custom fonts
DThey improve website accessibility and SEO
Which element is non-semantic?
A<div>
B<nav>
C<header>
D<footer>
Why is <section> considered semantic?
AIt groups related content with meaning
BIt styles text bold
CIt creates a clickable button
DIt adds images
Which is NOT a reason to use semantic elements?
ABetter code readability
BImproved SEO
CFaster internet speed
DEnhanced accessibility
Explain the difference between semantic and non-semantic HTML elements.
Think about how elements describe their content and why that matters.
You got /5 concepts.
    Describe how semantic elements improve website accessibility and SEO.
    Consider how meaning helps machines and people understand the page.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which of the following is a semantic HTML element?
      easy
      A. <article>
      B. <div>
      C. <span>
      D. <b>

      Solution

      1. Step 1: Understand semantic elements

        Semantic elements clearly describe their meaning, like <article> which represents an independent piece of content.
      2. Step 2: Identify non-semantic elements

        <div> and <span> are generic containers without meaning. <b> is a presentational element without semantic meaning.
      3. Final Answer:

        <article> -> Option A
      4. Quick Check:

        Semantic element = <article> [OK]
      Hint: Semantic tags describe content meaning, non-semantic don't [OK]
      Common Mistakes:
      • Confusing <div> as semantic
      • Thinking <span> is semantic
      • Thinking <b> is semantic
      2. Which of these is the correct syntax for a semantic header element in HTML5?
      easy
      A. <heading>Welcome</heading>
      B. <head>Welcome</head>
      C. <header>Welcome</header>
      D. <head><title>Welcome</title></head>

      Solution

      1. Step 1: Recognize semantic header tag

        <header> is the semantic tag for page or section headers.
      2. Step 2: Differentiate from <head>

        <head> contains metadata, not visible content. <heading> is not a valid HTML tag.
      3. Final Answer:

        <header>Welcome</header> -> Option C
      4. Quick Check:

        Semantic header = <header> [OK]
      Hint: Use <header> for visible headers, not <head> [OK]
      Common Mistakes:
      • Using <head> for visible content
      • Writing invalid <heading> tag
      • Confusing metadata with page content
      3. What will the browser display when rendering this HTML snippet?
      <div><h1>Title</h1><p>Paragraph</p></div>

      Choose the best description.
      medium
      A. Only the paragraph 'Paragraph' is shown
      B. A heading 'Title' and a paragraph 'Paragraph' inside a generic container
      C. An error because <div> cannot contain <h1>
      D. The heading 'Title' is bold but paragraph is hidden

      Solution

      1. Step 1: Understand <div> usage

        <div> is a non-semantic container that can hold any flow content including headings and paragraphs.
      2. Step 2: Check rendering of heading and paragraph

        The <h1> will display as a large bold heading, and <p> as a paragraph below it, both visible inside the container.
      3. Final Answer:

        A heading 'Title' and a paragraph 'Paragraph' inside a generic container -> Option B
      4. Quick Check:

        Non-semantic container shows all content [OK]
      Hint: Div can hold headings and paragraphs without errors [OK]
      Common Mistakes:
      • Thinking div restricts content types
      • Assuming heading is hidden
      • Believing invalid nesting error occurs
      4. Identify the error in this HTML code:
      <section><div>Content</section></div>
      medium
      A. The tags are correctly nested with no errors
      B. The <section> tag cannot contain a <div>
      C. The <section> tag is missing a closing tag
      D. The <div> tag is not closed before </section>

      Solution

      1. Step 1: Check tag nesting order

        The <div> opens inside <section> but closes after </section>, breaking proper nesting.
      2. Step 2: Understand correct nesting rules

        Tags must close in reverse order of opening. Here, <div> should close before </section>.
      3. Final Answer:

        The <div> tag is not closed before </section> -> Option D
      4. Quick Check:

        Proper nesting = close inner tags first [OK]
      Hint: Close inner tags before outer tags to avoid nesting errors [OK]
      Common Mistakes:
      • Ignoring tag closing order
      • Thinking div can't be inside section
      • Missing closing tags
      5. You want to improve accessibility and SEO by replacing non-semantic tags with semantic ones. Which change is best for this code?
      <div><div>Main content</div><div>Footer info</div></div>
      hard
      A. Replace outer <div> with <main> and inner footer <div> with <footer>
      B. Replace all <div> with <section>
      C. Replace outer <div> with <article> and inner footer <div> with <aside>
      D. Keep all <div> tags because semantic tags are optional

      Solution

      1. Step 1: Identify semantic tags for main content and footer

        <main> is the semantic tag for main page content, and <footer> is for footer information.
      2. Step 2: Replace non-semantic <div> with semantic tags

        Changing the outer <div> to <main> and the footer <div> to <footer> improves meaning and accessibility.
      3. Final Answer:

        Replace outer <div> with <main> and inner footer <div> with <footer> -> Option A
      4. Quick Check:

        Use <main> and <footer> for better semantics [OK]
      Hint: Use <main> for main content, <footer> for footer info [OK]
      Common Mistakes:
      • Using <article> instead of <main> for main content
      • Replacing all divs with <section> unnecessarily
      • Ignoring semantic improvements
      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