SwiftUI - 可访问性
可访问性用于使用 SwiftUI 创建可供所有用户(包括残障用户)访问的应用程序,例如,如果某人是盲人,那么他/她可以借助画外音使用您的应用程序。SwiftUI 提供内置的可访问性支持;它允许开发人员添加标签、提示和操作,以便创建一个所有用户都可以轻松访问的界面。
它还提供各种工具,例如 VoiceOver、Switch Control 等和修饰符,这使开发人员可以更轻松地创建甚至残障人士都可以访问的应用程序。
此功能非常易于使用,并增强了所有人的用户体验。开发人员可以借助内置修饰符将它们快速集成到应用程序的界面中。 Apple 的所有平台都支持可访问性,这有助于遵守可访问性标准和法规。
SwiftUI 中的可访问性标签
可访问性标签用于为 UI 组件提供特殊的描述性文本,以便用户可以使用 VoiceOver 轻松地与元素进行通信。它使您的应用更易于访问。
我们可以使用 .accessibilityLabel(_:) 修饰符创建可访问性标签。它为不显示文本(如图标、图像等)的视图提供可访问性标签。
语法
以下是语法 −
accessibilityLabel(_ label: Text)
示例
以下 SwiftUI 程序创建了一个可访问性标签。
import SwiftUI
struct ContentView: View {
var body: some View {
Image(systemName: "doc.fill").font(.largeTitle)
.accessibilityLabel("Document")
}
}
SwiftUI 中的可访问性提示
可访问性提示用于提供有关指定 UI 组件或视图的额外信息。当用户使用 VoiceOver 阅读屏幕时,它会向用户提供提示。
当标签无法向用户提供有关组件或视图的所有信息时,它很有用。我们可以使用 accessibilityHint(_:) 修饰符创建提示。此修饰符以提示的形式添加有关元素的更多信息。
语法
以下是语法−
accessibilityHint(_ hint: Text)
示例
以下 SwiftUI 程序创建可访问性提示。
import SwiftUI
struct ContentView: View {
var body: some View {
Image(systemName: "doc.fill")
.font(.largeTitle)
.accessibilityLabel("Document")
.accessibilityHint("This file contains all the documents")
}
}
SwiftUI 中的可访问性特征
可访问性特征用于向用户提供有关 UI 组件用途的其他信息。它指示给定元素是否具有交互性,或者它是否表示某些指定内容(如按钮、标题等)以及如何处理它。
我们可以使用 .accessibilityAddTraits(_:) 修饰符创建特征,并可以使用 .accessibilityRemoveTraits(_:) 修饰符删除特征。 SwiftUI 支持各种类型的特征,例如 .isButton、.isSelected、.isHeader、.isLink、.isSearchField、.isImage、isModal、isKeyboardKey、isSelected、isSearchField、isToggle、playSound 等。
语法
以下是语法 −
accessibilityAddTraits(_traits: AccessibilityTraits)
示例
以下 SwiftUI 程序创建可访问性特征。
import SwiftUI
struct ContentView: View {
var body: some View {
Text("SwiftUI")
.font(.largeTitle)
.accessibilityAddTraits([.isButton, .isSelected])
.accessibilityRemoveTraits(.isSelected)
}
}
SwiftUI 中的可访问性值
可访问性值提供了有关给定元素的当前状态或值的附加信息。它对于滑块、切换或步进器等 UI 组件非常有用。它可以轻松地与 VoiceOver 等技术配合使用。
我们可以使用 .accessibilityValue(_:) 修饰符创建值。它允许我们创建一个可以被 VoiceOver 轻松读取的值。
语法
以下是语法 −
accessibilityValue(_ valueDescription: Text)
示例
以下 SwiftUI 程序创建可访问性值。
import SwiftUI
struct ContentView: View {
@State private var value: Double = 50 // Initial volume level
var body: some View {
VStack {
Slider(value: $value, in: 0...100)
.accessibilityLabel("Value")
.accessibilityValue("\(Int(value)) percent")
.padding()
Text("Current Value: \(Int(value))%")
.padding()
}
}
}
#Preview {
ContentView()
}
SwiftUI 中的辅助功能操作
辅助功能操作用于定义由 voiceOver 和其他辅助技术确定的操作,以便残障人士能够熟练地执行指定的操作。
我们可以使用 .accessibilityAction(_:) 修饰符创建操作。此修饰符创建的操作可使用 VoiceOver 轻松读取和执行。这些操作由 VoiceOver 宣布,用户通过选择它们来执行操作。
语法
以下是语法 −
accessibilityAction( _ actionKind: AccessibilityActionKind, _ handler: @escaping () -> Void )
示例
以下 SwiftUI 程序创建了可访问性操作。
import SwiftUI
struct ContentView: View {
@State private var count = 0
var body: some View {
VStack {
Rectangle()
.frame(width: 100, height: 100)
.foregroundStyle(.red)
.accessibilityLabel("Increment Button")
.accessibilityAddTraits(.isButton)
.accessibilityAction(named: "Increment") {
count += 1
}
}
}
}
#Preview {
ContentView()
}

