Me ha surgido una duda leyendo documentación y aprendiendo a utilizar VoiceOver de MacOS. Mi idea era que un usuario pudiera navegar por cada Chunk con el tabulador con información adicional, pero no sé hasta qué punto eso concuerda con la especificación. Por ejemplo, si una lección sigue esta secuencia de Chunks:
- Heading
- Text
- Text
- Heading-Text
- Bulleted-List
- Multiple-Answers
La idea era que el usuario empezara navegando con el tabulador y el lector de pantalla avisara con un “Chunk Heading… [contenido]” y al volver a presionar el tabulador “Chunk Text…[contenido]” y así hasta llegar al final de la lección, pero mi duda es si esto se debería hacer o va contra la especificación.
Y mi respuesta:
Tienes que distinguir dos posibles tipos de usuarios mediante teclado: el que puede ver y el que no.
El que puede ver normalmente es una persona con discapacidad motora que tiene dificultad para usar el ratón, pero también puede ser un usuario "pro" que prefiere el teclado porque es más rápido o un usuario norma con una "discapacidad temporal" (por ejemplo, se le ha roto el ratón). Estos usuarios pueden usar los cursores para realizar scroll up/down, así que no necesitan el tabulador para desplazarse por el contenido y leerlo, pero sí que necesitan el tabulador para desplazarse por los elementos de interacción. También les ayuda que pongas un enlace al final de la página para volver al principio de la página.
El que no puede ver usará un lector de pantalla, como VoiceOver, y conocerá todo los atajos que proporciona (y si no los conoce... es su problema, que los aprenda). La lista de comandos es enorme:
https://help.apple.com/voiceover/info/guide/10.8/spanish.lproj/_1203.html
El que no puede ver tiene dos problemas: cómo desplazarse por el contenido y leerlo (el que puede ver no tiene este problema) y cómo desplazarse por los elementos de interacción. Lo segundo lo hace con el tabulador, como el resto de usuarios. Lo primero no lo puede hacer con los cursos igual que lo hacemos nosotros porque no puede ver, así que tiene atajos para desplazarse a nivel de carácter, palabra, frase y párrafo:
Leer el párrafo del cursor de VoiceOver
VO + P
Leer el párrafo siguiente
VO + Mayúsculas + Av Pág
Leer el párrafo anterior
VO + Mayúsculas + Re Pág
Leer la frase del cursor de VoiceOver
VO + S
Leer la frase siguiente
VO + Comando + Av Pág
Leer la frase anterior
VO + Comando + Re Pág
Leer la línea del cursor de VoiceOver
VO + L
Leer la línea siguiente
VO + Flecha abajo
Leer la línea anterior
VO + Flecha arriba
Leer la palabra del cursor de VoiceOver
VO + W
Deletrear la palabra del cursor de VoiceOver
VO + W + W
Deletrear fonéticamente la palabra del cursor de VoiceOver
VO + W + W + W
Leer la palabra siguiente
VO + Flecha derecha
Leer la palabra anterior
VO + Flecha izquierda
Leer el carácter del cursor de VoiceOver
VO + C
Leer el carácter del cursor de VoiceOver
VO + C + C
Leer el carácter siguiente
VO + Mayúsculas + Flecha derecha
Leer el carácter anterior
VO + Mayúsculas + Flecha izquierda
La página web no tiene que proporcionar ningún mecanismo para ello, más allá de usar correctamente HTML. Por ejemplo, si creas "falsos párrafos", texto separado mediante BR, para el lector de pantalla no existirán esos párrafos que nosotros sí que vemos.
Para lo que me preguntas, no tienes que usar el tabulador, tienes que usar correctamente HTML. En concreto, los usuarios de lector de pantalla se desplazan por una página mediante los encabezados h1, h2, h3, etc.:
Buscar el encabezamiento siguiente
VO + Comando + H
Buscar el encabezamiento anterior
VO + Comando + Mayúsculas + H
Buscar el siguiente encabezamiento del mismo nivel
VO + Comando + M
Buscar el anterior encabezamiento del mismo nivel
VO + Comando + Mayúsculas + M
Y también usan la lista de encabezados, que en el caso de VoiceOver está disponible a través del Web Item rotor:
https://www.apple.com/voiceover/info/guide/_1134.html#mchlp2719
Por tanto, lo que quieres hacer lo tienes que hacer con un buen uso de los encabezados. Deberías usar h1 para el título del curso, h2 para el título de la lección y a partir de h3 para los chunks.