AccessiblePart record struct Core

One part of a control tree as assistive technology sees it, interactive or only read — the host-neutral answer the automation peers are FED from (step 5 of the control-tree concept): the tree already knows identity, kind, spoken label, bounds and focus, so a peer translates instead of re-deriving.

public readonly record struct AccessiblePart
Namespace
ArionUI.Presentation.Controls
Package
ArionUI.Presentation · dotnet add package ArionUI.Presentation --prerelease

Constructors

AccessiblePart

public AccessiblePart(string Id, ControlRole Role, string Label, LogRect Bounds, bool Enabled, bool Focused);

One part of a control tree as assistive technology sees it, interactive or only read — the host-neutral answer the automation peers are FED from (step 5 of the control-tree concept): the tree already knows identity, kind, spoken label, bounds and focus, so a peer translates instead of re-deriving.

Properties

Bounds

public LogRect Bounds { get; init; }

Enabled

public bool Enabled { get; init; }

Focusable

public bool Focusable { get; init; }

The part can hold the keyboard focus (a tab stop, a focusable view) - its own fact, not one derived from AccessiblePart.Role: a group may take the focus, a text never does.

Focused

public bool Focused { get; init; }

Id

public string Id { get; init; }

Label

public string Label { get; init; }

Offscreen

public bool Offscreen { get; init; }

The part lies wholly outside what its containers show (scrolled out of a panel); it keeps its box, a reader just knows it cannot be seen now.

ParentId

public string? ParentId { get; init; }

The id of the ControlRole.Group part this part sits in; null for a part at the top of the tree.

ReadOnly

public bool ReadOnly { get; init; }

The part shows a value that cannot be set (a cell of a read-only column); it is still enabled, only its value is fixed.

Role

public ControlRole Role { get; init; }