Результаты проверки – Как проверить веб-доступность и сохранить результаты

Aspose.HTML for Java включает пакет com.aspose.html.accessibility, предназначенный для выполнения и управления проверками доступности веб-сайтов.

В этой статье рассказывается о том, как просмотреть результаты проверки на соответствие стандартам WCAG, сообщить о проверенных критериях и подробно описать конкретные проблемы, возникшие в ходе проверки.

Чтобы узнать, как программно проверить доступность веб-сайта, и получить пошаговое руководство, обратитесь к статье Accessibility Validator – Проверка доступности веб-сайта на Java.

Класс ValidationResult

Пакет com.aspose.html.accessibility.results содержит классы, описывающие результаты проверки правил веб-доступности. Класс ValidationResult – это основной класс, который содержит результаты проверки для всех критериев.

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

 1// Initialize a webAccessibility container
 2WebAccessibility webAccessibility = new WebAccessibility();
 3
 4// Create an accessibility validator with static instance for all rules
 5// from repository that match the builder settings
 6AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
 7
 8// Prepare a path to a source HTML file
 9String documentPath = "input.html";
10
11// Initialize an object of the HTMLDocument class
12final HTMLDocument document = new HTMLDocument(documentPath);
13ValidationResult validationResult = validator.validate(document);
14
15// Checking for success
16if (!validationResult.getSuccess()) {
17    // Get a list of RuleValidationResult Details
18    for (RuleValidationResult detail : validationResult.getDetails()) {
19        System.out.println(String.format("%s: %s = %s",
20                detail.getRule().getCode(),
21                detail.getRule().getDescription(),
22                detail.getSuccess()));
23    }
24}
Example_ValidationResult hosted with ❤ by GitHub

Класс RuleValidationResult

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

Класс раскрывает несколько ключевых свойств (методов):

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

1    // Get a list of RuleValidationResult Details
2    for (RuleValidationResult result : validationResult.getDetails())
3    {
4        System.out.println(String.format("%s: %s = %s",
5            result.getRule().getCode(), result.getRule().getDescription(), result.getSuccess()));
6    }

Предположим, что getDetails содержит результаты для двух правил – H37 и H67. Выходные данные будут такими:

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

ITechniqueResult

ITechniqueResult – это общедоступный интерфейс, содержащий информацию о результате проверки конкретной техники доступности, используемой для удовлетворения критерия успеха правила. Он включает в себя метод getRule() для идентификации связанного правила, getSuccess() для указания того, прошла ли техника, и getError(), который возвращает объект IError, содержащий подробности о любых проблемах, возникших во время проверки. Этот интерфейс помогает разбить проверку правила на отдельные результаты работы техники для более детального анализа.

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

 1// Initialize a webAccessibility container
 2WebAccessibility webAccessibility = new WebAccessibility();
 3
 4// Create an accessibility validator with static instance for all rules
 5// from repository that match the builder settings
 6AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
 7
 8String documentPath = "input.html";
 9
10// Initialize an object of the HTMLDocument class
11final HTMLDocument document = new HTMLDocument(documentPath);
12ValidationResult validationResult = validator.validate(document);
13
14// Take a list of rules results
15for (RuleValidationResult ruleResult : validationResult.getDetails()) {
16    // List only unsuccessful rule
17    if (!ruleResult.getSuccess()) {
18        // Print the code and description of the rule
19        System.out.println(String.format("%s: %s",
20                ruleResult.getRule().getCode(),
21                ruleResult.getRule().getDescription()
22        ));
23
24        // Print the results of all methods
25        for (ITechniqueResult ruleDetail : ruleResult.getResults()) {
26            // Print the code and description of the criterions
27            StringBuilder str = new StringBuilder(String.format("\n{0}: {1} - {2}",
28                    ruleDetail.getRule().getCode(),
29                    ruleDetail.getSuccess(),
30                    ruleDetail.getRule().getDescription()
31            ));
32            System.out.println(str);
33        }
34    }
35}
Example_IRuleResult hosted with ❤ by GitHub

Сохранить результаты проверки

После завершения процесса валидации вы можете сохранить результаты для дальнейшего анализа, документирования и создания отчетов. Библиотека Aspose.HTML for Java позволяет сохранять результаты проверки в объекте TextWriter, где параметр типа ValidationResultSaveFormat указывает, в каком формате будет сохранен текст.

Для сохранения результатов проверки веб-доступности доступны три основных формата:

Сохранение результатов проверки в строку

При сохранении результатов проверки в строку используется метод saveToString():

 1String htmlPath = "input.html";
 2
 3final HTMLDocument document = new HTMLDocument(htmlPath);
 4AccessibilityValidator validator = new WebAccessibility().createValidator();
 5ValidationResult validationresult = validator.validate(document);
 6
 7// get rules errors in string format
 8String content = validationresult.saveToString();
 9
10// SaveToString - return only errors and warnings
11// if everything is ok, it will return "validationResult:true"
12System.out.println(content);
Example_SaveToString hosted with ❤ by GitHub

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

 1validationResult:False;
 2%%
 3technique: H35;
 4criterion: 1.1.1;
 5type: Error;
 6description: Check that the applet element contains an alt attribute with a text alternative for the applet. ;
 7source: <applet code="tictactoe.class" width="250" height="250">tic-tac-toe game</applet>;
 8%%
 9technique: H37;
10criterion: 1.1.1;
11type: Error;
12description: Img element missing an alt attribute. The value of this attribute is referred to as "alt text".;
13source: <img src="image1.jpeg">;
14%%
15
16...

Где указан результат проверки validationResult и список ошибок с комментариями:

Сохранение результатов проверки в формате XML

Для тех, кто предпочитает более структурированный и машиночитаемый формат, сохранение результатов проверки в XML – подходящий выбор. Давайте рассмотрим, как сохранить результаты в формате XML с помощью метода saveTo(writer, format). Этот метод принимает объект TextWriter и желаемый формат ValidationResultSaveFormat (в данном случае XML).

 1String htmlPath = "input.html";
 2
 3final HTMLDocument document = new HTMLDocument(htmlPath);
 4AccessibilityValidator validator = new WebAccessibility().createValidator();
 5ValidationResult validationresult = validator.validate(document);
 6
 7final java.io.StringWriter sw = new java.io.StringWriter();
 8validationresult.saveTo(sw, ValidationResultSaveFormat.XML);
 9
10String xml = sw.toString();
11System.out.println(xml);
12
13DocumentBuilderFactory documentBuildFactory = DocumentBuilderFactory.newInstance();
14DocumentBuilder documentBuilder = documentBuildFactory.newDocumentBuilder();
15documentBuilder.parse(new java.io.ByteArrayInputStream(xml.getBytes()));
Example_OutputToXML hosted with ❤ by GitHub

Полученное XML-представление представляет собой хорошо организованный формат для удобства анализа и дальнейшей обработки:

 1<validationResult>
 2<isValid>false</isValid>
 3<details>
 4  <techniqueResult>
 5    <technique>H35</technique>
 6    <criterion>1.1.1</criterion>
 7    <type>Error</type>
 8    <description>Check that the applet element contains an alt attribute with a text alternative for the applet. </description>
 9    <source><![CDATA[<applet code="tictactoe.class" width="250" height="250">tic-tac-toe game</applet>]]>
10    </source>
11  </techniqueResult>
12  <techniqueResult>
13    <technique>H37</technique>
14    <criterion>1.1.1</criterion>
15    <type>Error</type>
16    <description>Img element missing an alt attribute. The value of this attribute is referred to as "alt text".</description>
17    <source><![CDATA[<img src="image1.jpeg">]]>
18    </source>
19  </techniqueResult>
20  
21   ...
22
23 </details>
24</validationResult>

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

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

Текст “Проверка веб-доступности”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.