什么是无障碍技术
随着移动设备用户群的不断扩大,无障碍技术的重要性越来越受到开发者的关注。无障碍技术是一种包括硬件和软件方面的技术,使得身体残障、听力障碍和视觉障碍的用户也能够使用智能设备。通过无障碍技术,我们可以提供更多元化、包容性强的用户体验,帮助用户更好地和我们的应用互动和交流。
在 iOS 应用中,无障碍技术主要包括视觉、听觉和操作方面的技术。其中,视觉方面的技术主要是指 VoiceOver 屏幕阅读器,可以帮助用户听到屏幕上的文字和控件信息。而听觉方面的技术主要是指『发音器』,可以向用户发出声音提示,帮助用户更好地理解应用。操作方面的技术包括指示器、可访问性标签、调整字体大小等,可以使得操作更加简便、便利。
为什么要使用无障碍技术
无障碍技术可以帮助我们提高应用的可用性和可访问性。在开发 iOS 应用时,无障碍技术可以:
- 提供无障碍的应用体验,帮助用户更好地使用应用;
- 为覆盖开发人员无法想象到的用户需求做准备,确保我们的应用可以满足人们的多样需求;
- 促进虚拟共性和真实团体的融合。
下面,我们将详细说明如何在 iOS 应用中整合无障碍技术。
如何在 iOS 应用中集成无障碍技术
iOS 应用的无障碍技术是内置在系统中的,无需我们自行实现。我们需要做的是提供适配和优化,使得应用的界面和交互可以融合至系统无障碍技术的架构体系中。
开启 VoiceOver
有关无障碍技术的应用开发,我们常常需要执行一些在标准应用程序开发中不需要相应的操作,例如开启和关闭屏幕阅读器。开启 VoiceOver 可以帮助我们边测边调,并在应用设计期间了解用户屏幕访问体验。
请依次打开「设置」>「通用」>「辅助功能」>「VoiceOver」,或者在设备锁屏状态下快捷启用方法是:三击 Home 键,再点击 VoiceOver 按钮。
无障碍化你的应用
接下来,我们将详细介绍无障碍技术的集成方法。
- 操作方面的技术——指示器
开发者可以使用 UIAccessibilityTraitButton、UIAccessibilityTraitLink 等属性来表示 UIButton 和 UILabel 应被 VoiceOver 当做按钮和链接读取。iOS 系统也使用这些属性来标记系统的按钮和链接。
let fooButton = UIButton(frame: CGRect(x: 0, y: 0, width: 80, height: 40)) fooButton.isAccessibilityElement = true fooButton.accessibilityLabel = "foo button" fooButton.accessibilityTraits = [.button]
- 操作方面的技术——通用标签
我们可以使用 accessibilityIdentifier 属性为任何一个可访问元素(例如文本框、选项按钮、表格单元格等)设置一个唯一的逻辑标签,来提高标识准确性,以便开发者可以通过通过 JavaScript 开发自动化功能测试。
let fooTextField = UITextField(frame: CGRect(x: 0, y: 100, width: 80, height: 40)) fooTextField.isAccessibilityElement = true fooTextField.accessibilityIdentifier = "foo text field"
- 操作方面的技术——自定义标签
在有些情况下,使用 UIKit 内建的对象类无法完全满足开发者的需求,我们可能需要创建自定义视图。使用 accessibilityLabel 属性为视图创建自定义标签,这样系统就可以将内容传递给 VoiceOver,让用户可以正确识别我们定制的界面元素。
let fooCustomView = UIView(frame: CGRect(x: 0, y: 200, width: 80, height: 40)) fooCustomView.isAccessibilityElement = true fooCustomView.accessibilityLabel = "foo custom view"
- 视觉方面的技术——VoiceOver屏幕阅读器
VoiceOver 是 iPhone 上的一种内置的屏幕阅读器,可以帮助视力障碍用户通过听到应用的屏幕内容来操作手机界面。当我们应用中存在自定义视图时,需要为其定义 accessibilityLabel 属性值,提供对应视图的详细说明,以让 VoiceOver 可以准确地传递正确的内容给用户。
let fooLabel = UILabel(frame: CGRect(x: 0, y: 300, width: 80, height: 40)) fooLabel.isAccessibilityElement = true fooLabel.text = "foo label" fooLabel.accessibilityLabel = "This is a foo label test view. Now, we should see the VoiceOver output."
- 有助于听觉理解的技术——发音器
在无障碍技术中,发音器可以为用户提供有助于理解的语音提示。例如,在视频应用中,开发者可以使用发音器为用户提供语音提示,使他们更好地理解应用所显示的内容。
let str = "Hello, World!" let utterance = AVSpeechUtterance(string: str) utterance.rate = 0.25 //播放速率 utterance.pitchMultiplier = 1.1 //音调 utterance.voice = AVSpeechSynthesisVoice(language: "en-US") //播放语言 let synthesizer = AVSpeechSynthesizer() synthesizer.speak(utterance)
总结
本文简介了 iOS 应用在无障碍技术方面的集成方法和细节讨论。通过无障碍技术的集成,我们可以为残障人群提供更多样化的用户体验,同时,也符合我们的创新理念,是 iOS 应用体系更加完整、更具有社会责任感的体现。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/659e0500add4f0e0ff721850