A static helper class providing accessibility utilities for Daisy controls. It simplifies setting up screen reader support across all controls.
DaisyAccessibility provides:
AutomationProperties.NameSet custom screen reader text on any Daisy control:
<controls:DaisyButton
Content="🗑️"
controls:DaisyAccessibility.AccessibleText="Delete item" />
This ensures screen readers announce "Delete item" instead of the emoji.
| Method | Description |
|---|---|
GetAccessibleText(obj) |
Gets the accessible text for a control |
SetAccessibleText(obj, value) |
Sets the accessible text for a control |
SetupAccessibility |
Registers accessibility handling for a control type (for control authors) |
GetEffectiveAccessibleText(control, defaultText) |
Gets accessible text with fallback to default |
When creating a new Daisy control, call SetupAccessibility in the static constructor:
public class DaisyMyControl : TemplatedControl
{
static DaisyMyControl()
{
DaisyAccessibility.SetupAccessibility<DaisyMyControl>("My Control");
}
}
This:
1. Sets a default AutomationProperties.Name for the control type
2. Automatically syncs any AccessibleText changes to AutomationProperties.Name
<controls:DaisyButton
controls:DaisyAccessibility.AccessibleText="Search">
<PathIcon Data="{StaticResource SearchIcon}" />
</controls:DaisyButton>
<controls:DaisyStatusIndicator
Status="Online"
controls:DaisyAccessibility.AccessibleText="User is currently online" />
<controls:DaisyRating
Value="4"
controls:DaisyAccessibility.AccessibleText="Rating: 4 out of 5 stars" />
1. Always set AccessibleText for icon-only controls - Screen readers can't interpret icons
2. Be descriptive but concise - "Delete" is better than "Click to delete this item from the list"
3. Include state information - "Mute (currently unmuted)" is more helpful than just "Mute"
4. Test with a screen reader - Windows Narrator (Win+Ctrl+Enter) or NVDA