The system-provided Rotor that will be overridden by this custom Rotor.
Instance Method
インスタンスメソッド
accessibility
accessibilityRotor(_:entries:)
Create an Accessibility Rotor replacing the specified system-provided Rotor.
Availability 有効性
- iOS 15.0+
- iPadOS 15.0+
- macOS 12.0+
- Mac Catalyst 15.0+
- tvOS 15.0+
- watchOS 8.0+
Technology
- Swift
UI
Declaration 宣言
func accessibilityRotor<Content>(_ systemRotor: AccessibilitySystemRotor
, entries: @escaping () -> Content) -> some View
where Content : AccessibilityRotorContent
Parameters パラメータ
systemRotor
entries
Content used to generate Rotor entries. This can include AccessibilityRotorEntry structs, as well as constructs such as if and ForEach.
Discussion 議論
An Accessibility Rotor is a shortcut for Accessibility users to quickly navigate to specific elements of the user interface, and optionally specific ranges of text within those elements. Replacing system Rotors this way is useful when the System Rotor does not automatically pick up elements that aren’t on-screen, such as elements far down in a Lazy
or List
.
In the following example, a Message application adds a Rotor allowing the user to navigate through all the ranges of text containing headings.
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)
}
}
}