Reglas de accesibilidad web – verificación de accesibilidad del sitio web en C#

Aspose.HTML for .NET proporciona el espacio de nombres Aspose.Html.Accessibility, que está destinado a todas las manipulaciones y comprobaciones relacionadas con la accesibilidad web. En este artículo, aprenderá a utilizar la clase AccessibilityRules, que es un repositorio de requisitos, criterios de éxito y técnicas WCAG 2.0.

Puede aprender a utilizar la clase AccessibilityValidator para comprobar la accesibilidad web en el artículo Validador de accesibilidad.

Las reglas de accesibilidad son un conjunto de pautas, estándares o mejores prácticas que definen cómo se deben diseñar y desarrollar el contenido y las interfaces digitales para garantizar que sean accesibles para las personas con discapacidad. Estas pautas tienen como objetivo hacer que el contenido digital, como sitios web, aplicaciones y multimedia, sea accesible para una amplia gama de personas, incluidas aquellas con discapacidades visuales, auditivas, motoras y cognitivas. Las reglas de accesibilidad son cruciales para promover la inclusión digital y garantizar que todos tengan igual acceso a la información y los servicios en línea.

La estructura de la referencia rápida se puede presentar en forma de diagrama, el cual se indica a continuación:

Texto “La estructura de las normas de accesibilidad web – principios, directrices y criterios.”

El directorio contiene las reglas que implementan la interfaz IRule.

Reglas de accesibilidad

La clase AccessibilityRules es un repositorio de requisitos, criterios de éxito y técnicas WCAG 2.0 y tiene una estructura que corresponde a la especificación WCAG (Quick Reference) y se carga utilizando el Clase WebAccessibilityDataSource. La clase tiene un constructor interno. Por tanto, los usuarios no pueden crear directamente un objeto de la clase. Para ver la lista de reglas, debe inicializar el contenedor WebAccessibility y utilizar la propiedad Rules.

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

La propiedad devuelve un objeto de tipo AccessibilityRules, que tiene los siguientes métodos para acceder a las reglas:

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.

El directorio contiene reglas que heredan de la clase abstracta Rule. Hay varios tipos de reglas:

IRule

Todas las reglas implementan la interfaz IRule es una interfaz pública que define las propiedades básicas de las reglas:

PropertyDescription
CodeRule code from the quick reference WCAG.
DescriptionDescription of Rule from the quick reference WCAG.

Rule

La clase abstracta base para todas las reglas, que implementa la interfaz IRule. Para obtener cualquier regla, puedes usar el método 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

El programa saldrá a la consola:

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

En el primer nivel de la lista de reglas se encuentran los Principios, estos indican la dirección principal y el propósito de las reglas que se encuentran en esta sección. Por lo tanto, el trabajo con el directorio comienza con ellos.

La clase Principle heredada de Rule y también contiene una lista de pautas.

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.

Un ejemplo de cómo obtener un objeto Principle de una lista de reglas:

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

La clase Guideline heredada de Rule y contiene una lista de criterios. Las pautas son el siguiente nivel después de los principios. Describen marcos y objetivos generales que ayudan a los autores a comprender los criterios de éxito y aplicar mejor las técnicas.

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.

Un ejemplo de cómo obtener un objeto Guideline de una lista de reglas:

 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

La clase Criterion describe los criterios de éxito WCAG, heredados de la clase abstracta Rule. Puede encontrar información detallada aquí: Understanding Techniques for WCAG Success Criteria. La base para determinar la conformidad con las WCAG 2.0 son los criterios de éxito del estándar WCAG 2.0, no las técnicas.

Se proporcionan criterios de éxito verificables para cada recomendación, de modo que las WCAG 2.0 puedan aplicarse en áreas donde se requieren pruebas de cumplimiento.

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.

El criterio contiene una lista de techniques para cumplir con las pautas de accesibilidad del contenido web WCAG. Si todos los métodos suficientes para un criterio determinado están respaldados por la accesibilidad, entonces el criterio de éxito ha pasado.

Utilice el método GetCriterion(string code) para acceder a los criterios de la guía:

 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}

Verifique HTML con reglas específicas de accesibilidad web

 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}

This code demonstrates how to validate an HTML document for web accessibility using the specified set of rules.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.