验证结果 – 如何检查网页无障碍程度并保存结果

Aspose.HTML for Java 包含 com.aspose.html.accessibility 软件包,用于执行和管理网络辅助功能检查。

本文介绍了如何根据 WCAG 标准查看验证结果、报告测试标准并详细说明验证过程中遇到的具体问题。

要了解如何以编程方式检查网站的可访问性并获得分步指南,请阅读文章 Accessibility Validator – Website Accessibility Check in Java

ValidationResult 类

com.aspose.html.accessibility.results 包包含描述网络辅助功能规则验证结果的类。 ValidationResult 类是一个主类,它包含从 AccessibilityRules 对象检查所有标准的结果。

下面是一个网络可访问性检查的 Java 代码片段。它使用特定设置设置了一个验证器,验证 HTML 文档,并将结果输出到控制台,让您可以识别并解决 HTML 文档中的特定问题:

 1// Validate HTML against WCAG rules using Java
 2
 3// Initialize a webAccessibility container
 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}

RuleValidationResult 类

RuleValidationResult 类表示特定无障碍规则的验证结果。它提供了有关如何评估规则的详细信息,包括一个 ITechniqueResult 元素集合,每个元素都代表用于满足成功标准的方法。

该类揭示了几个关键属性(方法):

以下代码会遍历一个 validationResult 对象的 Details 属性中的 RuleValidationResult 对象列表。每个 RuleValidationResult 表示验证过程中特定可访问性规则检查的结果:

1    // Get a list of RuleValidationResult Details
2    for (RuleValidationResult result : validationResult.getDetails())
3    {
4        System.out.println(String.format("%s: %s = %s",
5            result.getRule().getCode(), result.getRule().getDescription(), result.getSuccess()));
6    }

假设 Details 包含两条规则的结果 – H37 和 H67。输出将是

1H37:Check alt attributes for images = True
2H67:Check that all forms have labels = False

ITechniqueResult

ITechniqueResult是一个公共接口,它包含了检查用于满足规则成功标准的特定无障碍技术的结果信息。它包括一个用于识别相关规则的 getRule() 方法、一个用于指示该技术是否通过的 getSuccess() 方法,以及一个返回 IError() 对象的 getError() 方法,该对象包含在检查过程中遇到的任何问题的详细信息。该接口有助于将规则检查分解为单个技术结果,以便进行更详细的分析。

下面是未通过成功标准测试的结果输出示例。我们将向控制台打印标准的代码说明,以及这些标准方法的所有执行细节,包括成功和错误:

 1// Validate HTML accessibility using Java and get detailed failed rule results
 2
 3// Initialize a webAccessibility container
 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
10String documentPath = "input.html";
11
12// Initialize an object of the HTMLDocument class
13final HTMLDocument document = new HTMLDocument(documentPath);
14ValidationResult validationResult = validator.validate(document);
15
16// Take a list of rules results
17for (RuleValidationResult ruleResult : validationResult.getDetails()) {
18    // List only unsuccessful rule
19    if (!ruleResult.getSuccess()) {
20        // Print the code and description of the rule
21        System.out.println(String.format("%s: %s",
22                ruleResult.getRule().getCode(),
23                ruleResult.getRule().getDescription()
24        ));
25
26        // Print the results of all methods
27        for (ITechniqueResult ruleDetail : ruleResult.getResults()) {
28            // Print the code and description of the criterions
29            StringBuilder str = new StringBuilder(String.format("\n{0}: {1} - {2}",
30                    ruleDetail.getRule().getCode(),
31                    ruleDetail.getSuccess(),
32                    ruleDetail.getRule().getDescription()
33            ));
34            System.out.println(str);
35        }
36    }
37}

保存验证结果

验证过程完成后,您可以保存验证结果,以便进一步分析、记录和报告。Aspose.HTML for Java 库允许您将验证结果保存到 “TextWriter “对象中,其中的 ValidationResultSaveFormat类型参数指定了文本的保存格式。

有三种主要格式可用于保存网络可访问性验证结果:

将验证结果保存为字符串

将验证结果保存为字符串时,使用 saveToString() 方法:

 1// Validate HTML for accessibility in Java and export all errors and warnings as a string
 2
 3String htmlPath = "input.html";
 4
 5final HTMLDocument document = new HTMLDocument(htmlPath);
 6AccessibilityValidator validator = new WebAccessibility().createValidator();
 7ValidationResult validationresult = validator.validate(document);
 8
 9// get rules errors in string format
10String content = validationresult.saveToString();
11
12// SaveToString - return only errors and warnings
13// if everything is ok, it will return "validationResult:true"
14System.out.println(content);

输出结果以简单的文本格式显示,明确指出检查结果,并提供带有注释的错误详细信息:

 1validationResult:False;
 2%%
 3technique: H35;
 4criterion: 1.1.1;
 5type: Error;
 6description: Check that the applet element contains an alt attribute with a text alternative for the applet. ;
 7source: <applet code="tictactoe.class" width="250" height="250">tic-tac-toe game</applet>;
 8%%
 9technique: H37;
10criterion: 1.1.1;
11type: Error;
12description: Img element missing an alt attribute. The value of this attribute is referred to as "alt text".;
13source: <img src="image1.jpeg">;
14%%
15
16...

其中标明检查结果validationResult以及错误和注释列表:

以 XML 格式保存验证结果

对于那些更喜欢结构化和机器可读格式的人来说,以 XML 格式存储验证结果是一个合适的选择。让我们看看如何使用 saveTo(writer, format) 方法将结果保存为 XML 格式。该方法需要一个 TextWriter 对象和所需的 ValidationResultSaveFormat 方法(本例中为 XML)。

 1// Validate HTML for accessibility in Java and export all errors and warnings as an XML
 2
 3String htmlPath = "input.html";
 4
 5final HTMLDocument document = new HTMLDocument(htmlPath);
 6AccessibilityValidator validator = new WebAccessibility().createValidator();
 7ValidationResult validationresult = validator.validate(document);
 8
 9final java.io.StringWriter sw = new java.io.StringWriter();
10validationresult.saveTo(sw, ValidationResultSaveFormat.XML);
11
12String xml = sw.toString();
13System.out.println(xml);
14
15DocumentBuilderFactory documentBuildFactory = DocumentBuilderFactory.newInstance();
16DocumentBuilder documentBuilder = documentBuildFactory.newDocumentBuilder();
17documentBuilder.parse(new java.io.ByteArrayInputStream(xml.getBytes()));

由此产生的 XML 表示格式条理清晰,便于分析和进一步处理:

 1<validationResult>
 2<isValid>false</isValid>
 3<details>
 4  <techniqueResult>
 5    <technique>H35</technique>
 6    <criterion>1.1.1</criterion>
 7    <type>Error</type>
 8    <description>Check that the applet element contains an alt attribute with a text alternative for the applet. </description>
 9    <source><![CDATA[<applet code="tictactoe.class" width="250" height="250">tic-tac-toe game</applet>]]>
10    </source>
11  </techniqueResult>
12  <techniqueResult>
13    <technique>H37</technique>
14    <criterion>1.1.1</criterion>
15    <type>Error</type>
16    <description>Img element missing an alt attribute. The value of this attribute is referred to as "alt text".</description>
17    <source><![CDATA[<img src="image1.jpeg">]]>
18    </source>
19  </techniqueResult>
20  
21   ...
22
23 </details>
24</validationResult>

另见

  • 您可以在 无障碍色彩对比度 一文中找到评估和改善文本可见性的有用技巧,该文章涉及使用 Aspose.HTML for Java 根据 WCAG 进行对比度检查。
  • 有关检查网页内容是否与屏幕阅读器兼容的说明,请参阅文章 屏幕阅读器可访问性。您将学习如何检查alt文本和其他关键元素。
  • 网站可访问性检查 – 错误和警告 一文中,您将了解如何在检查网站的可访问性时以 Java 编程方式收集错误和警告信息。

Aspose.HTML 提供免费的在线 网页可访问性检查器。该工具可扫描网页、验证网页是否符合 WCAG 标准、发现问题并提出改进建议。您可以即时了解网站的合规性,确定必要的修正范围,以及网站或 HTML 文档的当前状态与 WCAG 要求之间的差距。

文本 “网络无障碍检查器”

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.