Правила веб-доступности – 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// Initialize a webAccessibility container
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// List of rule codes can contain both technique codes and principles,
5// guidelines and criteria - all rules that implement the interface IRule
6String[] rulesCodes = new String[]{"H2", "H37", "H30", "1.1", "1.2.1"};
7
8// Get a list of IRule objects; if a rule with the specified code is not found,
9// it will not be in the list
10List<IRule> rules = webAccessibility.getRules().getRules(rulesCodes);
11
12// Get code and description of rule
13for (IRule rule : rules) {
14 System.out.println(String.format("%s: %s",
15 rule.getCode(),
16 rule.getDescription()
17 ));
18}
Программа выведет данные в консоль:
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// Initialize a webAccessibility container
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// Get the principle by code
5Principle rule = webAccessibility.getRules().getPrinciple("1");
6
7// Get code and description of principle
8System.out.println(String.format("%s: %s",
9 rule.getCode(),
10 rule.getDescription()
11));
12// @output: 1:Perceivable
Guideline
Класс 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// Initialize a webAccessibility container
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// Get the principle by code
5Principle principle = webAccessibility.getRules().getPrinciple("1");
6
7// Get guideline 1.1
8Guideline guideline = principle.getGuideline("1.1");
9if (guideline != null) {
10 System.out.println(String.format("%s: %s, %s",
11 guideline.getCode(),
12 guideline.getDescription(),
13 guideline
14 ));
15 // @output: 1.1:Text Alternatives
16}
Criterion
Класс Criterion описывает критерии успеха WCAG, унаследованные от абстрактного класса Rule. Подробную информацию можно найти здесь – Understanding Techniques for WCAG Success Criteria. Основой для определения соответствия WCAG 2.0 являются критерии успеха из стандарта. Критерий содержит список techniques для выполнения требований WCAG по доступности веб-контента. Если все достаточные методы для данного критерия поддерживают доступность, то критерий успеха пройден.
Используйте метод getCriterion(code)
для доступа к критериям из руководства:
1// Initialize a webAccessibility container
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// Get the principle by code
5Principle principle = webAccessibility.getRules().getPrinciple("1");
6
7// Get guideline
8Guideline guideline = principle.getGuideline("1.1");
9
10// Get criterion by code
11Criterion criterion = guideline.getCriterion("1.1.1");
12if (criterion != null) {
13 System.out.println(String.format("%s: %s - %s",
14 criterion.getCode(),
15 criterion.getDescription(),
16 criterion.getLevel()
17 ));
18 // @output: 1.1.1:Non-text Content - A
19
20 // Get all Sufficient Techniques and write to console
21 for (IRule technique : criterion.getSufficientTechniques())
22 System.out.println(String.format("%s: %s",
23 technique.getCode(),
24 technique.getDescription()
25 ));
26}
Проверка HTML на соответствие определенным правилам веб-доступности
Этот код демонстрирует, как проверить HTML-документ на веб-доступность с помощью заданного набора правил.
1String htmlPath = "input.html";
2
3// Initialize a webAccessibility container
4WebAccessibility webAccessibility = new WebAccessibility();
5
6// List of necessary rules for checking (rule code according to the specification)
7String[] rulesCode = new String[]{"H2", "H37", "H67", "H86"};
8
9// Get the required IList<Rule> rules from the rules reference
10List<IRule> rules = webAccessibility.getRules().getRules(rulesCode);
11
12// Create an accessibility validator, pass the found rules as parameters,
13// and specify the full validation settings
14AccessibilityValidator validator = webAccessibility.createValidator(
15 rules, ValidationBuilder.getAll());
16
17// Initialize an object of the HTMLDocument
18final HTMLDocument document = new HTMLDocument(htmlPath);
19// Check the document
20ValidationResult validationResult = validator.validate(document);
21
22// Return the result in string format
23// SaveToString - return only errors and warnings
24System.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.