Правила веб-доступности – Principles, Guidelines, Criterions, Techniques
Aspose.HTML for Java предоставляет пакет com.aspose.html.accessibility, который предназначен для всех манипуляций и проверок, связанных с веб-доступностью. В этой статье вы узнаете, как использовать класс AccessibilityRules, который представляет собой хранилище требований, критериев успеха и методик WCAG 2.0.
Правила доступности – это набор рекомендаций, стандартов или лучших практик, которые определяют, как проектировать и разрабатывать цифровой контент, такой как веб-сайты, приложения и медиа, чтобы обеспечить его использование людьми с ограниченными возможностями. Эти правила помогают сделать работу в Интернете доступной для людей с нарушениями зрения, слуха, двигательных или когнитивных функций, способствуя цифровой инклюзии и обеспечивая равный доступ к информации, услугам и технологиям для всех.
Структуру краткого справочника правил веб-доступности можно представить в виде схемы, которая приведена ниже:

Правила доступности
Класс AccessibilityRules представляет собой хранилище требований, критериев успеха и методик WCAG 2.0 и имеет структуру, соответствующую спецификации WCAG (Quick Reference). Чтобы просмотреть список правил, необходимо инициализировать контейнер WebAccessibility и использовать свойство Rules.
Свойство возвращает объект типа AccessibilityRules, который имеет такие методы для доступа к правилам:
| Methods | Description |
|---|---|
getPrinciple(string code) | Returns a Principle object by code from WCAG. |
| getPrinciples() | Returns a list of principles IList<Principle>. |
getRules(params string[] codes) | Returns a list of rules IList< IRule> for given codes from WCAG. |
Каталог содержит правила, которые наследуются от абстрактного класса Rule. Существует несколько типов правил:
- principle
- guideline
- criterion
- technique
IRule
Все правила реализуют интерфейс IRule – это общедоступный интерфейс, определяющий основные свойства правил:
| Property | Description |
|---|---|
| Code | Rule code from the quick reference WCAG. |
| Description | Description of Rule from the quick reference WCAG. |
Rule
Базовый абстрактный класс для всех правил, реализующий интерфейс IRule. Чтобы получить любое правило, можно использовать метод getRules():
1// Retrieve and list accessibility rules by code with their descriptions from the rules repository
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// List of rule codes can contain both technique codes and principles,
7// guidelines and criteria - all rules that implement the interface IRule
8String[] rulesCodes = new String[]{"H2", "H37", "H30", "1.1", "1.2.1"};
9
10// Get a list of IRule objects; if a rule with the specified code is not found,
11// it will not be in the list
12List<IRule> rules = webAccessibility.getRules().getRules(rulesCodes);
13
14// Get code and description of rule
15for (IRule rule : rules) {
16 System.out.println(String.format("%s: %s",
17 rule.getCode(),
18 rule.getDescription()
19 ));
20}Программа выведет данные в консоль:
1 H2:Combining adjacent image and text links for the same resource
2 H37:Using alt attributes on img elements
3 H30:Providing link text that describes the purpose of a link for anchor elements
4 1.1:Text Alternatives
5 1.2.1:Audio-only and Video-only (Prerecorded)Principle
На первом уровне списка правил находятся Principles, они указывают основное направление и цель правил, которые находятся в этом разделе. Поэтому работа с каталогом начинается именно с них.
Класс Principle унаследован от Rule и также содержит список рекомендаций.
| Method | Description |
|---|---|
getGuideline(string code) | Get Guideline by code from WCAG, contained in principle. Return Guideline object. |
| getGuidelines() | Get a list of Guideline from Principle. Return IList< Guideline> object. |
Пример того, как получить объект Principle из списка правил:
1// Get accessibility principle by code from WCAG rules in Aspose.HTML for Java
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle rule = webAccessibility.getRules().getPrinciple("1");
8
9// Get code and description of principle
10System.out.println(String.format("%s: %s",
11 rule.getCode(),
12 rule.getDescription()
13));
14// @output: 1:PerceivableGuideline
Класс Guideline унаследован от Rule и содержит список критериев. Guidelines – это следующий уровень после принципов. Они описывают рамки и общие цели, которые помогают авторам понять критерии успеха и лучше применять техники.
| Method | Description |
|---|---|
getCriterion(string code) | Get Guideline by code from WCAG, contained in current Guideline. Return Criterion object. |
| getCriterions() | Get a list of Criterion from current Guideline. Return IList< Criterion> object. |
Пример получения объекта Guideline из списка правил:
1// Get accessibility guideline by code from WCAG principle in Aspose.HTML for Java
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle principle = webAccessibility.getRules().getPrinciple("1");
8
9// Get guideline 1.1
10Guideline guideline = principle.getGuideline("1.1");
11if (guideline != null) {
12 System.out.println(String.format("%s: %s, %s",
13 guideline.getCode(),
14 guideline.getDescription(),
15 guideline
16 ));
17 // @output: 1.1:Text Alternatives
18}Criterion
Класс Criterion описывает критерии успеха WCAG, унаследованные от абстрактного класса Rule. Подробную информацию можно найти здесь – Understanding Techniques for WCAG Success Criteria. Основой для определения соответствия WCAG 2.0 являются критерии успеха из стандарта. Критерий содержит список techniques для выполнения требований WCAG по доступности веб-контента. Если все достаточные методы для данного критерия поддерживают доступность, то критерий успеха пройден.
Используйте метод getCriterion(code) для доступа к критериям из руководства:
1// Get accessibility criterion and its sufficient techniques in Java
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// Get the principle by code
7Principle principle = webAccessibility.getRules().getPrinciple("1");
8
9// Get guideline
10Guideline guideline = principle.getGuideline("1.1");
11
12// Get criterion by code
13Criterion criterion = guideline.getCriterion("1.1.1");
14if (criterion != null) {
15 System.out.println(String.format("%s: %s - %s",
16 criterion.getCode(),
17 criterion.getDescription(),
18 criterion.getLevel()
19 ));
20 // @output: 1.1.1:Non-text Content - A
21
22 // Get all Sufficient Techniques and write to console
23 for (IRule technique : criterion.getSufficientTechniques())
24 System.out.println(String.format("%s: %s",
25 technique.getCode(),
26 technique.getDescription()
27 ));
28}Проверка HTML на соответствие определенным правилам веб-доступности
Этот код демонстрирует, как проверить HTML-документ на веб-доступность с помощью заданного набора правил.
1// Validate an HTML document using specific rule codes with Java
2
3String htmlPath = "input.html";
4
5// Initialize a webAccessibility container
6WebAccessibility webAccessibility = new WebAccessibility();
7
8// List of necessary rules for checking (rule code according to the specification)
9String[] rulesCode = new String[]{"H2", "H37", "H67", "H86"};
10
11// Get the required IList<Rule> rules from the rules reference
12List<IRule> rules = webAccessibility.getRules().getRules(rulesCode);
13
14// Create an accessibility validator, pass the found rules as parameters,
15// and specify the full validation settings
16AccessibilityValidator validator = webAccessibility.createValidator(
17 rules, ValidationBuilder.getAll());
18
19// Initialize an object of the HTMLDocument
20final HTMLDocument document = new HTMLDocument(htmlPath);
21// Check the document
22ValidationResult validationResult = validator.validate(document);
23
24// Return the result in string format
25// SaveToString - return only errors and warnings
26System.out.println(validationResult.saveToString());- Используйте конструктор
WebAccessibility() для создания контейнера
webAccessibility, который управляет правилами доступности и проверкой. - Определите список кодов правил (например, “H2”, “H37”, “H67”, “H86”), которые соответствуют стандартам доступности, по которым вы хотите выполнить проверку.
- Вызовите метод getRules(), передав список кодов правил в качестве параметра.
- Создайте
validator, вызвав метод createValidator() в контейнереwebAccessibilityи передав ему извлеченные правила и параметрValidationBuilder.getAll()для комплексной настройки проверки. - Загрузите HTML-документ, который вы хотите проверить, с помощью одного из конструкторов HTMLDocument().
- Используйте метод
validate(
document) для проверки загруженногоHTMLDocumentна соответствие определенным правилам. Результатом выполнения проверки является экземпляр классаValidationResult. - Вызовите метод
saveToString() для объекта
ValidationResult, чтобы отформатировать результаты, включая только ошибки и предупреждения, в виде строки. - Выведите результаты проверки на консоль или сохраните их по мере необходимости для дальнейшего анализа или составления отчетов.
Смотрите также
- Полезные советы по оценке и улучшению видимости текста вы найдете в статье Доступность цветового контраста, в которой рассматривается проверка контрастности на основе WCAG с использованием Aspose.HTML for Java.
- Инструкции по проверке совместимости веб-контента с программами чтения с экрана вы найдете в статье Доступность программ чтения с экрана. Вы узнаете, как проверить альтернативный текст и другие ключевые элементы.
- Если вы хотите узнать, как просматривать результаты проверки и выявлять проблемы веб-доступности, обратитесь к статье Результаты проверки.
- В статье
Проверка доступности веб-сайта – Oшибки и предупреждения вы узнаете как программно собирать информацию об ошибках и предупреждениях при проверке доступности веб-сайта.
Aspose.HTML предлагает бесплатную онлайн Проверку веб-доступности. Этот инструмент сканирует веб-страницы, проверяет их на соответствие WCAG, выявляет проблемы и предлагает улучшения. Получите мгновенный обзор соответствия вашего сайта требованиям, чтобы оценить объём необходимых доработок и устранить разрыв между текущим состоянием сайта и требованиями WCAG.
