Apps for Everyone in Flutter
Tags: flutter, dart, a11y, disability
Published: 2022-04-24 22:47:36

## **Accessibility**
For your mobile app to be successful, you need to make sure that it can reach the widest possible audience.​
When more people have access to your app, it will boost your download rates and ultimately increase your total profits.​
But in order for your app to reach everyone, it has to be accessible. So what exactly is mobile accessibility?​
According to the Web Accessibility Initiative (WAI), **it means that you’re making your mobile app more accessible to users with disabilities.** ​

> _Approximately 15% of the world's population lives with some forms of disability._

**Who needs an accessible Mobile app?**
As I previously stated, accessible mobile applications are for people with disabilities.

**Forms of Disability**

- Vision
- Hearing
- Mobility
- Literacy

**Vision Disability**
Users coping with some kind of visual impairment experience the most difficulty using a mobile application that is not adapted to them. **Color blindness**, **vision loss**, or **even complete blindness** are three major impairments.

_An estimated 253 million people live with vision impairment: 36 million are blind and 217 million have moderate to severe vision impairment_ [here...](https://uxdesign.cc/color-blindness-in-user-interfaces-66c27331b858
)

## **Color Blindness**
**Challenges**
- Not being able to differentiate between colors.
- Affects 8% of male population, 0.5% women.

**How to help**

- Use Color and Icons to convey messages.
- Options to change color.
- Large fonts

## **Vision loss**
Not being able to see anything.

**How to help**
**Screen readers can be made available in the app** 
TalkBAck(Android), and VoiceOver(iOS) are screen readers provided by Android and iOS mobile platforms.
**Screen Readers for other platforms.**

**Mobile Browsers:**

- iOS - VoiceOver
- Android - TalkBack

**Desktop Browsers**

- MacOS - VoiceOver
- Windows - JAWs & NVDA

_Flutter’s standard widgets generate an accessibility tree automatically. However, if your app needs something different, it can be customized using the [Semantics widget](https://api.flutter.dev/flutter/widgets/Semantics-class.html)._

## **Hearing Disability**
Whether a user is deaf, has minor hearing impairment or has difficulties hearing sounds within a certain range.

**How to help**
Videos and sound clips can be enhanced with **optional transcriptions** or **captions**.

## **Mobility Disability**
People that have physical motor limitations might encounter problems while navigating a mobile application. Tapping or other forms of gestures need to be configurable so that a user is not bound to a specific gesture.

**How to help**

- Tapping or other forms of gestures need to be configurable so that a user is not bound to a specific gesture.
- Also, a gesture should never be a mandatory event since physical motor limitations should not restrict the navigational behavior of an app.

> _Both Android and iOS offer users the ability to configure shortcuts for frequently used phrases or words, as well as timing between presses on the screen. The size of buttons (or other touchable triggers in apps) are also configurable._

## **Literacy Disability**
An often overlooked aspect of accessibility is accessibility for people with a learning disadvantage, like (functional) illiteracy, (functional) innumeracy, and digital illiteracy.

**How to help**
Apps can better serve these users by using **simple**, **short sentences**, supported by **clear**, **culturally recognizable iconography**. **Voice feedback** is also an option. 



## **Conclusion**
Reaching a larger audience with your apps is not just about targeting as many platforms as possible (mobile, web, desktop) but also about making them accessible for everyone, including those with temporary or permanent disabilities. Native platforms already provide accessibility mechanisms, and thankfully, **Flutter does too!**

**_Learn more about Accessibility_**

- [flutter.dev](https://docs.flutter.dev/development/accessibility-and-localization/accessibility)
- [Google Developers](https://developer.android.com/courses/pathways/make-your-android-app-accessible?hl=en)
- [Accessibility on iOS](https://developer.apple.com/accessibility/ios/)


To learn more about flutter head to [flutter.dev](https://docs.flutter.dev/)

**Follow me:**

- [Twitter](https://twitter.com/sal_sstein)
- [GitHub](https://github.com/salstein)