Проверка веб-доступности – Ошибки и предупреждения
Как проверить доступность веб-сайта
Проверка веб-сайта на доступность означает, что все, включая людей с ограниченными возможностями, могут пользоваться вашим сайтом или приложением. Для этого необходимо протестировать содержимое на соответствие рекомендациям WCAG, в которых описано, как сделать цифровой опыт более инклюзивным. Используя Aspose.HTML for Java, вы можете автоматизировать этот процесс, проверив HTML и CSS на наличие проблем с доступностью – либо по полному набору стандартов WCAG, либо сфокусировавшись на определенных критериях.
В этой статье вы узнаете, как оценить доступность сайта на соответствие требованиям WCAG с помощью классов и методов из пакетов com.aspose.html.accessibility и com.aspose.html.accessibility.results. Мы рассмотрим различные классы и интерфейсы, которые помогают собирать информацию об ошибках и предупреждениях при проверке доступности сайта. Особое внимание будет уделено критериям отказа и методам сообщения об ошибках, а также Java-примеру, демонстрирующему получение информации об ошибках доступности веб-сайта после проверки HTML-документа.
Давайте посмотрим фрагмент кода, связанный с проверкой веб-доступности. Следующий код проверяет доступность удаленной HTML-страницы с использованием всех правил валидации WCAG и выводит подробную информацию о правилах, которые не были успешно выполнены:
- Используйте конструктор WebAccessibility(), чтобы создать экземпляр класса WebAccessibility, отвечающего за проверку доступности веб-страниц.
- Вызовите метод createValidator(), чтобы создать объект валидатора.
- Загрузите HTML-страницу с помощью конструктора
HTMLDocument(
Url
). - Используйте метод
validate(
document
) для проверки веб-страницы на доступность. Результат сохраняется в переменнойvalidationResult
. - Проверьте, была ли проверка успешной. Для каждой проблемы доступности выведите информацию о коде правила, описании правила и о том, прошла ли проверка успешно или нет.
1// Initialize webAccessibility container
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// Create an accessibility validator with static instance
5// for all rules from repository that match the builder settings
6AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
7
8// Initialize an HTMLDocument object
9final HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net/generators/video/");
10ValidationResult validationResult = validator.validate(document);
11
12// Checking for success
13if (!validationResult.getSuccess()) {
14 // Get a list of Details
15 for (RuleValidationResult detail : validationResult.getDetails()) {
16 System.out.println(String.format("%s: %s = %s",
17 detail.getRule().getCode(),
18 detail.getRule().getDescription(),
19 detail.getSuccess()
20 ));
21 }
22}
Ошибки и предупреждения
Обнаружение ошибок помогает выявить барьеры, которые могут помешать людям с ограниченными возможностями эффективно использовать веб-контент и взаимодействовать с ним. Ошибки и предупреждения указывают на то, что необходимо сделать для улучшения доступности веб-сайта. Они служат для разработчиков и дизайнеров дорожной картой для внесения необходимых изменений.
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.
Тип ошибки определяется типом техники:
- Если техника не соответствует требуемому критерию успеха, а этот критерий необходим для ее выполнения, результат будет отмечен как критический провал, что приведет к
ErrorType=1
иSuccess=false
, и это будет Error. - Если техника не является строго обязательной, или если проблема представляет собой скорее лучшую практику или предложение по улучшению, чем жесткое нарушение правил, то результат будет отмечен как
ErrorType=2
иSuccess=true
, и это будет Warning.
Target
Класс
Target представляет конкретный элемент HTML или CSS, в котором при проверке была обнаружена ошибка доступности или предупреждение. Он предоставляет два ключевых свойства: Item
, которое возвращает фактический объект (например, HTML-тег или правило CSS), вызвавший проблему, и TargetType
, которое определяет, является ли источником проблемы элемент HTML или компонент CSS.
TargetTypes
Перечисление TargetTypes определяет возможные типы объектов в HTML-документе, где может быть обнаружена ошибка доступности или предупреждение. Оно помогает классифицировать источник проблемы, что облегчает ее выявление и решение. Перечисление включает три значения:
Name | Value | Description |
---|---|---|
HTMLElement | 0 | The element containing the HTMLElement from a document: standard HTML elements such as <img> or <button> . |
CSSStyleRule | 1 | The element containing the CSSStyleRule from a document: specific CSS rules in stylesheets. |
CSSStyleSheet | 2 | The element containing the CSSStyleSheet from a document: entire CSS stylesheets. |
Это перечисление работает в сочетании с классом Target
, чтобы точно указать, какой тип элемента вызвал результат проверки.
Как создать полный отчет о доступности
Давайте рассмотрим Java-код для итерации результатов проверки веб-доступности, обращая особое внимание на критерии отказа и детали методов, которые сообщают об ошибках. Пример получения сведений об ошибках и элементах HTML-документа:
- Используйте класс
RuleValidationResult и пройдитесь по объектам
ruleResult
, содержащимся вvalidationResult.getDetails()
. Они представляют различные критерии доступности. - Выведите код и описание критерия, а также информацию о том, был ли он успешным или нет. Для этого используйте методы getCode() и getDescription() интерфейса IRule.
- Для проверки критерия используйте getSuccess().
- Используйте объекты
ITechniqueResult –
ruleDetail
, содержащиеся вruleResult.getErrors()
. Объекты ITechniqueResult представляют отдельные результаты правил для критерия, в котором были обнаружены ошибки. - Выведите информацию о методе, включая код метода, статус успеха и описание.
- Используйте свойство
IError, чтобы получить объект
error
изruleDetail
. ОбъектruleDetail
представляет конкретную проблему доступности, а объектerror
содержит информацию об этой проблеме. - Используйте метод
getTarget(), чтобы получить объект
target
, связанный с ошибкой. Объектtarget
обычно представляет конкретный элемент HTML, правило CSS или другое содержимое, вызвавшее ошибку доступности. - Выведите информацию об ошибке. Она включает тип ошибки
error.getErrorTypeName()
и сообщение об ошибкеerror.getErrorMessage()
. - Используйте свойство TargetType класса Target, чтобы проверить тип целевого объекта. В зависимости от типа целевого объекта извлекается определенная информация и выводится на консоль.
1// Initialize a webAccessibility container
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// Create an accessibility validator with static instance
5// for all rules 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
14for (RuleValidationResult ruleResult : validationResult.getDetails()) {
15 // list only unsuccessful rule
16 if (!ruleResult.getSuccess()) {
17 // print the code and description of the rule
18 System.out.println(String.format("%s: %s = %s",
19 ruleResult.getRule().getCode(),
20 ruleResult.getRule().getDescription(),
21 ruleResult.getSuccess()
22 ));
23
24 // print the results of methods with errors
25 for (ITechniqueResult ruleDetail : ruleResult.getErrors()) {
26 // print the code and description of the method
27 StringBuilder str = new StringBuilder(String.format("\n{0}: {1} - {2}",
28 ruleDetail.getRule().getCode(),
29 ruleDetail.getSuccess(),
30 ruleDetail.getRule().getDescription()
31 ));
32 // get an error object
33 IError error = ruleDetail.getError();
34 // get a target object
35 Target target = error.getTarget();
36 // get error type and message
37 str.append(String.format("\n\n\t%s : %s",
38 error.getErrorTypeName(),
39 error.getErrorMessage()
40 ));
41
42 if (target != null) {
43 // Checking the type of the contained object for casting and working with it
44 if (target.getTargetType() == TargetTypes.CSSStyleRule) {
45 ICSSStyleRule cssRule = (ICSSStyleRule) target.getItem();
46 str.append(String.format("\n\n\t%s",
47 cssRule.getCSSText()
48 ));
49 }
50 if (ruleDetail.getError().getTarget().getTargetType() == TargetTypes.CSSStyleSheet) {
51 str.append(String.format("\n\n\t%s",
52 ((ICSSStyleSheet) target.getItem()).getTitle()
53 ));
54 }
55 if (ruleDetail.getError().getTarget().getTargetType() == TargetTypes.HTMLElement) {
56 str.append(String.format("\n\n\t%s",
57 ((HTMLElement) target.getItem()).getOuterHTML()
58 ));
59 }
60 }
61 System.out.println(str);
62 }
63 }
64}
Для каждого неудачного критерия в коде перечисляются описания правил, неудачных методов, сообщения об ошибках и выделяется точный элемент HTML или CSS, в котором была обнаружена проблема. Такой подход идеально подходит для создания полного и точного отчета о доступности, включая контекст ошибки и техническую диагностику для разработчиков.
Смотрите также
- Полезные советы по оценке и улучшению видимости текста вы найдете в статье Доступность цветового контраста, в которой рассматривается проверка контрастности на основе WCAG с использованием Aspose.HTML for Java.
- Инструкции по проверке совместимости веб-контента с программами чтения с экрана вы найдете в статье Доступность программ чтения с экрана. Вы узнаете, как проверить альтернативный текст и другие ключевые элементы.
- Если вы хотите узнать, как просматривать результаты проверки и выявлять проблемы веб-доступности, обратитесь к статье
Результаты проверки.
Aspose.HTML предлагает бесплатную онлайн Проверку цветового контраста для оценки коэффициентов контрастности в ваших веб-дизайнах. Этот инструмент позволяет узнать, соответствуют ли выбранные вами цвета стандартам доступности.