【发布时间】:2021-12-06 19:04:23
【问题描述】:
场景:用户有 5 颗星(按钮)。每个按钮都有一个 UIAccessibility 标签来描述星星(“五中的第一颗星”等)。
问题:选择后,UIAccessibility 会重复标签。我想将其更改为“已选择”(或“您已选择第二颗星。”)。
尝试的解决方案:
我试图压制按钮的动作响应并获得沉默;我猜这是意料之中的。
cell.button2.accessibilityLabel = @"Second star of Five.";
cell.button2.accessibilityTraits += UIAccessibilityTraitStartsMediaSession;
但我也不想要标签的自动重复。
如何在选择每个星形按钮时完全控制“旁白”,以便用户理解选择而不是仅仅重复标签?
根据以下建议,我无法覆盖自定义按钮类的 accessibilityLabel。我有 ObjC 代码,但更喜欢使用 Swift。所以我试图将用 Swift 编写的自定义 UIButton 类合并到 ObjC 中。
【问题讨论】:
-
仅出于 a11y 的目的,是否需要为每个星形设置一个专用按钮,或者是否可以将所有星形都包裹在一个对象中,像滑块一样工作,仅用于 VoiceOver 以提供所需的速率? ??????
标签: ios voiceover uiaccessibility