TWINE: Toolkit for Web-Interface Evaluation

Why this toolkit?

Ever had to validate the HTML produced by your web application against the HTML DTD orcheck it for Web Accessibility issues? With static HTML files, this is a snap: just include a link to a validation service like the W3C's Markup Validation Service and fill in the URL. There are even browser toolbars and other client-side tools that can automatically submit pages to these services.

But this is not possible with many web apps. Two common problems are:

In this situation, your only option is to validate manually: a repetitive series of "View Source" and "Save to file" operations in your web browser, followed by submitting these files to a validation service. And since your web application is dynamic, it is possible that another version of this interface will still contain bad markup.

This process needs to be easier. How about just clicking a button? That's what this toolkit is designed to allow you to do.

Who cares--just show me the software!

If you just want to get started, go to the HTML Validator for Java. It is very easy to use--just drop it in to your web app and modify your web.xml configuration file. It will report HTML validation problems on all your web interfaces.

More boring technical details please!

Basically, this toolkit works server-side to make it possible to validate dynamic resources in almost any situation. To do this, it takes dynamic HTTP requests and writes them out as static HTML files that can be validated just like a hard-coded HTML page. It does this by intercepting and buffering the dynamic output of your web app, writing the results to disk, then writing a link that will submit the static resource to the validation service.

Check out a diagram.

Validation Services

By default these components submit the dynamic resource to the W3C HTML validation service at: There are many other validation services out there, some free, some not. A popular Web accessibiliy validation service is WAVE, and WAVE can validate your web interfaces against US Section 508 and WCAG Guidelines. WAVE can be found at:


This software is distributed under the LGPL. See

This software comes without warranty of any kind. Use at your own risk.

Thanks to...

Stanislaw Brajewski for some fixes with character encoding issues with non Latin-1 character sets.

Questions or suggestions

Please direct these to