Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including w3cjs with all npm packages installed. Try it out:

var w3cjs = require("w3cjs")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

w3cjs v0.4.0

A node.js module for using the w3c validator.

Build Status Dependencies


A node.js library for testing files or url's against the w3c html validator.


npm install w3cjs


var w3cjs = require('w3cjs');

var results = w3cjs.validate({
    file: 'demo.html', // file can either be a local file or a remote file
    //file: '',
    //input: '<html>...</html>',
    //input: myBuffer,
    output: 'json', // Defaults to 'json', other option includes html
    proxy: 'http://proxy:8080', // Default to null
    callback: function (res) {
        // depending on the output type, res will either be a json object or a html string

Example async testing with Mocha

var w3cjs = require('w3cjs');
describe('html validation', function(){
    it('index page should have no html errors', function(done){
            file: 'index.html',
            callback: function (error, res) {
                console.log(error || res);
                if (res && res.messages.length > 0 ) {
                    throw {error: 'html errors have been found', results: res};

Older versions < 0.2.0

w3c has changed their validator API to not include some old options. It will eventually be fully deprecated and everyone is advised to update to 0.3.0 of this module.

doctype: 'HTML5', // Defaults false for autodetect
charset: 'utf-8', // Defaults false for autodetect


RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free