アクセシビリティの操作
VoiceOver はアプリケーション内の要素を順番に読み取りますが、要素間でフォーカスを移動する方法はありますか? 「nextResponder」で動作させてみましたが、動作しません。
アクセシビリティの操作
VoiceOver はアプリケーション内の要素を順番に読み取りますが、要素間でフォーカスを移動する方法はありますか? 「nextResponder」で動作させてみましたが、動作しません。
iOS 6 以降ではUIAccessibilityLayoutChangedNotification
、要素を渡すことで特定の要素にフォーカスを設定できます。
UIAccessibilityPostNotification(UIAccessibilityLayoutChangedNotification, firstBottom);
しかし、「タブ オーダー」を完全に変更しようとしている場合、その方法はわかりません。
これは暗いショットですが、順序を変更したい場合に応じて、accessibilityLabelまたはaccessibilityHintを変更してみましたか? VoiceOver をだましてテキストが変更されたと信じ込ませることができれば、適切にフォーカスが変更されると思います。
VoiceOver がビューをクロールしているときにデリゲート コールバックがないように見えるため、タイミングが難しい部分になるため、アクセシビリティのヒント/値を更新する前に、経過時間を見積もる必要がある場合があります。
UIAccessibilityTraitUpdatesFrequently
私の最後の考えは、アクセシビリティ特性で注意を喚起したい UIView をマークすることです。これは、隠された Apple ライブラリを利用せずに取得できる最も近い方法かもしれません。
UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, elementName);を試しました。フォーカスを別の要素に変更します。動作は、フォーカスが新しい要素に移ったというものでしたが、Voice Over は最初にページ タイトルを発表し、次に新しい要素のアクセス可能なラベル値を発表しました。