Tool for analyzing web pages compliance with Section508
Pull request Compare This branch is even with tomason:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


 This project is currently under developement as a part of my bachelor thesis. The
bachelor thesis itself is about writing an application to analyze web pages compliance
with Section 508 rules. I took the job more seriously and I'm trying to make a general
analyzer where you can actualy change any part to analyze whatever you want. As the
project is currently under developement the API and range of usage may (and will)
change over time.

 This project uses maven. That means you can just checkout the code, run 
'mvn install' and you are good to go. Currently there is no 'distribution' part of the
project that would build a bundle of jar files for you so you have to add the
dependencies to your project either using maven (which makes it easier for transitive
dependencies) or copy all the jars created by this project and add third party libraries.
If you are not using your own components you have to copy all jars. Otherwise you will
be fine with analyzer-api, analyzer-core.

 Right now to analyze a web page for compliance with Section 508 you have to write
your own main method where you instantiate the Analyzer class (by calling
org.analyzer.factories.ObjectFactory.newAnalyzer()). To do so you have to privide
class names for Parser and ConditionSet which will change in the future to enable you
to insert null and default (SwingParser, Section508) will be used. Parser and condition
set must both use the same factory. About that - it's because analyzer uses drools
engine and if parser used other set of facts than the condition set the analysis would
be useless.
 Once you have instance of Analyzer use org.analyzer.factories.SourceFactory to create
a new source either as FileSource or StringSource and add it as a parameter to
Analyzer's method analyze. What you will get is a class Report which contains set of
ReportItems which are results of analysis. If you call method report() you'll get a
String representation (simple format listing errors, warnings and ok things).
 The current implementations contain three components - HTML domain, Swing parser and
Section 508 condition set. The domain contains definitions for few types of html tags
and more will come later. Swing parser uses javax.swing.text.html.parser classes to
parse given HTML file (if you are unconfortable with Swing parser you can write your own)
the swing parser was used for convenience and may be replaced in the future (or another
parser implementation may be added).
Analyzing anything
 If you don't want to analyze web pages for compliance with Section 508 or you don't
want to use Swing parser you can change any of these parts with your own
implementations by just changing the class used for parser, condition set or domain.

Used technology
 > Drools 5.3.0.Beta1
 > javax.swing.text.html.parser

Current state (as of 2011-08-16)
 > ability to instantiate a new analyzer using custom classes for domain, parser and
  condition set
 > existing HTML (very incomplete) domain, swing parser (with a few bugs) and
  Section 508 condition set (containing only two of the requirements)
 > simple report format to print the results