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

Как проверить доступность веб-сайта

Проверка веб-сайта на доступность означает, что все, включая людей с ограниченными возможностями, могут пользоваться вашим сайтом или приложением. Для этого необходимо протестировать содержимое на соответствие рекомендациям WCAG, в которых описано, как сделать цифровой опыт более инклюзивным. Используя Aspose.HTML for Java, вы можете автоматизировать этот процесс, проверив HTML и CSS на наличие проблем с доступностью – либо по полному набору стандартов WCAG, либо сфокусировавшись на определенных критериях.

В этой статье вы узнаете, как оценить доступность сайта на соответствие требованиям WCAG с помощью классов и методов из пакетов com.aspose.html.accessibility и com.aspose.html.accessibility.results. Мы рассмотрим различные классы и интерфейсы, которые помогают собирать информацию об ошибках и предупреждениях при проверке доступности сайта. Особое внимание будет уделено критериям отказа и методам сообщения об ошибках, а также Java-примеру, демонстрирующему получение информации об ошибках доступности веб-сайта после проверки HTML-документа.

Давайте посмотрим фрагмент кода, связанный с проверкой веб-доступности. Следующий код проверяет доступность удаленной HTML-страницы с использованием всех правил валидации WCAG и выводит подробную информацию о правилах, которые не были успешно выполнены:

  1. Используйте конструктор WebAccessibility(), чтобы создать экземпляр класса WebAccessibility, отвечающего за проверку доступности веб-страниц.
  2. Вызовите метод createValidator(), чтобы создать объект валидатора.
  3. Загрузите HTML-страницу с помощью конструктора HTMLDocument(Url).
  4. Используйте метод validate(document) для проверки веб-страницы на доступность. Результат сохраняется в переменной validationResult.
  5. Проверьте, была ли проверка успешной. Для каждой проблемы доступности выведите информацию о коде правила, описании правила и о том, прошла ли проверка успешно или нет.
 1// Check website for WCAG compliance in Java
 2
 3// Initialize webAccessibility container
 4WebAccessibility webAccessibility = new WebAccessibility();
 5
 6// Create an accessibility validator with static instance
 7// for all rules from repository that match the builder settings
 8AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
 9
10// Initialize an HTMLDocument object
11final HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net/generators/video/");
12ValidationResult validationResult = validator.validate(document);
13
14// Checking for success
15if (!validationResult.getSuccess()) {
16    // Get a list of Details
17    for (RuleValidationResult detail : validationResult.getDetails()) {
18        System.out.println(String.format("%s: %s = %s",
19                detail.getRule().getCode(),
20                detail.getRule().getDescription(),
21                detail.getSuccess()
22        ));
23    }
24}

Ошибки и предупреждения

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

IError

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

Интерфейс IError описывает детали проблемы валидации, возникшей при проверке доступности. Он предоставляет ключевую информацию об ошибке, включая человекочитаемое сообщение с помощью getErrorMessage(), статус результата с помощью getSuccess(), а также тип ошибки в виде числового значения (getErrorType()) и описательного имени (getErrorTypeName()), например, Error или Warning. Кроме того, getTarget() возвращает конкретный элемент HTML или CSS, в котором возникла проблема, что позволяет точно определить и устранить проблемы с доступностью. Этот интерфейс необходим для эффективной интерпретации и представления результатов проверки доступности.

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

* ErrorType = 1 and Success = false – this means that the error is critical, and the result of the check is not performed.
* ErrorType = 2 and Success = true – this means that the error is not critical but has an informational character and displays hints for possible improvement. 

Тип ошибки определяется типом техники:

Target

Класс Target представляет конкретный элемент HTML или CSS, в котором при проверке была обнаружена ошибка доступности или предупреждение. Он предоставляет два ключевых свойства: Item, которое возвращает фактический объект (например, HTML-тег или правило CSS), вызвавший проблему, и TargetType, которое определяет, является ли источником проблемы элемент HTML или компонент CSS.

TargetTypes

Перечисление TargetTypes определяет возможные типы объектов в HTML-документе, где может быть обнаружена ошибка доступности или предупреждение. Оно помогает классифицировать источник проблемы, что облегчает ее выявление и решение. Перечисление включает три значения:

NameValueDescription
HTMLElement0The element containing the HTMLElement from a document: standard HTML elements such as <img> or <button>.
CSSStyleRule1The element containing the CSSStyleRule from a document: specific CSS rules in stylesheets.
CSSStyleSheet2The element containing the CSSStyleSheet from a document: entire CSS stylesheets.

Это перечисление работает в сочетании с классом Target, чтобы точно указать, какой тип элемента вызвал результат проверки.

Как создать полный отчет о доступности

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

  1. Используйте класс RuleValidationResult и пройдитесь по объектам ruleResult, содержащимся в validationResult.getDetails(). Они представляют различные критерии доступности.
  2. Выведите код и описание критерия, а также информацию о том, был ли он успешным или нет. Для этого используйте методы getCode() и getDescription() интерфейса IRule.
  3. Для проверки критерия используйте getSuccess().
  4. Используйте объекты ITechniqueResultruleDetail, содержащиеся в ruleResult.getErrors(). Объекты ITechniqueResult представляют отдельные результаты правил для критерия, в котором были обнаружены ошибки.
  5. Выведите информацию о методе, включая код метода, статус успеха и описание.
  6. Используйте свойство IError, чтобы получить объект error из ruleDetail. Объект ruleDetail представляет конкретную проблему доступности, а объект error содержит информацию об этой проблеме.
  7. Используйте метод getTarget(), чтобы получить объект target, связанный с ошибкой. Объект target обычно представляет конкретный элемент HTML, правило CSS или другое содержимое, вызвавшее ошибку доступности.
  8. Выведите информацию об ошибке. Она включает тип ошибки error.getErrorTypeName() и сообщение об ошибке error.getErrorMessage().
  9. Используйте свойство TargetType класса Target, чтобы проверить тип целевого объекта. В зависимости от типа целевого объекта извлекается определенная информация и выводится на консоль.
 1// Check HTML for WCAG compliance and output failed rule codes and error messages
 2
 3// Initialize a webAccessibility container
 4WebAccessibility webAccessibility = new WebAccessibility();
 5
 6// Create an accessibility validator with static instance
 7// for all rules from repository that match the builder settings
 8AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
 9
10String documentPath = "input.html";
11
12// Initialize an object of the HTMLDocument class
13final HTMLDocument document = new HTMLDocument(documentPath);
14ValidationResult validationResult = validator.validate(document);
15
16for (RuleValidationResult ruleResult : validationResult.getDetails()) {
17    //  list only unsuccessful rule
18    if (!ruleResult.getSuccess()) {
19        // print the code and description of the rule
20        System.out.println(String.format("%s: %s = %s",
21                ruleResult.getRule().getCode(),
22                ruleResult.getRule().getDescription(),
23                ruleResult.getSuccess()
24        ));
25
26        // print the results of methods with errors
27        for (ITechniqueResult ruleDetail : ruleResult.getErrors()) {
28            // print the code and description of the method
29            StringBuilder str = new StringBuilder(String.format("\n{0}: {1} - {2}",
30                    ruleDetail.getRule().getCode(),
31                    ruleDetail.getSuccess(),
32                    ruleDetail.getRule().getDescription()
33            ));
34            // get an error object
35            IError error = ruleDetail.getError();
36            // get a target object
37            Target target = error.getTarget();
38            // get error type and message
39            str.append(String.format("\n\n\t%s : %s",
40                    error.getErrorTypeName(),
41                    error.getErrorMessage()
42            ));
43
44            if (target != null) {
45                // Checking the type of the contained object for casting and working with it
46                if (target.getTargetType() == TargetTypes.CSSStyleRule) {
47                    ICSSStyleRule cssRule = (ICSSStyleRule) target.getItem();
48                    str.append(String.format("\n\n\t%s",
49                            cssRule.getCSSText()
50                    ));
51                }
52                if (ruleDetail.getError().getTarget().getTargetType() == TargetTypes.CSSStyleSheet) {
53                    str.append(String.format("\n\n\t%s",
54                            ((ICSSStyleSheet) target.getItem()).getTitle()
55                    ));
56                }
57                if (ruleDetail.getError().getTarget().getTargetType() == TargetTypes.HTMLElement) {
58                    str.append(String.format("\n\n\t%s",
59                            ((HTMLElement) target.getItem()).getOuterHTML()
60                    ));
61                }
62            }
63            System.out.println(str);
64        }
65    }
66}

Для каждого неудачного критерия в коде перечисляются описания правил, неудачных методов, сообщения об ошибках и выделяется точный элемент HTML или CSS, в котором была обнаружена проблема. Такой подход идеально подходит для создания полного и точного отчета о доступности, включая контекст ошибки и техническую диагностику для разработчиков.

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

  • Полезные советы по оценке и улучшению видимости текста вы найдете в статье Доступность цветового контраста, в которой рассматривается проверка контрастности на основе WCAG с использованием Aspose.HTML for Java.
  • Инструкции по проверке совместимости веб-контента с программами чтения с экрана вы найдете в статье Доступность программ чтения с экрана. Вы узнаете, как проверить альтернативный текст и другие ключевые элементы.
  • Если вы хотите узнать, как просматривать результаты проверки и выявлять проблемы веб-доступности, обратитесь к статье Результаты проверки.

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

Текст “Проверка цветового контраста”

Close
Loading

Analyzing your prompt, please hold on...

An error occurred while retrieving the results. Please refresh the page and try again.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.