# activeHierarchy

> The accessibility hierarchy that is currently accessible to screen readers.

## Definition

* **Type:** Property
* **Namespace:** [UnityEngine.Accessibility](/engine/6000.5/script-reference/unityengine/accessibility.md)
* **Assembly:** UnityEngine.AccessibilityModule

```csharp
public static AccessibilityHierarchy activeHierarchy { get; set; }
```

### Remarks

An active [AccessibilityHierarchy](/engine/6000.5/script-reference/unityengine/accessibility/accessibilityhierarchy.md) is required to make the content of an application accessible to screen reader users.

To manage system resources efficiently, setting this property only takes effect if the screen reader is on, where the value of [\_isScreenReaderEnabled](/engine/6000.5/script-reference/unityengine/accessibility/assistivesupport/isscreenreaderenabled.md) is `true`. Similarly, when the screen reader is turned off, so when the [\_screenReaderStatusChanged](/engine/6000.5/script-reference/unityengine/accessibility/assistivesupport/screenreaderstatuschanged.md) event is sent with a `false` parameter or when \_screenReaderStatusOverride is set to [AssistiveSupport.ScreenReaderStatusOverride.ForceDisabled](/engine/6000.5/script-reference/unityengine/accessibility/assistivesupport/screenreaderstatusoverride/forcedisabled.md), this property is automatically set to `null`. You must set it each time the screen reader is turned on.

When this property is set, Unity notifies the screen reader of the new hierarchy by calling [IAccessibilityNotificationDispatcher.SendScreenChanged](/engine/6000.5/script-reference/unityengine/accessibility/iaccessibilitynotificationdispatcher/sendscreenchanged.md) (with a `null` parameter).

**Note**: Only the accessibility hierarchy for the application's main window is supported. Content displayed on additional windows, such as on secondary displays, is not exposed to screen readers.

**Warning**: Assigning a hierarchy builds its native representation, and setting this property to `null` tears it down. This has a non-trivial cost on the following platforms:

* **iOS**: Switching the active hierarchy has a high cost that scales with the size of the hierarchy. Avoid setting this property frequently in performance-sensitive code.

* **macOS**: Switching the active hierarchy has a moderate cost that scales with the size of the hierarchy. Doing so frequently can affect performance.
