2017-08-08 4 views
0

を変更する前に読んで終了する要素を待つ:iOSのVoiceOverが、私が示されているラベルを切り替えることができ、ボタンを持って次の要素に

class ViewController: UIViewController { 
    @IBOutlet weak var label: UILabel! 
    @IBOutlet weak var button: UIButton! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     button.accessibilityLabel = "You can tap this really long string that i'm testing" 
     label.accessibilityLabel = "This is a label" 
    } 

    @IBAction func buttonTapped(_ sender: UIButton) { 
     label.isHidden = !label.isHidden 
     if !label.isHidden { 
      UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, label) 
     } 
    } 
} 

ボタンをタップするとラベルが表示されている場合、私はにラベルを活性化させますVoiceOverで読むことができます。問題は、ユーザーがボタンをタップすると、VoiceOverが自動的にボタンのaccessibilityLabelの読み取りを開始することです。これにより、ボタンのaccessibilityLabelの半分をVoiceOverで読み取ると、ラベルのaccessibilityLabel(たとえば、「これは本当にタップできます...これはラベルです」)にスワップします。

VoiceOverには、ボタンのaccessibilityLabelだけその後、コールUIAccessibilityPostNotificationを読んで行われているときに私が知ることができる方法はありますか?または、ユーザーがボタンをタップしたときにVoiceOverによってボタンが再び読み取られないようにする方法はありますか?

サンプルプロジェクトをここで見ることができます:https://github.com/rajohns08/VoiceOverTest

答えて

1

残念ながら、私の腸(極めて引用可能ソースは)あなたができない、といけないと言い、検査したユーザナビゲーションに応じてVoiceOverにによって生成されたスピーチを回避またはアクション。ユーザーは、ボタンのアクティブ化の結果を聞く前に、ボタンのラベルを待つ必要はありません。つまり、そのような長いボタンラベルを再検討し、遅れて読み込まれたaccessibilityHintに余分な情報を含めることができます。

関連する問題