Content · Web Development · HTML

HTML Practice: Fix Ten Beginner Markup Mistakes

Build this HTML project step by step with a starter example, detailed tasks, testing checks, and common mistakes.

1 views Published Oct 19, 2026 Updated Oct 19, 2026 Admin

Ready to build something with HTML? In this exercise you will find and fix ten deliberately broken pieces of markup: missing alt, duplicate ID, nested link, unlabelled input, malformed table, missing lang, unclosed p, wrong button type, empty link and invalid heading order. This is practice, so the goal is to understand your choices rather than just copy a finished design.

You can use a plain text editor and any current browser. Create a separate project folder and save your page as index.html unless the task calls for several pages. You do not need to finish every improvement on the first try. A small valid page is a better starting point than a complicated page that nobody can use.

What you will build


  • Organize the content into a clear page title and sections related to the assignment
  • Implement the feature described in the brief: find and fix ten deliberately broken pieces of markup: missing alt, duplicate ID, nested link, unlabelled input, malformed table, missing lang, unclosed p, wrong button type, empty link and invalid heading order
  • The first snippet demonstrates an accessibility failure
  • The corrected label is associated with the input using for and id

Step 1: Plan the page


Before writing code, list the content your visitor needs to understand or complete the task. Mark the page title, navigation, major sections, and interactive parts. If the visitor should fill in a form, decide which fields are truly necessary. If the visitor needs to compare data, identify your row and column headings first.

Step 2: Start with working HTML


The following starter example focuses on the central HTML technique used in this project. Type it into a file, run it in your browser, and then expand it to meet the requirements above. The starter is not presented as the entire finished assignment.

<!-- Invalid: a div cannot be nested inside a paragraph. -->
<p>This paragraph starts.
    <div>Wrongly nested block</div>
</p>

<!-- Correct: siblings inside a section. -->
<section>
    <p>This paragraph starts.</p>
    <div>Separate content block</div>
</section>

Step 3: Understand what the example does


  • The first snippet demonstrates an accessibility failure.
  • The corrected label is associated with the input using for and id.
  • A validator may miss usability problems; manual checks are necessary.

Some code marked Problem or Invalid is intentionally incorrect; do not reuse that code as a finished example.

Step 4: Finish the project


  1. Replace the example words and sample data with your own original content that fits the assignment.
  2. Add every section and control described in the project goals. Keep a clear heading order and meaningful labels.
  3. Save your work, open it in a browser, and check actual behavior with both mouse and keyboard.
  4. Check that linked files, images, form destinations, and IDs really exist; fix any broken paths or duplicate identifiers.
  5. If JavaScript, a web server, or another asset is necessary, add it explicitly or explain what remains a demonstration.

How to check your finished work


  • The page clearly communicates its topic without relying on decorative styling.
  • Headings are in a logical order, and important information remains readable at 200% zoom.
  • Links and buttons work with the keyboard and have understandable labels.
  • Images and media have appropriate accessible text alternatives; tabular data has proper header associations.
  • The project-specific requirement is met: Find and fix ten deliberately broken pieces of markup: missing alt, duplicate ID, nested link, unlabelled input, malformed table, missing lang, unclosed p, wrong button type, empty link and invalid heading order
  • Any HTML validator warnings or browser console problems have been reviewed and fixed.

Common Beginner Mistakes


  • Do not judge a page as correct just because it visually renders.
  • Skipping testing because the page looks correct at one window size.
  • Using placeholder data or missing resources in a project presented as complete.

Key Takeaways


  • The goal is to find and fix ten deliberately broken pieces of markup: missing alt, duplicate ID, nested link, unlabelled input, malformed table, missing lang, unclosed p, wrong button type, empty link and invalid heading order.
  • The first snippet demonstrates an accessibility failure.
  • A successful project is understandable, valid, accessible, and tested—not merely visually attractive.
Share this resourceSend this page to someone who may find it useful.