// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Microsoft.Maui.Platform.Linux.Services; /// /// Interface for accessibility services using AT-SPI2. /// Provides screen reader support on Linux. /// public interface IAccessibilityService { /// /// Gets whether accessibility is enabled. /// bool IsEnabled { get; } /// /// Initializes the accessibility service. /// void Initialize(); /// /// Registers an accessible object. /// /// The accessible object to register. void Register(IAccessible accessible); /// /// Unregisters an accessible object. /// /// The accessible object to unregister. void Unregister(IAccessible accessible); /// /// Notifies that focus has changed. /// /// The newly focused accessible object. void NotifyFocusChanged(IAccessible? accessible); /// /// Notifies that a property has changed. /// /// The accessible object. /// The property that changed. void NotifyPropertyChanged(IAccessible accessible, AccessibleProperty property); /// /// Notifies that an accessible's state has changed. /// /// The accessible object. /// The state that changed. /// The new value of the state. void NotifyStateChanged(IAccessible accessible, AccessibleState state, bool value); /// /// Announces text to the screen reader. /// /// The text to announce. /// The announcement priority. void Announce(string text, AnnouncementPriority priority = AnnouncementPriority.Polite); /// /// Shuts down the accessibility service. /// void Shutdown(); }