Ошибки и предупреждения – Проверка веб-доступности на C#

Contents
[ Hide Show ]

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

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

Обнаружение ошибок помогает выявить препятствия, которые могут помешать людям с ограниченными возможностями эффективно использовать веб-контент и взаимодействовать с ним. Ошибки и предупреждения указывают, что необходимо предпринять для улучшения доступности Интернета. Они служат для разработчиков и дизайнеров дорожной картой для внесения необходимых изменений.

IError

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

PropertyDescription
ErrorMessageReturns a string message of the error or warning.
TargetReturns an HTML or CSS element where the error was found. The returned object is of type Target.
ErrorTypeNameDescription of the presentation of the error object. It has two options “Error” or “Warning”.
ErrorTypeReturns error type numeric value.
SuccessResult of this object.

Объект IError имеет такие значения:

* ErrorType = 1 and Success = false – это означает, что ошибка критическая и результат проверки не выполнен.
* ErrorType = 2 and Success = true – это означает, что ошибка не критична, а носит информационный характер, отображает подсказки по возможному улучшению.

Тип ошибки определяется типом оборудования; если техника достаточна, то ErrorType = 1, и это Error; в противном случае ErrorType = 2 — предупреждение.

Target

Target – это общедоступный класс, который содержит элемент HTML или CSS документа, в котором была обнаружена ошибка.

PropertyDescription
ItemReturns Object of html or css element.
TargetTypeReturns the type of the contained object. Object type of TargetTypes.

TargetTypes

Перечисление TargetTypes типов элементов из HTML-документа, содержащего ошибку:

ValueDescription
HTMLElementThe element containing the HTMLElement from document.
CSSStyleRuleThe element containing the CSSStyleRule from document.
CSSStyleSheetThe element containing the CSSStyleSheet from document.

Давайте посмотрим на код C# для перебора результатов проверки веб-доступности, уделив особое внимание критериям сбоя и деталям методов, сообщающих об ошибках. Пример получения сведений об ошибках и элементов HTML-документа:

  1. Используйте класс RuleValidationResult и перебирайте объекты RuleResult, содержащиеся в ValidationResult.Details. Они представляют собой разные критерии доступности.
  2. Распечатайте код и описание критерия и укажите, был ли он успешным или нет. Для этого используйте свойства Code и Description интерфейса IRule.
  3. Используйте свойство Success, чтобы проверить критерии.
  4. Используйте объекты ITechniqueResultresult, содержащийся в ruleResult.Errors. Объекты ITechniqueResult представляют результаты отдельных правил для критерия, сообщившего об ошибках.
  5. Распечатайте информацию о методе, включая код метода, статус успеха и описание.
  6. Используйте свойство IError, чтобы получить объект ошибки из результата. Результат представляет конкретную проблему доступности, а объект ошибки содержит информацию об этой проблеме.
  7. Используйте свойство Target для получения целевого объекта, связанного с ошибкой. Целевой объект обычно представляет собой конкретный элемент HTML, правило CSS или другой контент, который вызвал ошибку доступности.
  8. Распечатайте информацию об ошибке. Он включает тип ошибки (error.ErrorTypeName) и сообщение об ошибке (error.ErrorMessage).
  9. Используйте свойство TargetType класса Target, чтобы проверить тип целевого объекта. В зависимости от типа целевого объекта конкретная информация извлекается и выводится на консоль.
 1 foreach (var ruleResult in validationResult.Details)
 2 {
 3     // Print the code and description of the criterion
 4     Console.WriteLine(string.Format("{0}: {1} ({2})",
 5             ruleResult.Rule.Code,
 6             ruleResult.Success,
 7             ruleResult.Rule.Description
 8             ));
 9     //  List only unsuccessful criteria
10     if (!ruleResult.Success)
11     {
12         // Print the results of methods with errors
13         foreach (ITechniqueResult result in ruleResult.Errors)
14         {
15            // Print the code and description of the technique
16             Console.WriteLine(string.Format("\n{0}: {1} ({2})",
17                  result.Rule.Code,
18                  result.Success,
19                  result.Rule.Description
20                  ));
21
22             if (result.Error != null)
23             {
24                // Get error object
25                var error = result.Error;
26                // Get target object
27                var target = error.Target;
28                // Print error type and message
29                Console.WriteLine("\n\t{0} {1}", error.ErrorTypeName, error.ErrorMessage);
30
31                if (target != null)
32                {
33                    // Checking the type of the contained object for casting and working with it
34                    if (target.TargetType == TargetTypes.CSSStyleRule)
35                        Console.WriteLine("\n\n\t{0}", ((ICSSStyleRule)target.Item).CSSText);
36                    if (target.TargetType == TargetTypes.CSSStyleSheet)
37                        Console.WriteLine("\n\n\t{0}", ((ICSSStyleSheet)target.Item).Title);
38                    if (target.TargetType == TargetTypes.HTMLElement)
39                        Console.WriteLine("\n\n\t{0}", ((HTMLElement)target.Item).OuterHTML);
40                }
41             }
42         }
43     }
44 }
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.