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:
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:
Methods | Description |
---|---|
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:
- principle
- guideline
- criterion
- technique
IRule
Todas las reglas implementan la interfaz IRule es una interfaz pública que define las propiedades básicas de las reglas:
Property | Description |
---|---|
Code | Rule code from the quick reference WCAG. |
Description | Description 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);
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.
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. |
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.
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. |
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.
Property | Description |
---|---|
Level | Compliance levels: A (lowest), AA and AAA (highest). |
SufficientTechniques | Returns list of Sufficient techniques that are reliable ways to meet the success criteria. |
AdvisoryTechniques | Returns 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. |
Failures | Returns 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.
- Use the
WebAccessibility() constructor to create the
webAccessibility
container, which manages the accessibility rules and validation. - Define a list of rule codes (e.g., “H2”, “H37”, “H67”, “H86”) that correspond to the accessibility standards you want to validate against.
- Call the GetRules() method, passing the list of rule codes as a parameter.
- Create a
validator
by calling the CreateValidator() method on thewebAccessibility
container, passing the retrieved rules and theValidationBuilder.All
setting to configure the validation comprehensively. - Load an HTML document you want to validate using one of the HTMLDocument() constructors.
- Use the
Validate() method of the
validator
to check the loadedHTMLDocument
against the defined rules, generating aValidationResult
object. - Call the
SaveToString() method on the
ValidationResult
object to format the results, including only the errors and warnings, as a string. - Output the validation results to the console or save them as needed for further analysis or reporting.