Skip to content
DeveloperMemos

Using the disabled Modifier in SwiftUI

SwiftUI, UI Design, Accessibility2 min read

SwiftUI is a powerful and easy-to-use framework for building user interfaces on Apple platforms. It provides a wide range of modifiers that allow us to customize the appearance and behavior of our views. One of these modifiers is disabled, which can be used to disable user interaction with a view. In this post, we will learn how to use the disabled modifier in SwiftUI and why it's important for improving the accessibility of our app.

The disabled Modifier

The disabled modifier is a boolean modifier that disables user interaction with a view. When a view is disabled, its appearance changes to indicate that it's not interactive, and its actions are not executed when the user interacts with it.

To use the disabled modifier, we simply add it to a view and set its value to true or false depending on whether we want to enable or disable user interaction with the view. For example, the following code creates a button that's disabled:

1Button("Disabled Button") {
2 // Action when the button is tapped
3}
4.disabled(true)

In this code, we create a button with the label "Disabled Button" and an action that's executed when the button is tapped. We then add the disabled modifier and set its value to true, which disables user interaction with the button.

We can also use the disabled modifier with other views, such as text fields, sliders, or any other view that supports user interaction.

Accessibility

The disabled modifier is not only useful for disabling user interaction with a view, but it also plays an important role in improving the accessibility of our app. When a view is disabled, its appearance changes to indicate that it's not interactive, and this change can be detected by assistive technologies such as VoiceOver.

VoiceOver is a screen reader that reads the content of the screen aloud to visually impaired users. When VoiceOver encounters a disabled view, it announces that the view is disabled and skips it, preventing the user from wasting time trying to interact with it.

By using the disabled modifier in our app, we can make it more accessible to visually impaired users and ensure that they can interact with it more efficiently.

Example

Let's take a look at a practical example of how to use the disabled modifier in SwiftUI. In this example, we will create a form with a text field and a button that's disabled until the user enters some text in the text field.

1struct ContentView: View {
2 @State private var text = ""
3
4 var body: some View {
5 Form {
6 TextField("Enter your name", text: $text)
7 Button("Save") {
8 // Save action
9 }
10 .disabled(text.isEmpty)
11 }
12 }
13}

In this code, we create a form with a text field and a button that's disabled until the user enters some text in the text field. We achieve this by using the disabled modifier with the button and setting its value to text.isEmpty, which disables the button when the text field is empty.

Conclusion

In this post, we learned how to use the disabled modifier in SwiftUI to disable user interaction with a view and improve the accessibility of our app. We saw that the disabled modifier is a simple yet powerful tool that can be used with any view that supports user interaction. We also learned that the disabled modifier plays an important role in making our app more accessible to visually impaired users by indicating that a view is not interactive and preventing the user from wasting time trying to interact with it.