<!--
{
  "availability" : [
    "macOS: 10.13.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSAccessibilityCustomRotor",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSAccessibilityCustomRotor"
  },
  "title" : "NSAccessibilityCustomRotor"
}
-->

# NSAccessibilityCustomRotor

A context-sensitive function that helps VoiceOver users find the next instance of a related accessibility element.

```
class NSAccessibilityCustomRotor
```

## Overview

Assistive apps, like VoiceOver, provide interfaces to quickly search apps for content of a specific type. For example, in a web browser, a user can quickly explore a list of navigational links or buttons using VoiceOver’s content menus.

[`NSAccessibilityCustomRotor`](/documentation/AppKit/NSAccessibilityCustomRotor) provides a way for apps to vend their own content menus. For example, Pages can create a *Headings* custom rotor that allows assistive apps to search the Pages document for all headings.

## Topics

### Creating a Rotor

[`init(label:itemSearchDelegate:)`](/documentation/AppKit/NSAccessibilityCustomRotor/init(label:itemSearchDelegate:))

Creates a custom rotor with the specified label and item search delegate.

[`init(rotorType:itemSearchDelegate:)`](/documentation/AppKit/NSAccessibilityCustomRotor/init(rotorType:itemSearchDelegate:))

Creates a custom rotor with the specified rotor type and item search delegate.

### Navigating to the Next Item

[`itemSearchDelegate`](/documentation/AppKit/NSAccessibilityCustomRotor/itemSearchDelegate)

The delegate for finding the next item result.

[`NSAccessibilityCustomRotorItemSearchDelegate`](/documentation/AppKit/NSAccessibilityCustomRotorItemSearchDelegate)

A delegate for a custom rotor that finds the next item result after performing a search with the specified search parameters.

### Loading the Item

[`itemLoadingDelegate`](/documentation/AppKit/NSAccessibilityCustomRotor/itemLoadingDelegate)

The delegate for loading item results that don’t have a backing UI element at loading time.

[`NSAccessibilityElementLoading`](/documentation/AppKit/NSAccessibilityElementLoading)

A role-based protocol that declares the minimum interface necessary for an accessibility element to support loading.

### Getting the Rotor Type

[`type`](/documentation/AppKit/NSAccessibilityCustomRotor/type)

The type of content that the rotor represents.

[`NSAccessibilityCustomRotor.RotorType`](/documentation/AppKit/NSAccessibilityCustomRotor/RotorType)

Constants that indicate the type of content that the rotor represents.

### Identifying the Rotor

[`label`](/documentation/AppKit/NSAccessibilityCustomRotor/label)

The localized label that assistive apps use to describe the custom rotor.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)