An overview of assistive technology
Tags: webdev, a11y
Published: 2020-11-15 17:12:19

Assistive technology is an essential aspect of accessibility. Screen readers are prevalent, but there are various other tools.

## Disclaimer

I want to give a global overview. It cannot, and it won't be exhaustive.

## Screen readers

In the previous post, I wrote about screen readers. Make sure you read it if you want to understand how they work:

{% link https://dev.to/jmau111/killing-darth-vader-accessibility-48cf %}

Here, let's say they allow hearing a spoken representation of the app. If you write your HTML tags carefully, with appropriate attributes and semantic in mind, users with screen readers get a much better experience.

On Mac OS, you get a free screen reader called VoiceOver. It's relatively easy to enable so you can test your website in real conditions.

The general purpose of screen readers is to render text and images as speech or braille output. They are not only useful for blind people but people with visual impairments too. You should also consider illiterate and people who have various difficulties in learning.

## Magnifiers

They are a significant part of what we call low vision assistive devices. "Low vision" is a generic term for an extensive range of disabilities and disorders.

The idea is to maximize the remaining vision. Again, there are different eye conditions and, thus, different devices with different usages and costs.

However, there are free settings in your operating system. It's generally called "accessibility settings".

For example, the zoom on Mac OS is a free built-in screen magnifier you can enable/disable with a gesture. You can also set the mouse cursor size in the accessibility menu.

You get those features on other operating systems (Windows, Linux, etc.) and mobile devices.

## Alternative keyboards and mouses

People with physical disabilities can have many difficulties in using standard keyboards and mouses. Some users might experience temporary or permanent conditions that make it difficult to press a key or move a mouse.

### Specific keyboards

People with cognitive or visual issues often use adaptative keyboards with predefined overlays and layouts, which help them be more independent.

Braille keyboards help blind people reading documents and controlling their computers.

Mouth and head stick keyboards help people with no use of their hands.  There are specific keyboards for one-handed users too.

### Non-physical keyboards

There are many alternatives to standard physical keyboards, for example :

on-screen keyboards
speech-to-text
eye-tracking and head-tracking systems
switch access (a device that allows you to move through the interface by flipping a switch)

### Built-in settings

Among all accessibility settings, you will find specific rules for mouse and keys.

For example, you can set a numeric keypad instead of a mouse to point things. Users can use a numerical key to move the cursor up, down, right, left, up and right, up and left, etc. They can also select/deselect elements with it.

## But assistive technology is not miraculous

### Don't underestimate keyboard navigation

As we saw earlier, and we just saw a small part of the existing tools, many assistive technologies rely on keyboard navigation. Of course, voice recognition and non-physical keyboard exist, but many people exclusively use their keyboard.

Many assistive hardware and software technologies rely on keyboard navigation. If it's broken, then users cannot use your app or your website.

### Misconceptions

One of the most widely shared misconceptions about assistive technology is that it would handle everything for people with disabilities.

It's wrong. Even if a11y devices are more innovative and inclusive, it's still quite complicated in 2020 for people with impairments. Using screen readers and other tools require a lot of training.

It is why it's so important to follow some conventions when you built app and websites. Otherwise, it would take a lot of time to go through all the content. 

Simple actions such as signing up for whatever services or buying something would turn into a nightmare if, for each website, they have to learn a new workflow.

It's best if users can memorize easy strategies that work pretty much everywhere with their assistive devices.

However, it's quite essential to note that the workflow is better for everyone if you respect some basic conventions.

### Feed it with useful elements

[ARIA attributes](https://developers.google.com/web/fundamentals/accessibility/semantics-aria/) can give the element the missing information so the screen reader can correctly interpret it.

It's often a great idea to add them as the information gets directly computed in the accessibility tree.

However, it's probably even more important to use the right HTML element, such as telephone and number inputs, to replace generic text inputs.

### Don't overcompensate

Sometimes, as developers, we want to make things better, and by lack of knowledge and testing, we might create more problems.

You know the road to hell is paved with good intentions, which is one of the reasons why I don't like the "100% a11y quest", but it's never too late to learn simple concepts and lose bad habits.

## Wrap up

I hope you now have a better overview of assistive technology. There is a massive range of devices that help many users daily, but it's not magic.

If someone gets stuck in a physical shop or a supermarket, another human can help. Websites and apps do not allow the same help yet, so if you cannot use it.

> I'm sorry this is a dead end

You don't want to end like that.

The good news is that if you think about those aspects very early in your project, it's almost cost-free.