Hack #97. Check Whether Pages Really Validate

If someone puts a badge on her site claiming to be "Valid XHTML," run it through the W3C Validator and see if she's telling the truth.

You've probably seen them on personal weblogs or wikis. Stuffed down at the bottom of the page, amidst the copyright notices and privacy policies, a cluster of badges proudly proclaims, "This site is valid XHTML!" "This site is valid CSS!" "This site validates against some arcane standard you've never heard of!" But do they really validate? Let's find out.

The Code

This user script runs on all pages. It takes advantage of a feature of the W3C HTML Validator, which suggests that people put a link on their sites that points to http://validator.w3.org/check/referer. That URL uses the HTTP Referer header to automatically check the page you came from. If the page uses valid markup, the validator service will proclaim "This Page Is Valid (X)HTML"; otherwise, it will list all the errors on the page.

If the script finds such a link, it uses Greasemonkey's GM_xmlhttpRequest function to call the W3C validation service in the background and get the results. If it turns out that the page is not really valid, we replace the original link with a new link that reads "Invalid markup!"

Save the following script as reallyvalid.user.js:

 // ==UserScript== // @name Really Valid? // @namespace http://diveintomark.org/projects/greasemonkey/ // @description check if pages claiming to be valid (X)HTML really are // @include * // ...

Get Greasemonkey Hacks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.