Результаты проверки – Проверка доступности веб-сайтов на C#

Aspose.HTML for .NET предоставляет пространство имен Aspose.Html.Accessibility, которое предназначено для всех манипуляций и проверок, связанных с веб-доступностью. В этой статье вы узнаете, как просматривать результаты проверок веб-сайтов на соответствие требованиям WCAG, сообщать о проверенных критериях и подробно описывать конкретные проблемы, возникшие во время проверки.

Как cоздать и использовать Accessibility Validator для проверки веб-доступности вы можете узнать из статьи Accessibility Validator – Проверка доступности веб-сайта на C#.

Класс ValidationResult

Пространство имен Aspose.Html.Accessibility.Results содержит классы, описывающие результаты проверки правил. Класс ValidationResult – это основной класс, содержащий результаты для всех критериев. Объект ValidationResult включает описание результатов проверки документа и имеет свойства:

PropertyDescription
SuccessReturns a boolean that says whether the validation succeeded.
DetailsReturns IList< RuleValidationResult> containing objects of RuleValidationResult with information about validation results.
SaveToString()Save validation results to string
SaveTo(TextWriter writer)Saves the validation results in a System.IO.TextWriter object in text format.
SaveTo(TextWriter writer, ValidationResultSaveFormat format)Saves the validation results to the System.IO.TextWriter object, where the ValidationResultSaveFormat type parameter specifies in what format the text will be saved.

Вот фрагмент кода C# для проверки веб-доступности. Он устанавливает валидатор с определенными настройками, проверяет HTML-документ и выводит результаты проверки на консоль:

 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}

Код выводит информацию о проблемах доступности на консоль, что позволяет вам выявить и устранить конкретные проблемы в вашем HTML-документе.

Класс RuleValidationResult

Класс RuleValidationResult – результат проверки правила, содержит список результатов методов ITechniqueResult, которые являются способами удовлетворения критериев успеха.

PropertyDescription
SuccessReturns a boolean that says whether the validation succeeded.
RuleReturns the checked rule. The rule has a type that implements the IRule interface.
ResultsReturns a collection of all results, both successful and not. Returns type is IList< ITechniqueResult>.
ErrorsReturns a collection of results with Errors. Returns type is IList< ITechniqueResult>.
WarningsReturns a collection of results with Warnings. Returns type is IList< ITechniqueResult>.

Следующий код выполняет итерацию по списку объектов RuleValidationResult в свойстве Details объекта validationResult. Каждый RuleValidationResult представляет результат проверки определенного правила доступности во время процесса проверки:

1    // Get a list of RuleValidationResult Details
2    foreach (RuleValidationResult result in validationResult.Details)
3    {
4        Console.WriteLine("{0}:{1} = {2}", result.Rule.Code, result.Rule.Description, result.Success);
5    }

Предположим, Details содержит результаты для двух правил - H37 и H67. Вывод будет следующим:

1H37:Check alt attributes for images = True
2H67:Check that all forms have labels = False

ITechniqueResult

ITechniqueResult – это общедоступный интерфейс, содержащий информацию о результате проверки.

PropertyDescription
SuccessReturns a boolean that says whether the validation succeeded.
RuleReturns the checked technique with type of IRule.
ErrorReturns the object with error. Returns type is IError.

Ниже приведен пример C# вывода результатов, которые не прошли проверку критериев успеха. Выводим на консоль описание кода критериев, а также все подробности выполнения методов этих критериев как успешно, так и с ошибками:

  1. Каждый RuleValidationResult представляет собой конкретный критерий доступности, оцениваемый во время проверки. Код перебирает объекты RuleValidationResult, содержащиеся в validationResult.Details.
  2. Проверьте, не был ли критерий неудачным – !criterionResult.Success. Если критерий не выполнен, код сообщает информацию о неудовлетворительном критерии.
  3. Используйте Console.WriteLine, чтобы распечатать код и описание критерия сбоя.
  4. Затем выполните итерацию по объектам ITechniqueResult. Эти объекты ITechniqueResult представляют результаты отдельных правил для критерия, сообщившего об ошибках.
  5. Для каждого результата правила создайте объект StringBuilder для форматирования информации о методе, включая код метода, успех метода и описание метода.
  6. Распечатайте информацию о результате каждого правила, включая код метода, статус успеха и описание.
 1// Validate HTML accessibility using C# and print all failed WCAG rule with their descriptions
 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
 9string documentPath = Path.Combine(DataDir, "input.html");
10
11// Initialize an object of the HTMLDocument class
12using (HTMLDocument document = new HTMLDocument(documentPath))
13{
14    // Check the document
15    ValidationResult validationResult = validator.Validate(document);
16
17    // Take a list of rules results
18    foreach (RuleValidationResult ruleResult in validationResult.Details)
19    {
20        // List only unsuccessful rule
21        if (!ruleResult.Success)
22        {
23            // Print the code and description of the rule
24            Console.WriteLine("{0}:{1}", ruleResult.Rule.Code, ruleResult.Rule.Description);
25
26            // Print the results of all methods
27            foreach (ITechniqueResult ruleDetail in ruleResult.Results)
28            {
29                // Print the code and description of the criterions
30                StringBuilder str = new StringBuilder(string.Format("\n{0}: {1} - {2}",
31                    ruleDetail.Rule.Code, ruleDetail.Success,
32                    ruleDetail.Rule.Description));
33                Console.WriteLine(str.ToString());
34            }
35        }
36    }
37}

Использование Aspose.HTML for .NET позволяет систематически просматривать результаты проверок веб-доступности, сообщать о проверенных критериях и подробно описывать конкретные проблемы, возникшие в процессе проверки. Это полезно для понимания природы проблем с доступностью вашего веб-контента и принятия соответствующих мер для их решения.

Смотрите также

  • Статья Альтернативный Текст – Веб-доступность объясняет, как разработать веб-сайт для доступности экранного ридера в соответствии с рекомендациями WCAG с использованием API Aspose.HTML for .NET.
  • Ознакомьтесь со статьей Доступность цветового контраста, если вы хотите узнать, как правильно настроить контрастность вашего веб-контента в соответствии со стандартами WCAG, мирового авторитета в области веб-доступности. Вы узнаете, как проверить доступность цветового контраста с помощью C# и сделать ваш веб-контент удобным для чтения для всех пользователей.
  • В статье Валидатор доступности вы узнаете о классе AccessibilityValidator, который можно использовать для проверки правил доступности веб-сайтов, таких как принципы, руководства и критерии.
  • В статье Правила веб-доступности вы узнаете, как использовать класс AccessibilityRules, который является репозиторием требований WCAG 2, критериев успеха и методов для проверок веб-доступности.
  • В статье Ошибки и предупреждения обсуждаются классы и интерфейсы, которые помогают собирать информацию об ошибках и предупреждениях во время тестирования доступности веб-сайта. В ней основное внимание уделяется критериям отказа и методам, которые сообщают об ошибках, и приводится пример C# для извлечения ошибок веб-доступности после тестирования HTML-документа.

Aspose.HTML предлагает бесплатный онлайн-сервис Проверка веб-доступности. Этот инструмент сканирует веб-страницы, проверяет их на соответствие WCAG, выявляет проблемы и предлагает улучшения. Получайте мгновенную информацию о соответствии вашего веб-сайта требованиям, что позволит вам определить объем необходимых исправлений и разрыв между текущим состоянием вашего веб-сайта или HTML-документа и требованиями WCAG.

Text “Web Accessibility Checker”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.