インスタンスメソッド
accessibilityRotor(_:entries:)
指定されたシステム提供のローターを置き換えるアクセシビリティローターを作成します。
iOS 15.0+
iPadOS 15.0+
macOS 12.0+
Mac Catalyst 15.0+
tvOS 15.0+
watchOS 8.0+
visionOS 1.0+
func accessibilityRotor<Content>(
@AccessibilityRotorContentBuilder entries: @escaping () -> Content
) -> some View where Content : AccessibilityRotorContent
パラメータ
systemRotor
このカスタムローターによってオーバーライドされるシステム提供のローター。
entries
ローターエントリの生成に使用されるコンテンツ。これには、AccessibilityRotorEntry 構造体だけでなく、if や ForEach などの構造体も含まれます。
議論
アクセシビリティローターは、アクセシビリティユーザーがユーザーインターフェイスの特定の要素、およびオプションでそれらの要素内の特定の範囲のテキストにすばやく移動するためのショートカットです。この方法でシステムローターを置き換えることは、LazyVStack や List のはるか下にある要素など、画面上にない要素をシステムローターが自動的に取得しない場合に便利です。
以下の例では、メッセージ アプリケーションがローターを追加し、ユーザーが見出しを含むテキストのすべての範囲をナビゲートできるようにしています。
- extension Message {
// Ranges of special areas in the `content` text. Calculated
// when `content` is set and then cached so that we don't have
// to re-compute them.
var contentHeadingRanges: [Range<String.Index>]
- }
- struct MessageContentView: View {
TextEditor(.constant(message.content))
.accessibilityRotor(.heading) {
ForEach(range in message.contentHeadingRanges) {
AccessibilityRotorEntry(textRange: range)
}
}
- }
以下も見よ
システムローターの置き換え
func accessibilityRotor<EntryModel, ID>(AccessibilitySystemRotor, entries: [EntryModel], entryID: KeyPath<EntryModel, ID>, entryLabel: KeyPath&lEtntryModel, String>) -> some View
指定されたシステム提供のローターを置き換えるアクセシビリティローターを作成します。
func accessibilityRotor<EntryModel>(AccessibilitySystemRotor, entries: [EntryModel], entryLabel: KeyPath<EntryModel, String>) -> some View
指定されたシステム提供のローターを置き換えるアクセシビリティローターを作成します。
func accessibilityRotor(AccessibilitySystemRotor, textRanges: [Range<String.Index>]) -> some View
指定されたシステム提供のローターを置き換えるアクセシビリティローターを作成します。ローターは現在のアクセシビリティ要素に付属され、各エントリはその要素の指定された範囲に移動します。
struct AccessibilitySystemRotor
システムが提供する自動ローターの 1 つを開発者が提供するローターに置き換えるローターを指定します。
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ