Skip to content

Commit 69c7737

Browse files
authored
Merge branch 'main' into pinkesh/supabase-reset-password
2 parents 5a0efc1 + d9e4264 commit 69c7737

18 files changed

+345
-720
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
{
2-
"label": "Localization & Accessibility",
2+
"label": "Accessibility & Localization",
33
"position": 7
44
}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
slug: /concepts/accessibility
3+
title: Accessibility
4+
tags: [Accessibility]
5+
keywords: [FlutterFlow, Accessibility, Screen Reader Support, Semantic Labels]
6+
description: Learn how to make your app accessible to everyone.
7+
sidebar_position: 0
8+
---
9+
# Accessibility
10+
11+
Accessibility is about making your app usable for everyone, including individuals with visual, auditory, cognitive, or motor impairments. Ensuring your app is accessible not only benefits users with disabilities but also improves the overall user experience and usability of the app for everyone.
12+
13+
Here are some examples of how accessibility can help users with disabilities:
14+
15+
- **Screen Readers for Visually Impaired Users**: Screen readers like **TalkBack** (Android) and **VoiceOver** (iOS) help visually impaired users navigate and understand the app by reading aloud on-screen content.
16+
- **Large Touch Targets for Motor Impairments**: Large touch targets make it easier for users with motor impairments to interact with buttons and other UI elements.
17+
- **Color Contrast for Visual Impairments**: High-contrast color schemes ensure text and interactive elements are easily readable for users with visual impairments.
18+
- **Keyboard Navigation for Physical Impairments**: Users unable to use touchscreens can navigate the app effectively with keyboard controls.
19+
- **Haptic Feedback**: Tactile responses help users with visual or motor impairments understand when interactions are successful.
20+
21+
In FlutterFlow, you can enhance the accessibility of your app by incorporating various accessibility features, such as semantic labels, keyboard navigation, haptic feedback, responsive fonts, and proper color contrast.
22+
23+
Here are some key accessibility features you can use:
24+
25+
## Semantic Label
26+
27+
You can use **Semantic Labels** to provide custom descriptions, hints, or to emphasize the importance of specific parts of the widget tree. This ensures that screen reader users receive clear and meaningful information about each widget more effectively.
28+
29+
For example, in an e-commerce app, you can add a semantic label to an '*Add to Bag*' button with a message like '*Add the selected item to cart*', which helps users better understand the button's action.
30+
31+
To add a semantic label for any widget, select the widget, move to the properties panel (right side), tap the document icon inside the **Accessibility & Semantic Label** section, add the message, and click **Save**.
32+
33+
34+
<div style={{
35+
position: 'relative',
36+
paddingBottom: 'calc(56.67989417989418% + 41px)', // Keeps the aspect ratio and additional padding
37+
height: 0,
38+
width: '100%'}}>
39+
<iframe
40+
src="https://demo.arcade.software/m6KHHlhnbq0NJxHqWH88?embed&show_copy_link=true"
41+
title=""
42+
style={{
43+
position: 'absolute',
44+
top: 0,
45+
left: 0,
46+
width: '100%',
47+
height: '100%',
48+
colorScheme: 'light'
49+
}}
50+
frameborder="0"
51+
loading="lazy"
52+
webkitAllowFullScreen
53+
mozAllowFullScreen
54+
allowFullScreen
55+
allow="clipboard-write">
56+
</iframe>
57+
</div>
58+
<p></p>
59+
60+
Moreover, to add a semantic label for every widget in your app that has an action trigger `OnTap` or `onLongPress`, you can enable the **Add Warning for Semactic Widgets**. By doing so, you'll get a warning if any widget has action but doesn't have a semantic label added yet.
61+
62+
:::tip
63+
64+
You can click on the warning item to directly navigate to that widget.
65+
66+
:::
67+
68+
![add-warning-for-semantic-widgets.avif](imgs/add-warning-for-semantic-widgets.avif)
69+
70+
After you add semantic labels, enable **TalkBack** on Android or **VoiceOver** on iOS to test how screen readers interact with your app. These screen readers will help you verify that all UI elements are read clearly, descriptions are meaningful, and users can navigate logically without getting lost.
71+
72+
Learn more about [enabling screen reader on your device](https://docs.flutter.dev/ui/accessibility-and-internationalization/accessibility#screen-readers).
73+
74+
## Keyboard Navigation
75+
76+
You can use the [On Shortcut Press](../../resources/ui/pages/page-lifecycle.md#on-shortcut-press-action-trigger) action trigger to bind keyboard shortcuts to specific actions. This makes it easier for users with disabilities to navigate your app, especially in web and desktop environments.
77+
78+
It enhances accessibility by allowing users to interact without relying solely on a mouse or touchscreen, making the experience more inclusive and efficient.
79+
80+
## Haptic Feedback
81+
82+
Using [Haptic Feedback](../alerts-notification/haptic-feedback.md), you can vibrate the user's device, which is particularly helpful for users with visual or cognitive impairments. It provides a tactile response to indicate that an action has been completed.
83+
84+
For example, vibrating the user's device when successfully submitting a form.
85+
86+
## Responsive Fonts
87+
88+
When developing an app, it's important to consider the different platforms on which it will run. Text may appear smaller on devices with higher screen resolution, such as tablets, web, or desktops, which can negatively impact accessibility for users with visual impairments.
89+
90+
[Adding responsive text](../design-system/design-system.md#adding-responsive-text-styles) that adjusts font size based on the platform helps make content more readable, improving accessibility for users who need larger or more legible text.
91+
92+
## Color Contrast
93+
94+
Use sufficient color contrast to make text and interactive elements readable for users with visual impairments or color blindness. This helps ensure that content is easily distinguishable, even for users with limited vision. Learn more about using various ways to [add colors](../design-system/design-system.md#colors) in your FlutterFlow app.
95+
96+
:::tip
97+
You can use tools like [**WCAG Contrast Checker**](https://webaim.org/resources/contrastchecker/) to validate the color contrast ratio.
98+
:::
99+
100+
## Best Practices
101+
102+
- Accessibility should be considered from the start of the design and development process, not added as an afterthought.
103+
- While adding [semantic labels](#semantic-label):
104+
- Avoid ambiguous labels like "Click here" or "Press this"; instead, use descriptive phrases such as "Submit form" or "Navigate to settings."
105+
- Instead of just showing an icon, add semantic labels like "Back button" or "Search button" to provide context for screen readers.
106+
- Ensure that interactive widgets have a minimum touch target size of 48x48 logical pixels. This helps users with motor impairments easily interact with buttons, switches, and other components.
107+
- Always test your app with screen readers enabled to verify that it behaves as expected.
108+
- Don't use color as the only means to convey important information. Include text, icons, or patterns to supplement color, making the content accessible to colorblind users.
109+
- Verify your app's UI under high contrast or larger text sizes to ensure it remains readable and usable.
110+
- Use simple gestures like taps and double-taps instead of multi-finger swipes or long presses. Provide alternate ways to perform actions, such as using a button in addition to a swipe gesture.
111+
- Perform usability tests with individuals with disabilities. Real user feedback is invaluable for identifying issues that might not be caught during standard testing.

0 commit comments

Comments
 (0)