让VoiceOver说“向上或向下滑动以选择自定义动作,然后双击以激活”

问题描述 投票:2回答:2

我有一个UITextView,里面有两个不同的超链接。为了在VoiceOver打开时有机会在两个链接之间进行选择,我做了:

class MyTextView {
   override func awakeFromNib() {
       super.awakeFromNib()
       let str = "xxxxxx Option 1 yyyy Option 2"
       let attrStr = NSMutableAttributedString(str)
       let rangeOption1 = (str as NSString).range(of: "Option 1")
       let rangeOption2 = (str as NSString).range(of: "Option 2")
       attrStr.addAttributes([.link: "option1", range: rangeOption1])
       attrStr.addAttributes([.link: "option2", range: rangeOption2])

       self.attributedText = attrStr
   }

   override var isAccessibilityElement: Bool {
       get { return true }
       set {}
   }

   override var accessibilityLabel: String? {
       get { return "Link Options" }
       set {}
   }

   override var accessibilityCustomActions: [UIAccessibilityCustomAction]? {
       get {
           return [
                UIAccessibilityCustomAction(name: "Choose Option One", target: self, selector: #selector(option1)),
                UIAccessibilityCustomAction(name: "Choose Option Two", target: self, selector: #selector(option2))]
       }
       set {}
   }

   @objc func option1() { print ("Option 1") }
   @objc func option2() { print ("Option 2") }
}

我在这个WWDC video之后从33开始做了这件事。我无法理解的是它说明向上或向下滑动以选择自定义动作,然后在textView聚焦时双击以激活。

现在它说“xxxxxx选项1 [暂停]链接[暂停] yyyy选项2 [暂停]链接[暂停]”

一旦textView聚焦,如果我向下滑动它就会告诉我“选择选项一”和“选择选项二”。如果在显示“选择选项X”之后我双击,则选择更正选项。

从技术上讲,一切都很好,我只是想像在视频中那样向用户宣布指示。最糟糕的情况我会把它附加到accessibilityLabel,但那很黑。

ios swift accessibility voiceover
2个回答
2
投票
  • 当设置accessibilityCustomActions时,操作系统会宣布“可用操作。向上或向下滑动以选择自定义操作,然后双击以激活”
  • 您可以设置accessibilityHint以提供自定义消息。

1
投票

我可能错了,但我不认为你提到的行动可以读出,只有可调整的价值可以。

由于这个detailed summary我跟踪了这​​个视频的内容,我听到:

  • “可调节,用一根手指向上或向下滑动以调整可调节元素的值:video
  • 仅当选择了具有自定义操作的元素时,“操作可用”:video

“可用的操作”仅在您实施时通过操作读出,您本身不能拥有任何其他内容。

如果我错了,请告诉我你听到过你提到的WWDC视频的游戏中时光倒流吗?

现在,如果你需要有关.adjustable特性的更多信息,包括插图和代码片段(ObjC + Swift),我建议你看看this site

© www.soinside.com 2019 - 2024. All rights reserved.