Comprobación de accesibilidad web – Errores y advertencias
Cómo comprobar la accesibilidad de un sitio web
Comprobar la accesibilidad de un sitio web significa asegurarse de que todo el mundo, incluidas las personas con discapacidad, puede utilizar su sitio web o aplicación. Esto implica comprobar su contenido según directrices como WCAG, que describen cómo hacer que las experiencias digitales sean más inclusivas. Con Aspose.HTML for Java, puede automatizar este proceso analizando HTML y CSS en busca de problemas de accesibilidad, ya sea con respecto al conjunto completo de normas WCAG o centrándose en criterios específicos.
En este artículo, aprenderás a evaluar la accesibilidad de un sitio web para comprobar que cumple las WCAG utilizando las clases y métodos de los paquetes com.aspose.html.accessibility y com.aspose.html.accessibility.results. Exploraremos varias clases e interfaces que ayudan a recopilar información sobre errores y advertencias al comprobar la accesibilidad de un sitio web. Se prestará especial atención a los criterios de fallo y a los métodos para informar de errores, junto con un ejemplo Java que demuestra cómo recuperar errores de accesibilidad web después de validar un documento HTML.
Veamos un fragmento de código relacionado con la validación de accesibilidad web. El siguiente código comprueba la accesibilidad de una página HTML remota utilizando todas las reglas de validación WCAG e imprime los detalles de cualquier regla que no se haya cumplido correctamente:
- Utilice el constructor WebAccessibility() para crear una instancia de la clase WebAccessibility responsable de la validación de accesibilidad web.
- Llame al método createValidator() para crear un objeto validador.
- Cargar una página HTML utilizando el constructor
HTMLDocument(
Url
). - Utilice el método
validate(
document
) para comprobar la accesibilidad de la página web. El resultado se almacena en la variablevalidationResult
. - Comprueba si la validación se ha realizado correctamente. Para cada problema de accesibilidad, imprime información sobre el código de la regla, la descripción de la regla y si la validación ha tenido éxito o ha fallado.
1// Initialize webAccessibility container
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// Create an accessibility validator with static instance
5// for all rules from repository that match the builder settings
6AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
7
8// Initialize an HTMLDocument object
9final HTMLDocument document = new HTMLDocument("https://products.aspose.com/html/net/generators/video/");
10ValidationResult validationResult = validator.validate(document);
11
12// Checking for success
13if (!validationResult.getSuccess()) {
14 // Get a list of Details
15 for (RuleValidationResult detail : validationResult.getDetails()) {
16 System.out.println(String.format("%s: %s = %s",
17 detail.getRule().getCode(),
18 detail.getRule().getDescription(),
19 detail.getSuccess()
20 ));
21 }
22}
Errores y advertencias
La detección de errores ayuda a identificar las barreras que pueden impedir a las personas con discapacidad utilizar e interactuar con los contenidos web de forma eficaz. Los errores y advertencias orientan sobre lo que hay que hacer para mejorar la accesibilidad web. Sirven de hoja de ruta para que desarrolladores y diseñadores realicen los cambios necesarios.
IError
El IError es una interfaz pública que contiene información sobre el error de validación. Esto significa una comprobación errónea, es decir, que la regla no se ha superado – y su resultado no coincide con Accessibility.
La interfaz
IError describe los detalles de un problema de validación encontrado durante las comprobaciones de accesibilidad. Proporciona información clave sobre el error, incluyendo un mensaje legible por humanos a través de getErrorMessage
, el estado del resultado con getSuccess
, y el tipo de error como un valor numérico (getErrorType
) y un nombre descriptivo (getErrorTypeName
), como Error o Warning. Además, getTarget
devuelve el elemento HTML o CSS específico en el que se ha encontrado el problema, lo que permite identificar y corregir con precisión los problemas de accesibilidad. Esta interfaz es esencial para interpretar e informar eficazmente de los resultados de las comprobaciones de accesibilidad.
El objeto IError tiene estos significados
* ErrorType = 1 and Success = false – this means that the error is critical, and the result of the check is not performed.
* ErrorType = 2 and Success = true – this means that the error is not critical but has an informational character and displays hints for possible improvement.
El tipo de error viene determinado por el tipo de técnica:
- Si una técnica no cumple un criterio de éxito exigido, y ese criterio es necesario para cumplirla, el resultado se marcará como fallo crítico, con el resultado
ErrorType=1
ySuccess=false
, y es un Error. - Si una técnica no es estrictamente necesaria, o si se trata más de una práctica recomendada o de una sugerencia de mejora que de una infracción grave de las normas, se marcará como
ErrorType=2
ySuccess=true
, y se tratará de una Warning.
Target
La clase
Target representa un elemento HTML o CSS específico en el que se ha detectado un error o advertencia de accesibilidad durante la validación. Proporciona dos propiedades clave: getItem
, que devuelve el objeto real (como una etiqueta HTML o una regla CSS) que causó el problema, y getTargetType
, que determina si el origen del problema es un elemento HTML o un componente CSS.
TargetTypes
La enumeración TargetTypes define los posibles tipos de objetos de un documento HTML en los que se puede encontrar un error o advertencia de accesibilidad. Ayuda a clasificar el origen del problema, facilitando su identificación y resolución. La enumeración incluye tres valores:
Name | Value | Description |
---|---|---|
HTMLElement | 0 | The element containing the HTMLElement from a document: standard HTML elements such as <img> or <button> . |
CSSStyleRule | 1 | The element containing the CSSStyleRule from a document: specific CSS rules in stylesheets. |
CSSStyleSheet | 2 | The element containing the CSSStyleSheet from a document: entire CSS stylesheets. |
Esta enumeración funciona en conjunción con la clase Target
para indicar exactamente qué tipo de elemento causó el resultado de la validación.
Generar informe completo de accesibilidad
Veamos el código Java para iterar por los resultados de la comprobación de accesibilidad web, prestando especial atención a los criterios de fallo y a los detalles de los métodos que informan de los errores. Ejemplo de obtención de detalles de errores y elementos de un documento HTML:
- Utilice la clase
RuleValidationResult e itere a través de los objetos
ruleResult
contenidos envalidationResult.getDetails()
. Estos representan diferentes criterios de accesibilidad. - Imprima el código y la descripción del criterio y si ha tenido éxito o no. Para ello, utilice las propiedades getCode y getDescription de la interfaz IRule.
- Utiliza la propiedad getSuccess para comprobar el criterio.
- Utilice los objetos
ITechniqueResult –
ruleDetail
contenidos enruleResult.getErrors()
. Los objetos ITechniqueResult representan resultados de reglas individuales para el criterio que informó errores. - Imprime la información sobre el método, incluyendo el código del método, el estado de éxito y la descripción.
- Utilice la propiedad
IError para obtener el objeto
error
delruleDetail
. ElruleDetail
representa un problema de accesibilidad específico, y el objetoerror
contiene información sobre ese problema. - Utilice la propiedad
getTarget para recuperar el objeto
target
asociado al error. El objetotarget
suele representar el elemento HTML específico, la regla CSS u otro contenido que ha provocado el error de accesibilidad. - Imprime información sobre el error. Incluye el tipo de error
error.getErrorTypeName()
y el mensaje de errorerror.getErrorMessage()
. - Utilice la propiedad getTargetType de la clase Target para comprobar el tipo del objeto de destino. Dependiendo del tipo del objeto de destino, se extrae información específica y se imprime en la consola.
1// Initialize a webAccessibility container
2WebAccessibility webAccessibility = new WebAccessibility();
3
4// Create an accessibility validator with static instance
5// for all rules from repository that match the builder settings
6AccessibilityValidator validator = webAccessibility.createValidator(ValidationBuilder.getAll());
7
8String documentPath = "input.html";
9
10// Initialize an object of the HTMLDocument class
11final HTMLDocument document = new HTMLDocument(documentPath);
12ValidationResult validationResult = validator.validate(document);
13
14for (RuleValidationResult ruleResult : validationResult.getDetails()) {
15 // list only unsuccessful rule
16 if (!ruleResult.getSuccess()) {
17 // print the code and description of the rule
18 System.out.println(String.format("%s: %s = %s",
19 ruleResult.getRule().getCode(),
20 ruleResult.getRule().getDescription(),
21 ruleResult.getSuccess()
22 ));
23
24 // print the results of methods with errors
25 for (ITechniqueResult ruleDetail : ruleResult.getErrors()) {
26 // print the code and description of the method
27 StringBuilder str = new StringBuilder(String.format("\n{0}: {1} - {2}",
28 ruleDetail.getRule().getCode(),
29 ruleDetail.getSuccess(),
30 ruleDetail.getRule().getDescription()
31 ));
32 // get an error object
33 IError error = ruleDetail.getError();
34 // get a target object
35 Target target = error.getTarget();
36 // get error type and message
37 str.append(String.format("\n\n\t%s : %s",
38 error.getErrorTypeName(),
39 error.getErrorMessage()
40 ));
41
42 if (target != null) {
43 // Checking the type of the contained object for casting and working with it
44 if (target.getTargetType() == TargetTypes.CSSStyleRule) {
45 ICSSStyleRule cssRule = (ICSSStyleRule) target.getItem();
46 str.append(String.format("\n\n\t%s",
47 cssRule.getCSSText()
48 ));
49 }
50 if (ruleDetail.getError().getTarget().getTargetType() == TargetTypes.CSSStyleSheet) {
51 str.append(String.format("\n\n\t%s",
52 ((ICSSStyleSheet) target.getItem()).getTitle()
53 ));
54 }
55 if (ruleDetail.getError().getTarget().getTargetType() == TargetTypes.HTMLElement) {
56 str.append(String.format("\n\n\t%s",
57 ((HTMLElement) target.getItem()).getOuterHTML()
58 ));
59 }
60 }
61 System.out.println(str);
62 }
63 }
64}
Para cada criterio fallido, el código enumera las descripciones de las reglas, los métodos fallidos, los mensajes de error y destaca el elemento HTML o CSS exacto en el que se encontró el problema. Este enfoque es ideal para generar un informe de accesibilidad completo y preciso, que incluya el contexto del error y diagnósticos técnicos para los desarrolladores.
Ver también
- Encontrará consejos útiles para evaluar y mejorar la visibilidad del texto en el artículo Accesibilidad del contraste de color, que aborda la comprobación de contraste basada en WCAG con Aspose.HTML para Java.
- Para obtener instrucciones sobre cómo comprobar la compatibilidad del contenido web con lectores de pantalla, consulte el artículo Accesibilidad de lectores de pantalla. Aprenderá a comprobar el texto alternativo y otros elementos clave.
- Si desea aprender a ver los resultados de la validación e identificar problemas de accesibilidad web, consulte el artículo
Resultados de la validación.
Aspose.HTML ofrece una herramienta en línea gratuita Comprobador de contraste de color para comprobar las relaciones de contraste en tus diseños web. Esta herramienta proporciona información sobre si los colores elegidos cumplen las normas de accesibilidad.