WMW

HTML Validator

Free

Check HTML for unclosed tags, duplicate IDs, deprecated elements, and other common well-defined issues, verified with its own tag-matching parser, not a full W3C conformance validator.

Runs entirely in your browser. Your HTML is never uploaded anywhere.

This checks for common, well-defined HTML issues (unclosed tags, duplicate IDs, deprecated elements, missing alt text, and similar), it is not a full W3C HTML5 specification conformance validator.

Recent Activity

Visible to everyone. Last 20 uses across all visitors, newest first.

No activity yet. Be the first.

Comments (0)

Found this tool useful? Leave a comment, share a tip, or tell us how we can make it better.

Guest comments are reviewed before publishing. Sign in to post instantly.

No comments yet. Be the first to share your thoughts!

What this tool does

Paste HTML and this tool checks it for a focused set of common, well-defined issues: unclosed or mismatched tags, duplicate id attributes, missing alt text on images, deprecated/obsolete elements, invalid self-closing syntax on non-void elements, and missing DOCTYPE, lang, or charset declarations. Each issue links back to the line it was found on.

How It Works

A lightweight parser scans the HTML tag by tag, maintaining a stack of currently open elements, exactly how a browser tracks nesting internally, skipping over comments and the contents of <script> and <style> blocks. When a closing tag doesn't match what is on top of the stack, or the stack still has entries left over at the end, those are reported as unclosed or mismatched tags. Separately, regular expressions scan for duplicate id attributes, missing alt attributes on images, and deprecated element names.

Problems it solves

Frequently asked questions

›Is this the same as the W3C Markup Validator?

No. The official W3C validator checks full conformance against the HTML specification, hundreds of rules covering every element and attribute. This tool focuses on a smaller set of common, well-defined issues that are genuinely useful to catch early: unclosed tags, duplicate IDs, deprecated elements, and a few missing-attribute checks. For a full conformance report, use the W3C validator alongside this tool.

›Why does it flag missing DOCTYPE, lang, or charset as warnings instead of errors?

Browsers will still render a page without these, so they are not fatal, but they affect accessibility, internationalization, and how reliably the browser picks a rendering mode. They are flagged because fixing them is nearly always the right call, not because the page is broken without them.

›What counts as a "deprecated" tag here?

Elements the HTML5 specification explicitly marks as obsolete, like <center>, <font>, <marquee>, and <acronym>, usually because CSS now covers what they did, in a way that separates content from presentation. They still work in browsers for backward compatibility, but shouldn't be used in new code.

›Does it check content inside <script> or <style> tags?

No, their contents are skipped entirely during tag matching, since JavaScript or CSS can easily contain text that looks like an HTML tag (inside a string, for example) without actually being one, which would otherwise produce false positives.

›Why flag self-closing syntax like <div />?

In HTML (unlike XML or XHTML), a trailing slash on a non-void element like <div> or <span> is simply ignored, the element is NOT considered closed by it, and still needs its own separate closing tag. This is a common source of accidental unclosed-tag bugs when copying patterns from JSX or XML.

Related Tools