Here you can order great rockets!

Blind Bethany

Blind Bethany uses a screen reader to navigate websites. She is trying to use this site to buy a rocket. Unfortunately, the site contains some of the most common errors that can hinder keyboard navigation.

Can you help her purchase the rocket? Various elements have been added for you to test, and you can read the hints to get tips on how to solve the problem.

How to Use Screen Readers

It is a good idea to try out screen reader navigation yourself. I would recommend figuring out how to both turn on and off the screen reader. There's a lot of talking.

Mac

Windows

Linux

Things to Test

Navigation and Overview

Sighted users open the page and get an overview right away. Screen reader users can use shortcuts to quickly read headers or main sections.

Interaction

Reading and Images

Notes

WAI-ARIA

Web Accessibility Initiative - Accessible Rich Internet Applications, or just Aria, is a set of attributes you can add to your HTML tags to provide information to the Accessibility API (which is what screen readers use).

These are powerful tools that should be used where needed. However, they should be used where needed and not just added to be on the safe side. Ideally, you should write semantic HTML so that they are not needed, but in certain cases, you will need to use them. Having many ARIA attributes in the code is actually a code smell, as it indicates that you need to use ARIA to try to fix problems instead of writing good HTML.

Aria-hidden

Aria-hidden is an example of this. The attribute is often added to all hidden elements just to be on the safe side, but it is not needed if the element is hidden using display: none, visibility: hidden, or the HTML hidden attribute. Adding aria-hidden: true in these cases provides no additional information to the screen reader, but it increases the likelihood of errors if, for example, visibility: visible is set without setting aria-hidden: false.

Semantic HTML

h-tags

h1/h2/h3/h4/h5/h6 tags must follow the structure. If your parent is an h1, then you should be an h2, even if the design may suggest that you should look like an h3. Here you must first set up the semantic structure, and then you can style afterwards. Designers must also consider this ;)

Relevant Requirements