Accessibility Validator in Java

Create an AccessibilityValidator through WebAccessibility.createValidator(). You can check all available WCAG 2.0 rules, restrict validation to a principle or rule list, and use ValidationBuilder to select technologies and criterion levels.

Create an Accessibility Validator

Aspose.HTML for Java provides accessibility checking APIs in the com.aspose.html.accessibility package. An AccessibilityValidator checks an HTMLDocument against the rules and settings used to create it. Create validator instances through the WebAccessibility class rather than a public AccessibilityValidator constructor.

Start by creating a WebAccessibility instance:

1// Create a WebAccessibility instance
2WebAccessibility webAccessibility = new WebAccessibility();

The createValidator() overloads support several validation scopes:

Validator patternUse it to
createValidator()Check all rules with the predefined All settings.
createValidator(builder)Check rules that match the supplied ValidationBuilder settings.
createValidator(rule, builder)Check one principle, guideline, criterion, or technique with the supplied settings.
createValidator(rules, builder)Check a selected list of rules with the supplied settings.

Create a Validator for All Rules

The following example creates an AccessibilityValidator for all available rules and all levels and technologies enabled by ValidationBuilder.getAll():

1// Create a WebAccessibility instance
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// Create an accessibility validator with all rules using the default settings
5AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());

Create a Validator for a Specific Principle

This example retrieves principle 1, Perceivable, and creates a validator for the rules under that principle:

1// Retrieve a specific principle by its code
2IRule rule = webAccessibility.getRules().getPrinciple("1");
3
4// Create a validator for that principle using the same default settings
5AccessibilityValidator validatorRule = webAccessibility.createValidator(rule, ValidationBuilder.getAll());

Configure Checks with ValidationBuilder

The ValidationBuilder class filters the rules and techniques included in a validator. Use its predefined configurations or chain methods to select technologies and criterion levels.

Predefined configurationIncluded settings
getAll()All criterion levels and all technologies.
getDefault()General technologies and the Lowest criterion level.
getNone()No parameters are selected until configuration methods are called.

Select technologies with useHTML(), useCSS(), useScript(), or useGeneral(). Select criterion levels with useLowestLevel() for A, useMiddleLevel() for AA, useHighestLevel() for AAA, or allLevels() for all three.

The following configuration starts with no selected parameters, enables HTML and CSS technologies, and selects criteria at the Middle Level, which corresponds to WCAG Level AA:

 1// Create a WebAccessibility instance
 2WebAccessibility webAccessibility = new WebAccessibility();
 3
 4// Create a validator with no predefined filters, enabling HTML and CSS technologies, and selecting the middle conformance levels
 5AccessibilityValidator validatorHTML = webAccessibility.createValidator(
 6    ValidationBuilder.getNone()
 7                     .useHTML()
 8                     .useCSS()
 9                     .useMiddleLevel()
10);

Work with ValidationResult

The ValidationResult class contains the outcome of an accessibility check. Call validate(document) with an HTMLDocument to obtain it.

The result covers the rules selected when the validator was created and provides two main getters:

For reporting, saveTo(TextWriter) writes results to a TextWriter; its overload accepts a ValidationResultSaveFormat. The saveToString() method returns the formatted result as a Java String.

For the result hierarchy and reporting options, see Validation Results – Check Web Accessibility in Java.

Validate an HTML Document in Java

To perform document validation, follow these steps:

  1. Create a WebAccessibility instance.
  2. Call the required createValidator() overload and supply rule or builder settings when needed.
  3. Load the HTML source into an HTMLDocument.
  4. Pass the document to AccessibilityValidator.validate().
  5. Check ValidationResult.getSuccess() and iterate through getDetails() to inspect rule results.
  6. Print or save the validation information required by your reporting workflow.

The following Java example validates a local HTML file with all rules. If the overall validation is unsuccessful, it writes the code, description, and success status of every returned rule result to the console. A successful result produces no console output in this example.

 1// Validate HTML against WCAG rules using Java
 2
 3// Create a WebAccessibility instance
 4WebAccessibility webAccessibility = new WebAccessibility();
 5
 6// Create an accessibility validator with static instance for all rules
 7// from repository that match the builder settings
 8AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
 9
10// Prepare a path to a source HTML file
11String documentPath = "input.html";
12
13// Initialize an object of the HTMLDocument class
14final HTMLDocument document = new HTMLDocument(documentPath);
15ValidationResult validationResult = validator.validate(document);
16
17// Checking for success
18if (!validationResult.getSuccess()) {
19    // Get a list of RuleValidationResult Details
20    for (RuleValidationResult detail : validationResult.getDetails()) {
21        System.out.println(String.format("%s: %s = %s",
22                detail.getRule().getCode(),
23                detail.getRule().getDescription(),
24                detail.getSuccess()));
25    }
26}

FAQ

Do I need to pass ValidationBuilder.getAll() to check all rules?

No. WebAccessibility.createValidator() without arguments also creates a validator for all rules with the All configuration. Passing ValidationBuilder.getAll() makes that choice explicit.

Can I create a validator for one WCAG principle?

Yes. Retrieve the required Principle from WebAccessibility.getRules() and pass it to createValidator(rule, builder), as shown in the second example.

Does a successful automated result prove complete WCAG conformance?

No. The validator reports results for the selected rules and settings. Use automated checks together with manual testing, including keyboard and assistive-technology review.

Related Articles

Try the Online Web Accessibility Checker

Use the free online Web Accessibility Checker for a quick page scan before implementing a Java validation workflow.

Web Accessibility Checker