Unclosed tags
Every element still open at the end of the document, reported with the line it opened on — not the line where you noticed the problem.
Find unclosed tags, broken nesting, duplicate IDs and missing alt attributes — each reported with the line number it came from.
Paste your markup and press Check. Problems appear underneath the panels in line order, with the formatted version on the right so you can see the structure at the same time.
Every element still open at the end of the document, reported with the line it opened on — not the line where you noticed the problem.
A </div> arriving while a <section> is still open. The tool names
both tags and both line numbers.
A closing tag with nothing open to close, usually left behind by a bad copy-paste or a deleted wrapper.
id valuesAn id must be unique per document. Duplicates break getElementById, fragment links and
label associations, and browsers will not warn you.
altA WCAG failure and the single most common accessibility defect on the web. Decorative images still need
alt="" — the attribute must be present, even if empty.
Missing doctype, missing lang on <html>, missing
<title>. Only checked when the input is a full document.
This is a structural checker, not a full conformance checker. It reads your markup the way a browser would and tells you where the structure disagrees with itself. It does not verify the complete HTML content model.
Things it will not catch: an <li> outside a list, a <div> inside a
<p>, an invalid attribute for a given element, or a malformed value in an attribute that
has a defined syntax. For those, the W3C Markup Validation Service at
validator.w3.org is the
reference implementation and worth running before a launch.
The trade-off is speed and privacy. This check is instant, needs no round trip, and your markup never leaves the page — which matters when the thing you are debugging is on an internal system or behind a login.
Problems are listed in line order, and the numbers refer to your original input, not the formatted output — so you can go straight back to your editor and jump to the line.
Work top to bottom. One missing closing tag early in a document frequently produces a cascade of complaints further down, because everything after it is nested one level deeper than you intended. Fix the first problem, re-run, and watch most of the rest disappear.
Line 12 — <ul> opened on line 12 is never closed.
Line 18 — Duplicate id "nav" — an id must be unique on the page (first used on line 4).
Line 31 — Image without an alt attribute.
Line 44 — Stray closing tag </div> — nothing is open here.
No, and it is not trying to be. The W3C service checks full conformance against the HTML specification and is the authority. This one checks structure — nesting, closure, uniqueness, a few accessibility basics — instantly and without sending your markup anywhere. Use this while you work; use the W3C one before you launch.
Because HTML allows some closing tags to be omitted. A <li> is implicitly closed by the next <li> or by the end of the list, so that is not an error. The same applies to <p>, <tr>, <td> and <option>. The checker applies the same rules a browser does, so it only flags closures that are genuinely missing.
Then the problem is not structural. Well-formed HTML can still be the wrong HTML. Check your CSS, check that the elements are the ones you meant to use, and check the rendered DOM in your browser's inspector — which is the tree after the browser has applied its own repairs.
Only the two easiest wins: missing alt attributes and a missing lang. Real accessibility testing needs a dedicated tool and, eventually, a person with a screen reader. Treat a clean result here as the floor, not the ceiling.
Indent and structure any HTML file.
OpenTurn minified HTML back into readable code.
OpenPretty-print HTML with the indent you want.
OpenStrip whitespace and comments from HTML.
OpenTidy exports from CMS and email builders.
OpenConvert HTML into React-ready JSX.
OpenLonger reading on formatting, indentation and minification.