Web 可访问性规则 – 根据 WCAG 检查网站可访问性
Aspose.HTML for .NET 提供了 Aspose.Html.Accessibility 命名空间,该命名空间用于所有 Web 可访问性相关的操作和检查。在本文中,您将学习如何使用 AccessibilityRules 类,该类是 WCAG 2.0 要求、成功标准和技术的一个存储库。
您可以从文章 可访问性验证器 – 使用 C# 检查网站可访问性 中了解如何使用 AccessibilityValidator 类来检查 Web 可访问性。
可访问性规则是一套指南、标准或最佳实践,用于定义如何设计和开发数字内容和界面,以确保残障人士可以访问它们。这些指南旨在使数字内容,例如网站、应用程序和多媒体,可供各种人群访问,包括有视觉、听觉、运动和认知障碍的人。可访问性规则对于促进数字包容性并确保每个人都能平等访问在线信息和服务至关重要。
快速参考的结构可以以下图所示的图表形式呈现:
该目录包含实现 IRule 接口的规则。
可访问性规则
AccessibilityRules 类是 WCAG 2.0 要求、成功标准和技术的存储库,其结构与规范 WCAG (快速参考) 相对应。为了查看规则列表,您需要初始化 WebAccessibility 容器并使用属性 Rules。
1 // Initialize a webAccessibility container
2 var webAccessibility = new WebAccessibility();
3
4 // Get the accessibilityRules repository
5 AccessibilityRules accessibilityRules = webAccessibility.Rules;
该属性返回类型为 AccessibilityRules
的对象,该对象具有以下用于访问规则的方法:
方法 | 描述 |
---|---|
GetPrinciple(string code ) | 根据 WCAG 中的代码返回 Principle 对象。 |
GetPrinciples() | 返回原则列表 IList< Principle>。 |
GetRules(params string[] codes ) | 返回给定 WCAG 代码的规则列表 IList< IRule>。 |
该目录包含从抽象类 Rule 继承的规则。规则有几种类型:
- principle (原则)
- guideline (指南)
- criterion (标准)
- technique (技术)
IRule
所有规则都实现了接口 IRule,这是一个定义规则基本属性的公共接口:
属性 | 描述 |
---|---|
Code | 来自快速参考 WCAG 的规则代码。 |
Description | 来自快速参考 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, guidelines and criteria - all rules that implement the interface IRule
7string[] rulesCodes = new string[] { "H2", "H37", "H30", "1.1", "1.2.1" };
8
9// Get a list of IRule objects; if a rule with the specified code is not found, it will not be in the list
10IList<IRule> rules = webAccessibility.Rules.GetRules(rulesCodes);
11
12// Get code and description of rule
13foreach (IRule rule in rules)
14 Console.WriteLine("{0}:{1}", rule.Code, rule.Description);
程序将输出到控制台:
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,并且还包含一个指南列表。
方法 | 描述 |
---|---|
GetGuideline(string code ) | 获取原则中包含的来自 WCAG 的指南代码。返回 Guideline 对象。 |
GetGuidelines() | 获取原则中的指南列表。返回 IList<Guideline> 对象。 |
如何从规则列表中获取 Principle
对象的示例:
1// Retrieve and display the code and description of an accessibility principle by its code
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle rule = webAccessibility.Rules.GetPrinciple("1");
8
9// Get code and description of principle
10Console.WriteLine("{0}:{1}", rule.Code, rule.Description); // output: 1:Perceivable
Guideline
Guideline 类继承自 Rule,并包含一个标准列表。指南是原则之后的下一级别。它们概述了帮助作者理解成功标准并更好地应用技术的框架和总体目标。
方法 | 描述 |
---|---|
GetCriterion(string code ) | 获取当前指南中包含的来自 WCAG 的标准代码。返回 Criterion 对象。 |
GetCriterions() | 获取当前指南中的标准列表。返回 IList< Criterion> 对象。 |
如何从规则列表中获取 Guideline
对象的示例:
1// Retrieve and display the code and description of an accessibility guideline
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle principle = webAccessibility.Rules.GetPrinciple("1");
8
9// Get guideline 1.1
10Guideline guideline = principle.GetGuideline("1.1");
11if (guideline != null)
12{
13 Console.WriteLine("{0}:{1}", guideline.Code, guideline.Description, guideline); // output: 1.1:Text Alternatives
14}
Criterion
Criterion 类描述了 WCAG 成功标准,继承自抽象类 Rule。可以在此处找到详细信息 – 理解 WCAG 成功标准的技术。确定是否符合 WCAG 2.0 的基础是标准中的成功标准,而不是技术。
为每个建议提供了可验证的成功标准,以便 WCAG 2.0 可应用于需要合规性测试的领域。
属性 | 描述 |
---|---|
Level | 合规性级别:A(最低)、AA 和 AAA(最高)。 |
SufficientTechniques | 返回足以满足成功标准的可靠技术列表。 |
AdvisoryTechniques | 返回建议用于提高可访问性的咨询技术列表。它们通常对某些用户非常有帮助,并且可能是某些用户访问某些类型内容的唯一方式。 |
Failures | 返回导致可访问性障碍并使特定成功标准失败的失败列表。 |
标准包含用于满足 WCAG Web 内容可访问性指南的 技术 列表。如果给定标准的所有足够方法都得到可访问性支持,则成功标准通过。
使用 GetCriterion()
方法从指南访问标准:
1// Retrieve and display the code and description of an accessibility criterion
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle principle = webAccessibility.Rules.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{
16 Console.WriteLine("{0}:{1} - {2}", criterion.Code, criterion.Description, criterion.Level); // output: 1.1.1:Non-text Content - A
17
18 // Get all Sufficient Techniques and write to console
19 foreach (IRule technique in criterion.SufficientTechniques)
20 Console.WriteLine("{0}:{1}", technique.Code, technique.Description);
21}
根据特定的 Web 可访问性规则检查 HTML
1// Validate an HTML document using specific rule codes with C#
2
3string htmlPath = Path.Combine(DataDir, "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
12IList<IRule> rules = webAccessibility.Rules.GetRules(rulesCode);
13
14// Create an accessibility validator, pass the found rules as parameters, and specify the full validation settings
15AccessibilityValidator validator = webAccessibility.CreateValidator(rules, ValidationBuilder.All);
16
17// Initialize an object of the HTMLDocument
18using (HTMLDocument document = new HTMLDocument(htmlPath))
19{
20 // Check the document
21 ValidationResult validationResult = validator.Validate(document);
22
23 // Return the result in string format
24 // SaveToString - return only errors and warnings
25 Console.WriteLine(validationResult.SaveToString());
26}
此代码演示了如何使用指定的规则集验证 HTML 文档的 Web 可访问性。
- 使用
WebAccessibility() 构造函数创建
webAccessibility
容器,该容器管理可访问性规则和验证。 - 定义要验证的规则代码列表(例如,“H2”、“H37”、“H67”、“H86”),这些代码对应于您要验证的可访问性标准。
- 调用 GetRules() 方法,将规则代码列表作为参数传递。
- 通过调用
webAccessibility
容器上的 CreateValidator() 方法创建validator
,传递检索到的规则和ValidationBuilder.All
设置以全面配置验证。 - 使用 HTMLDocument() 构造函数之一加载要验证的 HTML 文档。
- 使用
validator
的 Validate() 方法对照定义的规则检查加载的HTMLDocument
,生成ValidationResult
对象。 - 调用
ValidationResult
对象上的 SaveToString() 方法,将结果格式化为字符串,仅包含错误和警告。 - 将验证结果输出到控制台或根据需要保存,以供进一步分析或报告。
另请参阅
- 在 Web 可访问性检查 章节中,您将学习如何使用 Aspose.Html.Accessibility 和 Aspose.Html.Accessibility.Results 命名空间的类和方法检查网站可访问性以满足所有 WCAG 合规性或仅满足特定标准。
- 文章 如何提高网站可访问性 解释了如何使您的网站对用户可访问,以及如何使用 Aspose.HTML API for .NET 检查您的网站是否符合 WCAG 标准。
- 文章 屏幕阅读器可访问性 解释了如何根据 WCAG 指南使用 Aspose.HTML for .NET API 设计屏幕阅读器可访问性的网站。
- 查看文章 颜色对比度可访问性,如果您想了解如何根据 WCAG 标准(Web 可访问性的世界权威)正确调整 Web 内容的对比度。您将了解如何使用 C# 测试颜色对比度可访问性,并使您的 Web 内容易于所有用户阅读。
- 在文章 Accessibility Validator 中,您将了解 AccessibilityValidator 类,该类可用于测试 Web 可访问性规则,如原则、指南和标准。
Aspose.HTML 提供免费在线 Web 可访问性检查器。此工具扫描网页,验证它们是否符合 WCAG 标准,识别问题并提出改进建议。立即获得有关您网站合规性的见解,使您能够确定必要更正的范围以及您的网站或 HTML 文档当前状态与 WCAG 要求之间的差距。