网络无障碍规则--原则、准则、标准和技术
Aspose.HTML for Java 提供了 com.aspose.html.accessibility 包,用于所有与网络可访问性相关的操作和检查。在本文中,您将学习如何使用 AccessibilityRules 类,该类是 WCAG 2.0 要求、成功标准和技术的存储库。
可访问性规则是一套指南、标准或最佳实践,规定了如何设计和开发网站、应用程序和媒体等数字内容,以确保残疾人可以使用。这些规则有助于让有视觉、听觉、运动或认知障碍的人也能获得在线体验,促进数字包容,确保每个人都能平等地获取信息、服务和技术。
网络无障碍快速参考的结构可以用下图来表示:

无障碍规则
AccessibilityRules 类是 WCAG 2.0 要求、成功标准和技术的存储库,其结构与规范 WCAG(快速参考) 相对应。要查看规则列表,需要初始化 WebAccessibility 容器并使用 Rules 属性。
该属性返回一个 AccessibilityRules 类型的对象,该对象具有用于访问规则的方法:
| Methods | Description |
|---|---|
getPrinciple(string code) | Returns a Principle object by code from WCAG. |
| getPrinciples() | Returns a list of principles IList<Principle>. |
getRules(params string[] codes) | Returns a list of rules IList< IRule> for given codes from WCAG. |
该目录包含从抽象类 Rule 继承而来的规则。规则有几种类型:
- principle
- guideline
- criterion
- technique
IRule
所有规则都执行接口 IRule,这是一个公共接口,定义了规则的基本属性:
| Property | Description |
|---|---|
| Code | Rule code from the quick reference WCAG. |
| Description | Description of Rule from the quick reference WCAG. |
Rule
所有规则的基础抽象类,它实现了接口 IRule。要获取任何规则,可以使用 getRules() 方法:
1// Retrieve and list accessibility rules by code with their descriptions from the rules repository
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// List of rule codes can contain both technique codes and principles,
7// guidelines and criteria - all rules that implement the interface IRule
8String[] rulesCodes = new String[]{"H2", "H37", "H30", "1.1", "1.2.1"};
9
10// Get a list of IRule objects; if a rule with the specified code is not found,
11// it will not be in the list
12List<IRule> rules = webAccessibility.getRules().getRules(rulesCodes);
13
14// Get code and description of rule
15for (IRule rule : rules) {
16 System.out.println(String.format("%s: %s",
17 rule.getCode(),
18 rule.getDescription()
19 ));
20}程序将输出到控制台:
1 H2:Combining adjacent image and text links for the same resource
2 H37:Using alt attributes on img elements
3 H30:Providing link text that describes the purpose of a link for anchor elements
4 1.1:Text Alternatives
5 1.2.1:Audio-only and Video-only (Prerecorded)Principle
规则列表的第一层是 Principles,它们指明了本节规则的主要方向和目的。因此,目录工作从原则开始。
Principle 类继承自 Rule,也包含一个准则列表。
| Method | Description |
|---|---|
getGuideline(string code) | Get Guideline by code from WCAG, contained in principle. Return Guideline object. |
| getGuidelines() | Get a list of Guideline from Principle. Return IList< Guideline> object. |
从规则列表中获取 Principle 对象的示例:
1// Get accessibility principle by code from WCAG rules in Aspose.HTML for Java
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle rule = webAccessibility.getRules().getPrinciple("1");
8
9// Get code and description of principle
10System.out.println(String.format("%s: %s",
11 rule.getCode(),
12 rule.getDescription()
13));
14// @output: 1:PerceivableGuideline
Guideline 类继承自 Rule,包含一个标准列表。准则是继原则之后的又一个层次。它们概括了框架和总体目标,有助于作者理解成功标准并更好地应用技术。
| Method | Description |
|---|---|
getCriterion(string code) | Get Guideline by code from WCAG, contained in current Guideline. Return Criterion object. |
| getCriterions() | Get a list of Criterion from current Guideline. Return IList< Criterion> object. |
从规则列表中获取 “准则 “对象的示例:
1// Get accessibility guideline by code from WCAG principle in Aspose.HTML for Java
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle principle = webAccessibility.getRules().getPrinciple("1");
8
9// Get guideline 1.1
10Guideline guideline = principle.getGuideline("1.1");
11if (guideline != null) {
12 System.out.println(String.format("%s: %s, %s",
13 guideline.getCode(),
14 guideline.getDescription(),
15 guideline
16 ));
17 // @output: 1.1:Text Alternatives
18}Criterion
Criterion 类描述了 WCAG 成功标准,继承自抽象类Rule。详细信息请参见此处 - Understanding Techniques for WCAG Success Criteria。确定是否符合 WCAG 2.0 的基础是标准中的成功标准。该标准包含了满足 WCAG 网页内容无障碍指引的 techniques列表。如果某个标准的所有足够方法都支持无障碍,那么成功标准就通过了。
使用 getCriterion(code) 方法从指南中获取标准:
1// Get accessibility criterion and its sufficient techniques in Java
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle principle = webAccessibility.getRules().getPrinciple("1");
8
9// Get guideline
10Guideline guideline = principle.getGuideline("1.1");
11
12// Get criterion by code
13Criterion criterion = guideline.getCriterion("1.1.1");
14if (criterion != null) {
15 System.out.println(String.format("%s: %s - %s",
16 criterion.getCode(),
17 criterion.getDescription(),
18 criterion.getLevel()
19 ));
20 // @output: 1.1.1:Non-text Content - A
21
22 // Get all Sufficient Techniques and write to console
23 for (IRule technique : criterion.getSufficientTechniques())
24 System.out.println(String.format("%s: %s",
25 technique.getCode(),
26 technique.getDescription()
27 ));
28}根据特定的网络无障碍规则检查 HTML
这段代码演示了如何使用指定的规则集验证 HTML 文档的网络可访问性。
1// Validate an HTML document using specific rule codes with Java
2
3String htmlPath = "input.html";
4
5// Initialize a webAccessibility container
6WebAccessibility webAccessibility = new WebAccessibility();
7
8// List of necessary rules for checking (rule code according to the specification)
9String[] rulesCode = new String[]{"H2", "H37", "H67", "H86"};
10
11// Get the required IList<Rule> rules from the rules reference
12List<IRule> rules = webAccessibility.getRules().getRules(rulesCode);
13
14// Create an accessibility validator, pass the found rules as parameters,
15// and specify the full validation settings
16AccessibilityValidator validator = webAccessibility.createValidator(
17 rules, ValidationBuilder.getAll());
18
19// Initialize an object of the HTMLDocument
20final HTMLDocument document = new HTMLDocument(htmlPath);
21// Check the document
22ValidationResult validationResult = validator.validate(document);
23
24// Return the result in string format
25// SaveToString - return only errors and warnings
26System.out.println(validationResult.saveToString());- 使用
WebAccessibility() 构造函数创建
webAccessibility容器,它负责管理辅助功能规则和验证。 - 定义一个规则代码列表(如 “H2”、“H37”、“H67”、“H86”),这些代码与您要验证的无障碍标准相对应。
- 调用 getRules() 方法,将规则代码列表作为参数传递。
- 通过调用
webAccessibility容器上的 createValidator() 方法创建一个validator并将生成的规则和ValidationBuilder.getAll()传递给它。 - 使用 HTMLDocument() 构造函数之一加载要验证的 HTML 文档。
- 使用
validator的 validate(document) 方法,根据定义的规则检查加载的HTMLDocument。验证的结果是ValidationResult对象。 - 调用
ValidationResult对象上的 saveToString() 方法,将结果(仅包括错误和警告)格式化为字符串。 - 将验证结果输出到控制台,或根据需要保存结果,以便进一步分析或报告。
另见
- 您可以在 无障碍色彩对比度 一文中找到评估和改善文本可见性的有用技巧,该文章涉及使用 Aspose.HTML for Java 根据 WCAG 进行对比度检查。
- 有关检查网页内容是否与屏幕阅读器兼容的说明,请参阅文章 屏幕阅读器辅助功能。您将学习如何检查alt文本和其他关键元素。
- 如果您想了解如何查看验证结果和识别网络可访问性问题,请参阅 验证结果一文。
- 在
网站可访问性检查 – 错误和警告 一文中,您将了解如何在检查网站的可访问性时以 Java 编程方式收集错误和警告信息。
Aspose.HTML 提供免费的在线 网页可访问性检查器。该工具可扫描网页、验证网页是否符合 WCAG 标准、发现问题并提出改进建议。您可以即时了解网站的合规性,确定必要的修正范围,以及网站或 HTML 文档的当前状态与 WCAG 要求之间的差距。
