Результаты проверки – Проверка доступности веб-сайтов на C#
Aspose.HTML for .NET предоставляет пространство имен Aspose.Html.Accessibility, которое предназначено для всех манипуляций и проверок, связанных с веб-доступностью. В этой статье вы узнаете, как просматривать результаты проверок веб-сайтов на соответствие требованиям WCAG, сообщать о проверенных критериях и подробно описывать конкретные проблемы, возникшие во время проверки.
Как cоздать и использовать Accessibility Validator для проверки веб-доступности вы можете узнать из статьи Accessibility Validator – Проверка доступности веб-сайта на C#.
Класс ValidationResult
Пространство имен Aspose.Html.Accessibility.Results содержит классы, описывающие результаты проверки правил. Класс ValidationResult – это основной класс, содержащий результаты для всех критериев. Объект ValidationResult включает описание результатов проверки документа и имеет свойства:
Property | Description |
---|---|
Success | Returns a boolean that says whether the validation succeeded. |
Details | Returns 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// Initialize a webAccessibility container
2var webAccessibility = new WebAccessibility();
3
4// Create an accessibillity validator with static instance for all rules from repository that match the builder settings
5var validator = webAccessibility.CreateValidator(ValidationBuilder.All);
6
7// Prepare a path to a source HTML file
8string documentPath = Path.Combine(DataDir, "input.html");
9
10// Initialize an object of the HTMLDocument class
11using (var document = new HTMLDocument(documentPath))
12{
13 // Check the document
14 ValidationResult validationResult = validator.Validate(document);
15
16 // Checking for success
17 if (!validationResult.Success)
18 {
19 // Get a list of RuleValidationResult Details
20 foreach (var detail in validationResult.Details)
21 {
22 Console.WriteLine("{0}:{1} = {2}", detail.Rule.Code, detail.Rule.Description, detail.Success);
23 }
24 }
25}
Код выводит информацию о проблемах доступности на консоль, что позволяет вам выявить и устранить конкретные проблемы в вашем HTML-документе.
Класс RuleValidationResult
Класс RuleValidationResult – результат проверки правила, содержит список результатов методов ITechniqueResult, которые являются способами удовлетворения критериев успеха.
Property | Description |
---|---|
Success | Returns a boolean that says whether the validation succeeded. |
Rule | Returns the checked rule. The rule has a type that implements the IRule interface. |
Results | Returns a collection of all results, both successful and not. Returns type is IList< ITechniqueResult>. |
Errors | Returns a collection of results with Errors. Returns type is IList< ITechniqueResult>. |
Warnings | Returns 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 Output.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 – это общедоступный интерфейс, содержащий информацию о результате проверки.
Property | Description |
---|---|
Success | Returns a boolean that says whether the validation succeeded. |
Rule | Returns the checked technique with type of IRule. |
Error | Returns the object with error. Returns type is IError. |
Ниже приведен пример C# вывода результатов, которые не прошли проверку критериев успеха. Выводим на консоль описание кода критериев, а также все подробности выполнения методов этих критериев как успешно, так и с ошибками:
- Каждый
RuleValidationResult
представляет собой конкретный критерий доступности, оцениваемый во время проверки. Код перебирает объектыRuleValidationResult
, содержащиеся вvalidationResult.Details
. - Проверьте, не был ли критерий неудачным –
!criterionResult.Success
. Если критерий не выполнен, код сообщает информацию о неудовлетворительном критерии. - Используйте
Console.WriteLine
, чтобы распечатать код и описание критерия сбоя. - Затем выполните итерацию по объектам
ITechniqueResult
. Эти объектыITechniqueResult
представляют результаты отдельных правил для критерия, сообщившего об ошибках. - Для каждого результата правила создайте объект
StringBuilder
для форматирования информации о методе, включая код метода, успех метода и описание метода. - Распечатайте информацию о результате каждого правила, включая код метода, статус успеха и описание.
1// Initialize a webAccessibility container
2var webAccessibility = new WebAccessibility();
3
4// Create an accessibillity validator with static instance for all rules from repository that match the builder settings
5var validator = webAccessibility.CreateValidator(ValidationBuilder.All);
6
7string documentPath = Path.Combine(DataDir, "input.html");
8
9// Initialize an object of the HTMLDocument class
10using (var document = new HTMLDocument(documentPath))
11{
12 // Check the document
13 ValidationResult validationResult = validator.Validate(document);
14
15 // Take a list of rules results
16 foreach (var ruleResult in validationResult.Details)
17 {
18 // List only unsuccessful rule
19 if (!ruleResult.Success)
20 {
21 // Print the code and description of the rule
22 Console.WriteLine("{0}:{1}", ruleResult.Rule.Code, ruleResult.Rule.Description);
23
24 // Print the results of all methods
25 foreach (ITechniqueResult ruleDetail in ruleResult.Results)
26 {
27 // Print the code and description of the criterions
28 StringBuilder str = new StringBuilder(string.Format("\n{0}: {1} - {2}",
29 ruleDetail.Rule.Code, ruleDetail.Success,
30 ruleDetail.Rule.Description));
31 Console.WriteLine(str.ToString());
32 }
33 }
34 }
35}
Использование Aspose.HTML for .NET позволяет систематически просматривать результаты проверок веб-доступности, сообщать о проверенных критериях и подробно описывать конкретные проблемы, возникшие в процессе проверки. Это полезно для понимания природы проблем с доступностью вашего веб-контента и принятия соответствующих мер для их решения.