Ошибки и предупреждения – Проверка веб-доступности на C#
Aspose.HTML для .NET предоставляет пространство имен Aspose.Html.Accessibility, которое предназначено для всех манипуляций и проверок, связанных с веб-доступностью. В этой статье будут рассмотрены классы и интерфейсы, которые помогают собирать информацию об ошибках и предупреждениях при проверке доступности веб-сайта на соответствие требованиям WCAG. Мы уделим особое внимание критериям сбоев и методам, которые сообщают об ошибках, и рассмотрим пример C# получения ошибок веб-доступности после проверки HTML-документа.
Как использовать класс AccessibilityValidator для проверки веб-доступности вы можете узнать из статьи Accessibility Validator – Проверка доступности веб-сайта на C#.
Обнаружение ошибок помогает выявить препятствия, которые могут помешать людям с ограниченными возможностями эффективно использовать веб-контент и взаимодействовать с ним. Ошибки и предупреждения указывают, что необходимо предпринять для улучшения доступности Интернета. Они служат для разработчиков и дизайнеров дорожной картой для внесения необходимых изменений.
IError
IError – это общедоступный интерфейс, содержащий информацию об ошибке проверки. Это означает ошибочную проверку, т. е. правило не было пройдено – и его результат не соответствует Accessibility.
Property | Description |
---|---|
ErrorMessage | Returns a string message of the error or warning. |
Target | Returns an HTML or CSS element where the error was found. The returned object is of type Target. |
ErrorTypeName | Description of the presentation of the error object. It has two options “Error” or “Warning”. |
ErrorType | Returns error type numeric value. |
Success | Result of this object. |
Объект IError имеет такие значения:
* ErrorType = 1 and Success = false – это означает, что ошибка критическая и результат проверки не выполнен.
* ErrorType = 2 and Success = true – это означает, что ошибка не критична, а носит информационный характер, отображает подсказки по возможному улучшению.
Тип ошибки определяется типом оборудования; если техника достаточна, то ErrorType = 1, и это Error; в противном случае ErrorType = 2 — предупреждение.
Target
Target – это общедоступный класс, который содержит элемент HTML или CSS документа, в котором была обнаружена ошибка.
Property | Description |
---|---|
Item | Returns Object of html or css element. |
TargetType | Returns the type of the contained object. Object type of TargetTypes. |
TargetTypes
Перечисление TargetTypes типов элементов из HTML-документа, содержащего ошибку:
Value | Description |
---|---|
HTMLElement | The element containing the HTMLElement from document. |
CSSStyleRule | The element containing the CSSStyleRule from document. |
CSSStyleSheet | The element containing the CSSStyleSheet from document. |
Давайте посмотрим на код C# для перебора результатов проверки веб-доступности, уделив особое внимание критериям сбоя и деталям методов, сообщающих об ошибках. Пример получения сведений об ошибках и элементов HTML-документа:
- Используйте класс
RuleValidationResult и перебирайте объекты
RuleResult
, содержащиеся вValidationResult.Details
. Они представляют собой разные критерии доступности. - Распечатайте код и описание критерия и укажите, был ли он успешным или нет. Для этого используйте свойства Code и Description интерфейса IRule.
- Используйте свойство Success, чтобы проверить критерии.
- Используйте объекты
ITechniqueResult –
result
, содержащийся вruleResult.Errors
. Объекты ITechniqueResult представляют результаты отдельных правил для критерия, сообщившего об ошибках. - Распечатайте информацию о методе, включая код метода, статус успеха и описание.
- Используйте свойство IError, чтобы получить объект ошибки из результата. Результат представляет конкретную проблему доступности, а объект ошибки содержит информацию об этой проблеме.
- Используйте свойство Target для получения целевого объекта, связанного с ошибкой. Целевой объект обычно представляет собой конкретный элемент HTML, правило CSS или другой контент, который вызвал ошибку доступности.
- Распечатайте информацию об ошибке. Он включает тип ошибки (
error.ErrorTypeName
) и сообщение об ошибке (error.ErrorMessage
). - Используйте свойство 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 }