可访问性验证器 – Accessibility Validator – 根据 WCAG 检查网站可访问性

创建验证器

Aspose.HTML for .NET 提供了 Aspose.Html.Accessibility 命名空间,该命名空间用于所有 Web 可访问性相关的操作和检查。 AccessibilityValidator 类初始化一个对象,用于根据 WCAG 成功标准验证文档。该类没有内部构造函数,因此用户不能直接创建该类的对象。要创建对象,您需要使用 WebAccessibility 容器。

要创建验证器,请初始化 WebAccessibility 类的对象,如下所示:

1    // 初始化 webAccessibility 容器
2    var webAccessibility = new WebAccessibility();

webAccessibility 对象具有以下用于创建验证器的基本方法:

方法描述
CreateValidator()根据所有规则和 ValidationBuilder.All 对象创建 AccessibilityValidator 实例。
CreateValidator(Action<ValidationBuilder> builder)根据所有规则创建 AccessibilityValidator 实例,其中 builder 是带有方法设置列表的 lambda 表达式。
CreateValidator(ValidationBuilder builder)根据所有规则和 ValidationBuilder 对象创建 AccessibilityValidator 实例。
CreateValidator(IRule rule)为特定规则创建新的 AccessibilityValidator 实例,并给定 ValidationBuilder.All 对象的完整参数。
CreateValidator(IRule rule, Action<ValidationBuilder> builder)初始化 AccessibilityValidator 的新实例,该实例包含与 builder 设置匹配的规则,其中 builder 是带有方法设置列表的 lambda 表达式。
CreateValidator(IRule rule, ValidationBuilder builder)初始化 AccessibilityValidator 的新实例,该实例包含与 builder 设置匹配的规则。builder 实例是 ValidationBuilder 类的静态实例。
CreateValidator(IList<IRule> rules)为特定规则列表创建 AccessibilityValidator 实例。
CreateValidator(IList<IRule> rules, ValidationBuilder builder)根据 ValidationBuilder 对象的设置,为特定规则列表创建 AccessibilityValidator 实例。
CreateValidator(IList<IRule> rules, Action<ValidationBuilder> builder)为特定规则列表创建 AccessibilityValidator 实例,其中 builder 是带有设置 ValidationBuilder 列表的 lambda 表达式。

以下是初始化 AccessibilityValidator 对象的示例。第一个验证器 (validator) 是使用 ValidationBuilder.All 创建的综合实例,应用存储库中的所有规则。使用其代码检索特定原则,并为与该原则关联的规则创建第二个验证器 (validatorRule),同时遵循相同的综合设置。最后,使用 lambda 表达式设置第三个验证器 (validatorCSS),以优化验证标准,针对所有级别并结合基于 CSS 的规则。这种方法为定制验证器以进行特定可访问性检查提供了灵活性,从而实现了有针对性的验证策略。

 1    // 初始化 webAccessibility 容器
 2    var webAccessibility = new WebAccessibility();
 3    
 4    // 使用静态实例为存储库中所有与 builder 设置匹配的规则创建可访问性验证器
 5    var validator = webAccessibility.CreateValidator(ValidationBuilder.All);
 6    
 7    // 根据代码获取原则
 8    IRule rule = webAccessibility.Rules.GetPrinciple("1");
 9
10    // 为一个原则创建可访问性验证器,其规则与 ValidationBuilder.All 实例设置匹配
11    var validatorRule = webAccessibility.CreateValidator(rule, ValidationBuilder.All);
12
13    // 使用 lambda 表达式设置为存储库中所有与项目内 builder 设置匹配的规则创建可访问性验证器
14    var validatorCSS = new AccessibilityValidator(builder => builder.AllLevels().UseCSS());

ValidationBuilder 类

ValidationBuilder 类定义了一个辅助类,可用于自定义要由验证器检查的规则列表。ValidationBuilder 定义了方法并提供了配置步骤的具体实现。

方法/属性描述
ValidationBuilder.None未指定任何参数设置,当您需要从头开始创建过滤器时非常方便,需要指定检查时应使用哪些级别、技术等。
ValidationBuilder.Default检查文档时将使用通用技术规则、所有级别标准的失败。
ValidationBuilder.All验证将针对所有级别标准、所有技术(包括 HTML、CSS、脚本)进行。
SetHTMLTags(params string[] tags)用户可以指定要在文档中检查的 html 标签列表。
AllTechnologies()检查文档时将应用所有技术。
UseHTML()该方法指示将在文档中检查 HTML 技术的元素。
UseCSS()该方法指示将在文档中检查 CSS 技术的元素。
UseScript()该方法指示将在文档中检查客户端脚本技术的元素。
UseFailures()该方法指示将在文档中检查失败规则。
UseGeneral()该方法指示将在文档中检查通用规则。
AllLevels()该方法设置所有标准级别,并指示将根据所有三个级别的标准检查文档。
UseLowestLevel()该方法确定文档必须根据低级别标准进行验证。
UseMiddleLevel()该方法确定文档必须根据中级别标准进行验证。
UseHighestLevel()该方法确定文档必须根据高级别标准进行验证。

以下代码片段是创建生成器并将其作为参数传递给验证器的示例:

 1    // 初始化 webAccessibility 容器
 2    WebAccessibility webAccessibility = new WebAccessibility();
 3
 4    // 使用 All 对象创建可访问性验证器
 5    var validator = webAccessibility.CreateValidator(ValidationBuilder.All);
 6
 7    // 使用空过滤器创建可访问性验证器,并设置 html 和 css 技术、低级别和中级别
 8    var validatorHTML = webAccessibility.CreateValidator(ValidationBuilder.None.UseHTML()
 9                                                                               .UseCSS()
10                                                                               .UseLowestLevel()
11                                                                               .UseMiddleLevel());
12
13    // 使用 lambda 表达式为所有级别和仅 CSS 技术创建可访问性验证器
14    var validatorCSS = webAccessibility.CreateValidator(builder => builder.AllLevels().UseCSS());
15
16    // 为所有级别的标准创建可访问性验证器,并且仅检查 img 和 input 元素
17    var validatorIMG = webAccessibility.CreateValidator(builder => builder.AllLevels()
18                                        .AllTechnologies()
19                                        .SetHTMLTags("img", "input"));

ValidationResult 类

ValidationResult 类是 Web 可访问性验证的核心组件。它封装了可访问性检查的结果,提供了一种结构化的方式来分析、管理和对验证操作的结果采取行动。要使用它,请实例化一个验证器对象并调用 Validate(document) 方法,传入要验证的文档。该方法返回一个包含验证过程结果的 ValidationResult 对象。

关键属性:

属性描述
Success返回一个布尔值,指示验证是否成功。
Details返回包含有关任何验证结果的详细信息的 RuleValidationResult 对象的集合。

验证文档

要运行文档验证,您需要执行以下步骤:

  1. 使用 WebAccessibility() 构造函数创建负责 Web 可访问性检查的 WebAccessibility 类实例。
  2. 调用 CreateValidator() 方法创建 validator 对象。
  3. 使用 HTMLDocument() 构造函数之一加载 HTML 文档。
  4. 使用 Validate(document) 方法根据 Web 可访问性规则验证文档。
  5. 验证的结果是 ValidationResult 类的实例。
  6. 将验证结果打印到控制台,并根据需要使用它们进行进一步分析。

以下是调用文档验证的示例。以下代码将向控制台写入哪些规则通过了测试,哪些没有通过:

 1// Validate HTML against WCAG rules using C#
 2
 3// Initialize a webAccessibility container
 4WebAccessibility webAccessibility = new WebAccessibility();
 5
 6// Create an accessibillity validator with static instance for all rules from repository that match the builder settings
 7AccessibilityValidator validator = webAccessibility.CreateValidator(ValidationBuilder.All);
 8
 9// Prepare a path to a source HTML file
10string documentPath = Path.Combine(DataDir, "input.html");
11
12// Initialize an object of the HTMLDocument class
13using (HTMLDocument document = new HTMLDocument(documentPath))
14{
15    // Check the document
16    ValidationResult validationResult = validator.Validate(document);
17
18    // Checking for success
19    if (!validationResult.Success)
20    {
21        // Get a list of RuleValidationResult Details
22        foreach (RuleValidationResult detail in validationResult.Details)
23        {
24            Console.WriteLine("{0}:{1} = {2}", detail.Rule.Code, detail.Rule.Description, detail.Success);
25        }
26    }
27}

更完整的描述可以在文章 验证结果 – 使用 C# 检查 Web 可访问性中找到。

另请参阅

  • Web 可访问性检查章节中,您将学习如何使用 Aspose.Html.Accessibility 和 Aspose.Html.Accessibility.Results 命名空间中的类和方法来检查网站是否符合所有 WCAG 标准或仅满足特定标准。
  • 文章 屏幕阅读器可访问性解释了如何使用 Aspose.HTML for .NET API,根据 WCAG 指南设计网站以实现屏幕阅读器可访问性。
  • 如果您想了解如何根据 Web 可访问性的世界权威机构 WCAG 标准正确调整 Web 内容的对比度,请查看文章 颜色对比度可访问性。您将了解如何使用 C# 测试颜色对比度可访问性,并使您的 Web 内容易于所有用户阅读。
  • 在文章 Web 可访问性规则中,您将学习如何使用 AccessibilityRules 类进行 Web 可访问性检查,该类是 WCAG 2 要求、成功标准和技术的一个存储库。
  • 文章 错误和警告讨论了有助于在网站可访问性测试期间收集有关错误和警告信息的类和接口。它重点介绍了失败标准和报告错误的方法,并提供了用于在测试 HTML 文档后检索 Web 可访问性错误的 C# 示例。

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

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.