Правила веб-доступности – Проверка доступности веб-сайта на C#

Aspose.HTML for .NET предоставляет пространство имен Aspose.Html.Accessibility, которое предназначено для всех манипуляций и проверок, связанных с веб-доступностью. В этой статье вы узнаете, как использовать класс AccessibilityRules, который является хранилищем требований WCAG 2.0 и критериев успеха.

Как создать и использовать Accessibility Validator для проверки веб-доступности вы можете узнать из статьи Accessibility Validator – Проверка доступности веб-сайта на C#.

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

Структуру краткого справочника можно представить в виде схемы, которая указана ниже:

Текст «Структура правил веб-доступности – принципы, рекомендации и критерии.»

Каталог содержит правила, реализующие интерфейс IRule.

Правила веб-доступности

Класс AccessibilityRules представляет собой хранилище требований WCAG 2.0, методов и критериев успеха. Он имеет структуру, соответствующую спецификации WCAG (Quick Reference). Класс имеет внутренний конструктор, поэтому пользователи не могут напрямую создавать объект класса. Для просмотра списка правил необходимо инициализировать контейнер WebAccessibility и использовать свойство Rules.

1    // Initialize a webAccessibility container
2    var webAccessibility = new WebAccessibility();
3
4    // Get the accessibilityRules repository
5    AccessibilityRules accessibilityRules = webAccessibility.Rules;

Свойство Rules возвращает объект типа AccessibilityRules, который имеет такие методы доступа к правилам:

MethodsDescription
GetPrinciple(string code)Returns 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. Существует несколько типов правил:

IRule

Все правила реализуют интерфейс IRule – это общедоступный интерфейс, определяющий основные свойства правил:

PropertyDescription
CodeRule code from the quick reference WCAG.
DescriptionDescription 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, guidelines and criteria - all rules that implement the interface IRule
 5var rulesCodes = new string[] { "H2", "H37", "H30", "1.1", "1.2.1" };
 6
 7// Get a list of IRule objects; if a rule with the specified code is not found, it will not be in the list
 8var rules = webAccessibility.Rules.GetRules(rulesCodes);
 9
10// Get code and description of rule
11foreach (var rule in rules)
12    Console.WriteLine("{0}:{1}", rule.Code, rule.Description);
view raw Example-GetRules hosted with ❤ by GitHub

Программа выведет в консоль:

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 и также содержит список указаний.

MethodDescription
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           
2// Initialize a webAccessibility container
3var webAccessibility = new WebAccessibility();
4
5// Get the principle by code
6Principle rule = webAccessibility.Rules.GetPrinciple("1");
7
8// Get code and description of principle
9Console.WriteLine("{0}:{1}", rule.Code, rule.Description);  // output: 1:Perceivable      

Guideline

Класс Guideline унаследован от Rule и содержит список критериев. Guidelines являются следующим уровнем после Principles. В них очерчены рамки и общие цели, которые помогают авторам понять критерии успеха и лучше применять методы.

MethodDescription
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           
 2// Initialize a webAccessibility container
 3var webAccessibility = new WebAccessibility();
 4
 5// Get the principle by code 
 6Principle principle = webAccessibility.Rules.GetPrinciple("1");
 7
 8// Get guideline 1.1
 9Guideline guideline = principle.GetGuideline("1.1");
10if (guideline != null)
11{
12    Console.WriteLine("{0}:{1}", guideline.Code, guideline.Description, guideline);  // output: 1.1:Text Alternatives
13}

Criterion

Класс Criterion описывает критерии успеха WCAG, унаследованные от абстрактного класса Rule. Подробную информацию можно найти здесь – Understanding Techniques for WCAG Success Criteria. Основой для определения соответствия WCAG 2.0 являются критерии успеха стандарта WCAG 2.0, а не методы.

Для каждого Criterion предусмотрены проверяемые критерии успеха, поэтому WCAG 2.0 можно применять в областях, где требуется тестирование на соответствие.

PropertyDescription
LevelCompliance levels: A (lowest), AA and AAA (highest).
SufficientTechniquesReturns list of Sufficient techniques that are reliable ways to meet the success criteria.
AdvisoryTechniquesReturns list of Advisory techniques that are suggested ways to improve accessibility. They are often very helpful to some users, and may be the only way that some users can access some types of content.
FailuresReturns list of Failures that are things that cause accessibility barriers and fail specific success criteria.

Критерий содержит список techniques для соответствия рекомендациям WCAG по доступности веб-контента. Если все достаточные методы для данного критерия поддерживаются доступностью, то критерий успеха пройден.

Используйте метод GetCriterion(string code) для доступа к критериям из руководства:

 1           
 2// Initialize a webAccessibility container
 3var webAccessibility = new WebAccessibility();
 4
 5// Get the principle by code 
 6Principle principle = webAccessibility.Rules.GetPrinciple("1");
 7
 8// Get guideline 
 9Guideline guideline = principle.GetGuideline("1.1");
10
11// Get criterion by code
12Criterion criterion = guideline.GetCriterion("1.1.1");
13if (criterion != null)
14{
15    Console.WriteLine("{0}:{1} - {2}", criterion.Code, criterion.Description, criterion.Level); // output: 1.1.1:Non-text Content - A
16
17    // Get all Sufficient Techniques and write to console
18    foreach (var technique in criterion.SufficientTechniques)
19        Console.WriteLine("{0}:{1}", technique.Code, technique.Description);
20}

Проверка HTML на соответствие определенным правилам веб-доступности

 1var htmlPath = Path.Combine(DataDir, "input.html");
 2
 3// Initialize a webAccessibility container
 4var webAccessibility = new WebAccessibility();
 5
 6// List of necessary rules for checking (rule code according to the specification) 
 7var rulesCode = new string[] { "H2", "H37", "H67", "H86" };
 8
 9// Get the required IList<Rule> rules from the rules reference
10var rules = webAccessibility.Rules.GetRules(rulesCode);
11
12// Create an accessibility validator, pass the found rules as parameters, and specify the full validation settings
13var validator = webAccessibility.CreateValidator(rules, ValidationBuilder.All);
14
15// Initialize an object of the HTMLDocument
16using (var document = new HTMLDocument(htmlPath))
17{
18    // Check the document
19    var validationResult = validator.Validate(document);
20
21    // Return the result in string format
22    // SaveToString - return only errors and warnings
23    Console.WriteLine(validationResult.SaveToString());
24}

Этот код демонстрирует, как проверить HTML-документ на веб-доступность с помощью указанного набора правил.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.