使用 .NET API 验证 HTML 可访问性

Aspose.HTML for .NET 提供 AccessibilityValidator ,用于按照 WCAG 可访问性规则检查 HTML 文档。您可以验证本地文件或网页,识别失败的检查和相关元素,并将结果导出为报告。

定期验证可帮助开发团队在发布前发现可访问性问题,并在 HTML 内容发生变化时重复执行相同检查。


在 C# 中验证 HTML 文档

使用所有可用规则设置创建验证器,验证文档,并仅遍历失败结果。读取 ruleResult.Results,以便即使单独的 Errors 集合为空,也能报告每项失败的技术。

验证 HTML 可访问性的 C# 代码

using System;
using System.IO;
using Aspose.Html;
using Aspose.Html.Accessibility;
using Aspose.Html.Accessibility.Results;

string documentPath = Path.Combine("data", "input.html");

WebAccessibility webAccessibility = new WebAccessibility();
AccessibilityValidator validator = webAccessibility.CreateValidator(
    ValidationBuilder.All);

// Validate the HTML document against the configured rules
using HTMLDocument document = new HTMLDocument(documentPath);
ValidationResult validationResult = validator.Validate(document);

foreach (RuleValidationResult ruleResult in validationResult.Details)
{
    if (ruleResult.Success)
    {
        continue;
    }

    Console.WriteLine($"{ruleResult.Rule.Code}: {ruleResult.Rule.Description}");

    // Inspect every technique result, including entries without an error object
    foreach (ITechniqueResult techniqueResult in ruleResult.Results)
    {
        if (techniqueResult.Success)
        {
            continue;
        }

        Console.WriteLine(
            $"  {techniqueResult.Rule.Code}: {techniqueResult.Rule.Description}");

        IError error = techniqueResult.Error;
        if (error == null)
        {
            continue;
        }

        Console.WriteLine($"    {error.ErrorTypeName}: {error.ErrorMessage}");

        if (error.Target?.TargetType == TargetTypes.HTMLElement &&
            error.Target.Item is HTMLElement element)
        {
            Console.WriteLine($"    {element.OuterHTML}");
        }
    }
}

如何验证 HTML 可访问性

  1. 创建 WebAccessibility 对象,以访问验证器创建功能和可访问性规则库。
  2. 调用 CreateValidator(ValidationBuilder.All),为符合完整生成器设置的所有规则创建验证器。
  3. 将文件或 URL 加载到 HTMLDocument 中。
  4. 调用 Validate() 并保存返回的 ValidationResult 。
  5. 遍历 Details,保留失败的 RuleValidationResult 对象,并检查 Results 中失败的技术。如果结果提供相关信息,则输出错误详情和受影响的 HTML 元素。

配置并处理可访问性检查

  • 完整验证。 ValidationBuilder.All 将所有可用级别和技术设置应用于规则库中的规则。
  • 筛选验证。 可按级别、技术、HTML 标签、原则、指南、标准或规则列表限制验证范围。
  • 详细诊断。 ValidationResult.Details 提供规则结果,而技术错误包含消息和受影响目标。
  • 本地和远程 HTML。 HTMLDocument 可以在验证前加载 HTML 文件或网页 URL。
  • 可导出的结果。 可以在代码中处理报告,也可以将其保存为文本、JSON 或 XML,用于审查和自动化工作流。
  • 手动验证。 自动检查结果需要与键盘、辅助技术、内容和可用性测试结合使用。

如果只需偶尔执行无代码检查,请使用 在线 Web Accessibility Checker 。需要配置、重复执行验证或将其集成到开发管道时,请使用 .NET API。


可访问性验证器文档

辅助功能验证器 指南介绍可用的 CreateValidator() 重载和 ValidationBuilder 筛选器。有关失败技术和目标元素的处理,请参阅 错误和警告 ;有关将报告导出为文本、JSON 或 XML 的方法,请参阅 保存可访问性验证结果 。


安装 Aspose.HTML for .NET

使用 .NET CLI 从 NuGet 安装 Aspose.HTML for .NET :

dotnet add package Aspose.HTML

您也可以使用 NuGet 包管理器界面,或在包管理器控制台中运行 Install-Package Aspose.HTML。有关配置详情,请参阅 安装指南 ;如需不受评估版限制地测试 API,请申请 临时许可证 。


HTML 可访问性验证器常见问题

1. 如何在 C# 中验证 HTML 可访问性?

使用 HTMLDocument 加载 HTML 文件或 URL,通过 WebAccessibility 创建 AccessibilityValidator,然后调用 Validate()。返回的 ValidationResult 包含验证器所评估规则的状态和详细结果。

2. 自动可访问性验证器能保证符合 WCAG 吗?

不能。自动验证可以识别可由机器测试的问题,但许多要求取决于上下文和人工判断。仍需执行键盘测试、辅助技术测试并审查内容含义。

3. 验证器可以同时检查本地 HTML 文件和网页吗?

可以。HTMLDocument 可以加载本地文件或 URL。远程验证取决于网络访问,以及文档能否获取所选检查所需的样式表、脚本和其他资源。

4. 可以只验证选定的 WCAG 规则或级别吗?

可以。使用 ValidationBuilder 按级别或技术进行筛选,或者使用原则、指南、标准或明确的规则列表创建验证器。当管道需要专项策略而非完整规则库时,这种方式很有用。

5. 可以保存可访问性验证结果吗?

可以。使用 SaveToString() 获取文本表示,或通过带有 ValidationResultSaveFormat 的 SaveTo() 写入文本、JSON 或 XML。结构化输出可用于存档、报告和质量控制工作流。

相关 Web 可访问性工作流

继续查看 WCAG 规则、图像 alt 属性检查、颜色对比度验证或可访问性 API 概述。