网络无障碍规则--原则、准则、标准和技术

Aspose.HTML for Java 提供了 com.aspose.html.accessibility 包,用于所有与网络可访问性相关的操作和检查。在本文中,您将学习如何使用 AccessibilityRules 类,该类是 WCAG 2.0 要求、成功标准和技术的存储库。

可访问性规则是一套指南、标准或最佳实践,规定了如何设计和开发网站、应用程序和媒体等数字内容,以确保残疾人可以使用。这些规则有助于让有视觉、听觉、运动或认知障碍的人也能获得在线体验,促进数字包容,确保每个人都能平等地获取信息、服务和技术。

网络无障碍快速参考的结构可以用下图来表示:

文本 “网络无障碍规则的结构–原则、指南和标准”。

无障碍规则

AccessibilityRules 类是 WCAG 2.0 要求、成功标准和技术的存储库,其结构与规范 WCAG(快速参考) 相对应。要查看规则列表,需要初始化 WebAccessibility 容器并使用 Rules 属性。

该属性返回一个 AccessibilityRules 类型的对象,该对象具有用于访问规则的方法:

MethodsDescription
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 继承而来的规则。规则有几种类型:

IRule

所有规则都执行接口 IRule,这是一个公共接口,定义了规则的基本属性:

PropertyDescription
CodeRule code from the quick reference WCAG.
DescriptionDescription 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,也包含一个准则列表。

MethodDescription
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:Perceivable

Guideline

Guideline 类继承自 Rule,包含一个标准列表。准则是继原则之后的又一个层次。它们概括了框架和总体目标,有助于作者理解成功标准并更好地应用技术。

MethodDescription
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());

另见

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

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

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.