SwiftUI 如何使用装饰性图像减少屏幕阅读器的混乱?

SwiftUI 会自动使用图像名称作为屏幕阅读器标签,如果您使用的图像名称为 “Paul Hudson的照片” 或 “带有Swift徽标的图片”,这将很有用。 但是,某些图像并非仅仅是为了装饰而已被阅读 - 它们不会传达屏幕上其他地方还没有的信息,或者只是传达信息,以使用户界面看起来更具吸引力。

如果您使用 Image("star") 之类的图片创建这些图像,则屏幕阅读器会将其作为标准UI传递的一部分读出。一个更好的主意是使用 Image(decorative:) 初始化程序创建它们,该初始化程序告诉 SwiftUI 该图像不应暴露于屏幕阅读器:

Image(decorative: "star")

建立用户界面后,值得使用 VoiceOver 进行最后检查,以确保您正确标记了图像 - 最后,您需要的是屏幕阅读器说出您认为仅在代码中使用过的奇怪的内部文件名 !