语音控制
打开语音控制功能(在 iPhone 的 设置 > 辅助功能 > 语音控制 中):
在iOS应用中,可以通过语音控制内容:
Button("John Fitzgerald Kennedy") {
print("Button tapped")
}
用英语说”Tap John Fitzgerald Kennedy”,会完成对上面按钮的点击效果,还可以通过accessibilityInputLabels()方法提供多个语音识别的别名:
Button("John Fitzgerald Kennedy") {
print("Button tapped")
}
.accessibilityInputLabels(["John Fitzgerald Kennedy", "Kennedy", "JFK"])
在语音输入中,说出别名后,也可以激活按钮,例如“Tap JFK”或者“Tap John Fitzgerald Kennedy”。
如果没有实现语音控制,可能是语音控制中的语言与应用的语音控制名称或别名的语言不一致导致。
例如“Tap JFK”或者“Tap John Fitzgerald Kennedy”,都需要在“语音控制-语音”中,选择“英语”后,才能使用。
accessibilityInputLabels()
.accessibilityInputLabels() 是一种无障碍功能,主要用于语音交互(如 Siri 或 Voice Control),使用户能够通过更灵活的方式触发控件的操作。它允许为控件指定一组备用的识别标签,用户可以使用这些标签进行语音输入来激活控件。
Button("John Fitzgerald Kennedy") {
print("Button tapped")
}
.accessibilityInputLabels(["John Fitzgerald Kennedy", "Kennedy", "JFK"])
accessibilityInputLabels 提供了多个语音识别的别名(如 “Kennedy” 和 “JFK”)。
用户在使用 Voice Control 或其他语音输入方式时,可以说出这些别名(而不仅限于按钮的文本)来激活按钮。
实际效果
如果启用了 Voice Control,用户可以说:
1)”Tap John Fitzgerald Kennedy”
2)或 “Tap Kennedy”
3)或 “Tap JFK”
按钮都会被激活。
.accessibilityInputLabels() 是为无障碍语音控制优化的特性。对于不使用语音命令的用户,它确实看起来“没有用”。但对于需要无障碍支持的用户,特别是那些依赖 Voice Control 的用户,这个功能可以提供更灵活和方便的交互体验。
参考文章
Handling voice input in SwiftUI:https://www.hackingwithswift.com/books/ios-swiftui/handling-voice-input-in-swiftui