Skip to content
HTML Validation using Mozilla's HTML5 Validator instance
Python JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
.npmignore Allow CLI in Node by not ignoring May 23, 2015

html5-lint - HTML Validation using Mozilla's HTML5 Validator instance

This is a node.js and Python front-end to the Mozilla Labs' HTML Validator Web Service, located at It was setup in order to be used in the build system of various Mozilla projects, without spamming the main validator (i.e., --see You can read more about the validator at

You can and should use it in your own Mozilla project's build system in order to automatically check your HTML for errors.

Usage - node.js

The html5-lint module can be installed via npm:

$ npm install html5-lint

Once installed, it can be used like so:

var fs = require( 'fs' ),
    html5Lint = require( 'html5-lint' );

fs.readFile( 'index.html', 'utf8', function( err, html ) {
  if ( err )
    throw err;

  html5Lint( html, function( err, results ) {
    results.messages.forEach( function( msg ) {
      var type = msg.type, // error or warning
          message = msg.message;

      console.log( "HTML5 Lint [%s]: %s", type, message );

If you are using the gulp.js build system you may wish to use the gulp-html5-lint plugin. Documentation is available at

Usage - Python -h file.html

You can test the parser with the supplied files:

$ ./ -h good.html
The document is valid HTML5 + ARIA + SVG 1.1 + MathML 2.0 (subject to the utter previewness of this service).
$ ./ bad.html
Error: Start tag seen without seeing a doctype first. Expected


  • -h : force text/html
  • -x : force application/xhtml+xml
  • -g : GNU output
  • -e : errors only (no info or warnings)
  • --encoding=foo : declare encoding foo
  • --service=url : the address of the HTML5 validator (defaults to


  • error/warning filtering based on types, categories of errors/warnings
You can’t perform that action at this time.