Giter Site home page Giter Site logo

willcode2surf / html_codesniffer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from squizlabs/html_codesniffer

0.0 2.0 0.0 5.05 MB

HTML_CodeSniffer is a client-side JavaScript application that checks a HTML document or source code, and detects violations of a defined coding standard. Comes with standards that cover the three conformance levels of the W3C's Web Content Accessibility Guidelines (WCAG) 2.0 and the U.S. Section 508 legislation.

Home Page: http://squizlabs.github.com/HTML_CodeSniffer/

License: BSD 3-Clause "New" or "Revised" License

CSS 5.57% JavaScript 91.82% Shell 0.11% HTML 2.01% CoffeeScript 0.48%

html_codesniffer's Introduction

HTML_CodeSniffer README

What is HTML_CodeSniffer?

HTML_CodeSniffer is a JavaScript application that checks a HTML document or source code, and detects violations of a defined presentation or accessibility standard.

Standards included

By default, HTML_CodeSniffer comes with standards that cover the three conformance levels of the W3C Web Content Accessibility Guidelines (WCAG) 2.0, and the U.S. Section 508 legislation. It also provides tools to write your own standards, which can be useful in situations where you wish to enforce consistency across a web site.

Using HTML_CodeSniffer

HTML_CodeSniffer can be called in multiple ways:

  • Called directly in JavaScript source, HTML_CodeSniffer will provide a list of known and potential violations to the calling script.
  • It also comes with a pop-up auditor interface, accessible via a bookmarklet, letting you browse through messages emitted from one of the defined standards. Where possible, the auditor also points you to the HTML element causing the problem.
  • It can also be run on the command line with the assistance of a headless browser app.

Licence

HTML_CodeSniffer is released under a BSD-style licence. For more information, please see the file "licence.txt".

Using the source code

Building the auditor

The HTML_CodeSniffer auditor can be built using node.js and the Grunt tasker (http://gruntjs.com/). It has been tested with the latest version of node.js (at time of writing: version 6.0) and Grunt, but should also work with recent earlier versions.

  • Install node.js with your package manager of choice.
  • You may need to update the Node.js package manager (npm) itself: npm update -g npm
  • Install the Grunt CLI helper if you haven't already done so:
    npm install -g grunt-cli
  • Get node.js to install the dependencies Grunt needs:
    npm install
  • Run Grunt to build the auditor: grunt build

You should see two new directories: node_modules (containing the node.js dependencies), and build (containing your auditor). You can then move (or symlink as appropriate) your build directory to a web-accessible location.

Then grab or copy the JavaScript from the auditor bookmarklet from the HTML_CodeSniffer site, replace the directory at the start (//squizlabs.github.io/HTML_CodeSniffer/build) with your local URL, and save as a new bookmarklet.

Debug build

If you are developing using HTML_CodeSniffer and require the code not minified for debugging purposes, follow the above steps, but run grunt build-debug (instead of just build). This will combine the files as normal, but not minify them.

Command-Line processing

PhantomJS

If you are using command-line processing, you don't need to build the auditor as above. You will, however, need PhantomJS installed if you wish to use the contributed command-line script. PhantomJS provides a headless Webkit-based browser to run the scripts in, so it should provide results that are similar to recent (or slightly less than recent) versions of Safari.

See the Contrib/PhantomJS/HTMLCS_Run.js file for more information.

Node & JSDom.

HTML_CodeSniffer requires a dom to run, however, it is possible to run it entirely server side without a headless browser using Node on arbitrary fragments of HTML using an environment wrapper like JSDom.

An example node script:

var jsdom  = require('jsdom');
var fs     = require('fs');

var vConsole = jsdom.createVirtualConsole();

// Forward messages to the console.
vConsole.on('log', function(message) {
    console.log(message);
})

jsdom.env({
    html: '<img src="test.png" />',
    src: [fs.readFileSync('./build/HTMLCS.js')],
    virtualConsole: vConsole,
    done: function (err, window) {
        window.HTMLCS_RUNNER.run('WCAG2AA');
    }
});

Contributing and reporting issues

To report any issues with using HTML_CodeSniffer, please use the HTML_CodeSniffer Issue Tracker.

Contributions to the HTML_CodeSniffer code base are also welcome: please create a fork of the main repository, then submit your modified code through a Pull Request for review. A Pull Request also automatically creates an issue in the Issue Tracker, so if you have code to contribute, you do not need to do both.

More Information

More information on HTML_CodeSniffer can be found on its GitHub site, http://squizlabs.github.io/HTML_CodeSniffer/. This site provides:

  • Information on the tests performed (and messages emitted) by HTML_CodeSniffer's standards, organised by conformance level and Success Criterion;
  • A source test area that allows you to try out HTML_CodeSniffer with your own HTML source code; and
  • A link to the HTML_CodeSniffer bookmarklet, letting you check other pages using the pop-up auditor interface.

html_codesniffer's People

Contributors

adelevie avatar fracmak avatar gardon avatar gsherwood avatar hywan avatar ironikart avatar joscha avatar luketw avatar mfairchild365 avatar sebastiankalwa avatar sertand avatar sgregson avatar shanear avatar yargalot avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.