Prueba de una aplicación de Oracle JET para la accesibilidad de solo teclado
Introducción
Este es el segundo tutorial de la ruta de aprendizaje Identificar problemas de accesibilidad.
Las Directrices de accesibilidad de contenido web (WCAG) 2.1 describen muchos de los criterios de éxito para crear una aplicación web accesible. Este tutorial se centra en los criterios que abordan el uso de solo teclado.
Una app accesible solo con teclado se puede utilizar con dispositivos de entrada alternativos para personas con movilidad limitada o con incapacidad para manipular el mouse. Cuando las personas pueden usar un teclado, Internet está al alcance de su mano.
Objetivos
En este tutorial, aprenderá a realizar una prueba de solo teclado de una aplicación web.
Requisitos
- Un entorno de desarrollo configurado para crear aplicaciones Oracle JET con el tiempo de ejecución JavaScript, Node.js y la interfaz de línea de comandos de Oracle JET versión 13.0 (o posterior) instalada
- Explorador web de Google Chrome instalado y configurado como explorador web predeterminado
- Acceso a WCAG 2.1
- Acceso a la Guía de gesto y teclado de Oracle JET
- Finalización del tutorial anterior en esta ruta de formación: Prueba de una aplicación Oracle JET para la accesibilidad: inspección visual
Tarea 1. Preparación para la prueba de accesibilidad de solo teclado
La inspección visual proporciona una visión general de la estructura y la funcionalidad básica de una página accesible. Las pruebas de solo teclado son el centro de las pruebas manuales de accesibilidad; brindan al desarrollador la oportunidad de interactuar con la aplicación desde la perspectiva de un usuario con discapacidad. El subconjunto de los criterios de éxito de WCAG 2.1 en torno a los cuales se centra este tutorial implica varios conceptos específicos.
- Indicación de enfoque: ¿Hay una indicación de la ubicación actual en la página?
- Secuencia significativa: ¿el orden de las fichas de aplicación sigue un patrón predecible?
- Interactuar con controles: ¿funcionan todos los controles al utilizar el teclado?
- Captura de teclado: ¿el indicador de enfoque se atasca en un elemento?
Los criterios de éxito mencionados al principio de esta sección abordan indirectamente el concepto de elementos focalizables, por lo que es necesario definir un par de términos.
- Todos los elementos que se pueden enfocar (elementos de la página que pueden recibir el enfoque mediante tabulación) deben ser accesibles mediante el teclado únicamente.
- Todos los elementos accionables (elementos que realizan una función si el mouse hace clic normalmente) deben funcionar solo con el teclado. Las personas con discapacidades motoras significativas pueden utilizar dispositivos de entrada alternativos cuando una aplicación es accesible solo mediante teclado.
Con estos conceptos aplicables definidos y explicados, está preparado para probar la aplicación inicial.
-
En WCAG Guideline 2.1 Keyboard Accessible, se indica lo siguiente: "Haga que todas las funciones estén disponibles desde un teclado".
Esta directriz no debe confundirse con el cuerpo de trabajo titulado Web Content Accessibility Guidelines 2.1, que proporciona el estándar general para el software accesible.
-
En Success Criterion 2.1.3 Keyboard (No Exception) (Criterio de éxito [Sin excepción]), se indica lo siguiente: "toda la funcionalidad del contenido se puede utilizar mediante una interfaz de teclado sin requerir tiempos específicos para las pulsaciones de teclas individuales".
Observe el texto "No Exception" incluido en los paréntesis de Success Criterion 2.1.3. Esto significa que la accesibilidad del teclado es obligatoria.
La directriz WCAG 2.1 y el criterio de éxito que le sigue subrayan la necesidad absoluta de accesibilidad del teclado. El teclado desempeña un papel fundamental a la hora de llevar la tecnología a todos.
Tarea 2: Verificación de la existencia de un enfoque visual
Las pruebas de accesibilidad de solo teclado se basan únicamente en el indicador de enfoque. La adherencia al siguiente criterio de éxito "Focus Visible" no es negociable. Los usuarios con discapacidad no pueden navegar por una aplicación sin un enfoque activo o cuando la ubicación del enfoque no está clara.
- El WCAG Success Criterion 2.4.7 Focus Visible establece lo siguiente: "Cualquier interfaz de usuario que admita el teclado tiene un modo de funcionamiento en el que el indicador de enfoque del teclado está visible".
Al desplazarse por la aplicación web, siempre debe haber un indicador visible que identifique la ubicación de enfoque. El indicador suele ser un rectángulo. La desactivación del rectángulo de enfoque provoca un fallo de este criterio.
Los desarrolladores de aplicaciones se enorgullecen de las aplicaciones y programas que escriben. Su objetivo es integrar la función con una experiencia visualmente atractiva. Un rectángulo de enfoque a menudo resta del diseño; por lo tanto, los desarrolladores a menudo lo ocultan o desactivan y violan el criterio de éxito 2.4.7.
Rectángulo de enfoque 1
Descripción de la ilustración focus_rec1.png
Rectángulo de enfoque 2
Descripción de la ilustración focus_rec2.png
Localice el punto de enfoque en las dos capturas de pantalla anteriores.
La primera captura de pantalla, Focus Rectangle 1, representa una página con una indicación correcta del enfoque. El indicador de enfoque es muy evidente, ya que rodea el separador Overview (Descripción general) en la parte superior izquierda de la página. La segunda captura de pantalla, Focus Rectangle 2, carece de indicación de enfoque en torno al separador Overview.
Observe el rectángulo de enfoque mientras navega por los primeros componentes que se pueden enfocar en la página Introduction.
-
Si la aplicación no se está ejecutando, vaya a la carpeta
ACCLearningPath
e iníciela.$ ojet serve
-
Cuando se abra la aplicación en el explorador, pulse
<Ctrl+L>
para definir el enfoque en la barra de direcciones y, a continuación, pulse<Tab>
para mover el enfoque al enlace de navegación de omisión. -
Pulse
<Tab>
para mover el foco a john.hancock@oracle.com en el menú de usuario, en la parte superior derecha de la página. -
Pulse
<Tab>
para mover el foco a Introduction (Introducción) en el menú de navegación principal, inmediatamente debajo del menú de usuario. -
Pulse
<down arrow>
para mover el enfoque a Recursos en el menú de navegación y pulse<Enter>
para cargar la página Recursos. -
Pulse
<Tab>
para mover el foco al enlace Sitio principal de Oracle JET.Observe que no hay una indicación clara de la ubicación del foco. La página Recursos falla en el criterio de éxito 2.4.7.
En los siguientes pasos, corregirá el problema de rectángulo de enfoque ausente para cumplir con los estándares de WCAG.
-
Vaya a la carpeta
ACCLearningPath/src/js/views
y abra el archivoresources.html
en un editor de código. -
Localice el enlace del sitio principal de Oracle JET.
<li><a style="outline-width:0" href="https://www.oracle.com/webfolder/technetwork/jet/index.html" target="_blank">Oracle JET Main Site</a> </li>
Cambie
"outline-width:0"
a"outline-width:3"
en el atributo style.<li><a style="outline-width:3" href="https://www.oracle.com/webfolder/technetwork/jet/index.html" target="_blank">Oracle JET Main Site</a> </li>
-
Guarde y cierre
resources.html
.El archivo debe tener un aspecto similar a
resources-html.txt
. -
Repita los pasos 2 a 6 anteriores para verificar que el rectángulo de enfoque ahora está visible.
Tarea 3: verificación de una secuencia de separador significativa
La siguiente parte de las pruebas de solo teclado implica la organización de una página a medida que el usuario pasa por ella.
- En WCAG Success Criterion 1.3.2 Meaningful Sequence se indica lo siguiente: "Cuando la secuencia en la que se presenta el contenido afecta a su significado, se puede determinar mediante programación una secuencia de lectura correcta".
- En Success Criterion 2.4.3 Focus Order se indica: "Si una página web se puede navegar de forma secuencial y las secuencias de navegación afectan al significado o al funcionamiento, los componentes que se pueden enfocar reciben el enfoque en un orden que conserva el significado y la operabilidad".
El orden de enfoque se puede comprender mejor con una ilustración. A medida que el usuario pasa por la página, la ubicación del foco no es aleatoria. No se mueve de un lado de la página al otro y de nuevo. Se mueve de manera esperada y lógica.
En la tarea Verificar la existencia de un enfoque visual anterior, vio cómo el enfoque se movía en un orden esperado a través del banner de la página; sin embargo, la página Recursos se ha codificado para ilustrar un orden de tabulación más aleatorio.
-
En la aplicación en ejecución, pulse
<Ctrl+L>
para centrarse en la barra de direcciones. -
Pulse
<Tab>
para mover el foco al enlace de omisión de navegación. -
Pulse
<Tab>
para mover el foco a john.hancock@oracle.com en el menú de usuario, en la parte superior derecha de la página. -
Pulse
<Tab>
para mover el foco a Introduction (Introducción) en el menú de navegación principal. -
Pulse
<Tab>
para mover el foco al enlace Sitio principal de Oracle JET en el cuerpo de la página. -
Presione
<Tab>
. El enfoque debe pasar a la Guía para desarrolladores de Oracle JET, pero, en su lugar, debe pasar al enlace Oracle JET Cookbook.El enlace Oracle JET Developer's Guide (Guía del desarrollador de Oracle JET) no está en la secuencia de separadores, lo que viola los criterios de éxito 2.4.3.
Los pasos 7 a 11 describen el método necesario para devolver el enlace Oracle JET Developer's Guide (Guía del desarrollador de Oracle JET) a su posición correcta en la secuencia de separadores. Los pasos 12 a 16 ilustran cómo confirmar que la corrección ha funcionado.
-
En el editor de código, busque el enlace Oracle JET Developer's Guide (Guía del desarrollador de Oracle JET) en el archivo
resources.html
.<li><a tabindex="-1" href="https://docs.oracle.com/en/middleware/developer-tools/jet/13/books.html" target="_blank">Oracle JET Developer's Guide</a> </li>
El atributo
tabindex="-1"
saca este enlace completamente del orden de separadores de la página. -
Modifique el valor del atributo
tabindex
a0
para devolver el enlace a su lugar adecuado en la secuencia de separadores de la página.<li><a tabindex="0" href="https://www.oracle.com/pls/topic/lookup?ctx=jetlatest&id=OJACC" target="_blank">Oracle JET Developer's Guide</a> </li>
-
Guarde y cierre el archivo. La página Recursos del explorador se refresca automáticamente con su nuevo contenido.
-
Presione
<Ctrl+L>
para centrar la atención en la barra de direcciones. -
Pulse
<Tab>
tres veces para cambiar el enfoque a Introduction (Introducción) en el menú de navegación. -
Pulse
<Tab>
para mover el foco al enlace Sitio principal de Oracle JET. -
Pulse
<Tab>
para mover el foco al enlace Oracle JET Developer's Guide (Guía del desarrollador de Oracle JET). -
Continúe pulsando
<Tab>
hasta que el enfoque llegue al enlace Acerca de Oracle en el pie de página.Una vez que haya navegado por todos los elementos que se pueden enfocar en una página, revierta el proceso. En ocasiones, cuando el tabulador de desplazamiento retrocede por una página, la ruta cambia de forma inesperada, aparecen nuevos elementos o algunos elementos desaparecen.
-
Utilice
<Shift+Tab>
para desplazarse de abajo a arriba para asegurarse de que la secuencia significativa es verdadera mientras navega de forma inversa por la página.
Tarea 4: Interacción con controles
Muchos de los controles que se utilizan en este tutorial son controles específicos de Oracle JET. Una función de Oracle JET es que sus componentes están diseñados con accesibilidad de solo teclado ya incorporada. Los desarrolladores que utilizan Oracle JET pueden copiar componentes directamente desde Oracle JET Cookbook y soltarlos en su lugar, y el código resultante es accesible.
- El Teclado del criterio de éxito de WCAG 2.1.1 indica: "toda la funcionalidad del contenido se puede utilizar mediante una interfaz de teclado sin requerir tiempos específicos para las pulsaciones de teclas individuales, excepto cuando la función subyacente requiere una entrada que depende de la ruta del movimiento del usuario y no solo de los puntos finales".
Por ejemplo, a continuación se muestra una breve lista de pulsaciones de teclas comunes para interactuar con componentes HTML estándar:
- Pulse
<Enter>
para activar un enlace, una opción de menú o una ficha en la barra de fichas. - Pulse
<Space>
para activar un botón o para alternar una casilla de verificación. - Pulse
<down arrow>
para ampliar un cuadro combinado o una lista desplegable. Utilice las teclas de dirección para desplazarse por la lista.
Nota: para determinados controles, como menús de navegación, barras de separadores, grupos de radio y controles de grupo similares, puede que tenga que desplazarse con el tabulador al control y, a continuación, utilizar las teclas de flecha para desplazarse por él.
Utilice la aplicación inicial en ejecución para interactuar con varios componentes de Oracle JET.
-
Presione
<Ctrl+L>
para centrar la atención en la barra de direcciones. -
Pulse
<Tab>
para mover el foco al enlace de omisión de navegación. -
Pulse
<Tab>
para mover el foco a john.hancock@oracle.com en el menú de usuario, en la parte superior derecha de la página.Según la documentación del teclado del elemento
<oj-menu-button>
, al pulsar<Space>
,<Enter>
o<down arrow>
se abre el menú y al pulsar<Escape>
se cierra el menú. -
Pulse
<Space>
para expandir el menú de usuario. El enfoque pasa a Preferencias. -
Pulse
<down arrow>
para bajar la lista de opciones de menú. -
Pulse
<Escape>
para cerrar el menú de usuario. -
Presione
<Tab>
. El enfoque pasa a Introducción en el menú principal de la navegación, inmediatamente debajo del menú de usuario.Para obtener información adicional sobre las pulsaciones de teclas específicas para cada componente de Oracle JET, consulte la Guía de gesto y teclado de Oracle JET.
Tarea 5: identificación de una captura de teclado
El tema final introducido al principio de este tutorial implica un concepto conocido como captura de teclado. Una captura de teclado se produce cuando un usuario no puede mover el foco fuera de un elemento de la página mediante <Tab>
, <Shift+Tab>
o cualquiera de las teclas de flecha.
- Criterio de éxito 2.1.2 Sin captura de teclado indica lo siguiente: "Si el enfoque del teclado se puede mover a un componente de la página mediante una interfaz de teclado, el enfoque se puede mover lejos de ese componente que usa solo una interfaz de teclado y, si requiere más de teclas de flecha o tabulación sin modificar u otros métodos de salida estándar, se recomienda al usuario el método para mover el foco hacia fuera".
Una captura de teclado hace que toda la página no se pueda utilizar para un usuario de solo teclado. La solución común para una captura de teclado es reiniciar la aplicación.
¡Póngase en práctica!
En esta sección del tutorial se proporciona un ejemplo detallado de una metodología de prueba de solo teclado.
Al probar la página Organización de la aplicación, verifique que siempre hay una indicación visible de la ubicación de enfoque y que el enfoque se mueve en un patrón predecible.
A la página que probará se accede a través del separador Organization de la página Introduction.
Descripción de la ilustración org_page.png
Utilice la aplicación inicial para realizar una prueba de teclado de la página Organización.
-
En la página Recursos de la aplicación, pulse
<Ctrl+L>
para centrar la atención en la barra de direcciones. -
Pulse
<Tab>
para mover el foco al enlace de omisión de navegación. -
Pulse
<Tab>
para mover el foco a john.hancock@oracle.com en el menú de usuario, en la parte superior derecha de la página. -
Pulse
<Tab>
para mover el foco a Introduction (Introducción) en el menú de navegación principal debajo del nombre de usuario.Según la documentación del teclado del elemento
<oj-navigation-list>
, utilice las teclas<up arrow>
y<down arrow>
para navegar por los elementos del menú de navegación principal. -
Pulse
<Enter>
para seleccionar Introduction (Introducción). -
Pulse
<Tab>
y, a continuación,<right arrow>
para mover el foco al separador Organización en la barra de separadores. Pulse<Enter>
para cargar la página Organización.Según la documentación del teclado del elemento
<oj-tab-bar>
, utilice las teclas de flecha para desplazarse por la barra de separadores. -
Pulse
<Tab>
para mover el enfoque a la vista de árbol. El enfoque se aplica al primer elemento que se puede enfocar, el nodo Contabilidad.Según la documentación del teclado del elemento
<oj-tree-view>
, utilice las teclas<up arrow>
y<down arrow>
para navegar entre los nodos en la vista de árbol. -
Pulse
<right arrow>
para expandir el nodo de grupo Accounting en el árbol y, a continuación, pulse<left arrow>
para reducir el nodo de grupo. -
Pulse
<down arrow>
dos veces para mover el enfoque al empleado JONES en el nodo de grupo RESEARCH. A continuación, pulse<Enter>
para seleccionarlo.Aparecerá un formulario en el lado derecho de la página con los detalles del empleado.
-
Pulse
<Tab>
para mover el foco al campo ID de empleado. -
Pulse
<Tab>
para mover el foco al campo Employee Name (Nombre de empleado). -
Pulse
<Tab>
para mover el foco al campo Título del trabajo. -
Pulse
<Tab>
para mover el foco al campo Hire Date (Fecha de contratación) y mostrar una cuadrícula de calendario ampliada.Según la documentación del teclado del elemento
<oj-date-picker>
, presione las teclas de flecha para cambiar el enfoque de fecha dentro de la cuadrícula del calendario. -
Pulse
<down arrow>
y, a continuación, utilice las teclas de flecha para mover el enfoque a una fecha del selector de fechas ampliado. A continuación, pulse<Enter>
para seleccionar una fecha. -
Pulse
<Tab>
para mover el enfoque al campo Salario.Según la documentación del teclado del elemento
<oj-input-number>
, utilice<up arrow>
para aumentar el valor de salario y utilice<down arrow>
para reducir el valor de salario. -
Pulse
<Tab>
e intente mover el enfoque al campo Manager ID.¿Ha observado que una vez que el enfoque se ha movido al campo Salario, al pulsar
<Tab>
o<Shift+Tab>
no se ha movido el enfoque fuera del campo? Este campo tiene una captura de teclado. Si no se corrige el código, la única forma de salir de la captura es refrescar la página.
Tarea 6: eliminación de la captura
-
Navegue a la carpeta
src/js/views
y abra el archivoorganization.html
en un editor. -
Localice el elemento
<oj-input-number>
dondeid="salary"
:<oj-input-number id="salary" label-hint="Salary" value="{{empDetails().sal}}" min="0" step="1" on-blur="[[setKeyTrap]]"> </oj-input-number>
Elimine el atributo
on-blur
que provoca la captura del teclado.<oj-input-number id="salary" label-hint="Salary" value="{{empDetails().sal}}" min="0" step="1"> </oj-input-number>
-
Guarde el archivo. A continuación, repita los pasos de la tarea Identify a Keyboard Trap anterior para asegurarse de que la captura del teclado se haya eliminado.
-
Cuando llegue al campo Manager Id (ID de mánager), pulse
<Tab>
para mover el foco a los botones de radio Jobs (Trabajos).Según la documentación del teclado del elemento
<oj-radioset>
, utilice<up arrow>
para seleccionar el botón anterior del grupo. Utilice<down arrow>
para seleccionar el botón Siguiente del grupo. -
Pulse
<Tab>
para mover el enfoque al enlace Acerca de Oracle en la sección de pie de página de la página. -
Revierta el proceso. Pulse
<Shift+Tab>
para volver a los botones de radio Trabajos. Siga pulsando<Shift+Tab>
para retroceder por la página hasta john.hancock@oracle.com en el menú de usuario.
Recuerde consultar la Guía de gestos y teclado de Oracle JET si tiene alguna pregunta sobre las pulsaciones de teclas necesarias para utilizar un componente de Oracle JET o navegar por él.
Se completó la fase de prueba de solo teclado. Continúe con el tutorial final dentro de esta ruta de aprendizaje, Realizar validación de lector de pantalla en una aplicación Oracle JET.
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Test an Oracle JET app for keyboard-only accessibility
F34160-02
October 2022
Copyright © 2022, Oracle and/or its affiliates.