From 8a9f9baf8066ccd7820d816c87d7287d4ff13e4b Mon Sep 17 00:00:00 2001 From: Seoyeon2Kim <34738918+Seoyeon2Kim@users.noreply.github.com> Date: Tue, 31 Aug 2021 17:37:20 +0900 Subject: [PATCH] [NUI][ATSPI] Add a function to check whether accessibility is enabled (#3463) * [NUI][ATSPI] Add a function to check whether accessibility is enabled - Added `IsEnabled` to check accessibility state Signed-off-by: Seoyeon Kim * Change the type of Enabled to property - Make `Enabled` both static and property. Signed-off-by: Seoyeon Kim --- src/Tizen.NUI.Components/Controls/Button.cs | 4 ++-- src/Tizen.NUI.Components/Controls/Pagination.cs | 2 +- src/Tizen.NUI.Components/Controls/Progress.cs | 2 +- src/Tizen.NUI.Components/Controls/SelectButton.cs | 2 +- src/Tizen.NUI.Components/Controls/Slider.cs | 2 +- src/Tizen.NUI.Components/Controls/Switch.cs | 2 +- .../src/internal/Interop/Interop.Accessibility.cs | 4 ++++ src/Tizen.NUI/src/public/Accessibility/Accessibility.cs | 17 +++++++++++++++++ .../src/public/BaseComponents/ViewPublicMethods.cs | 4 ++-- 9 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/Tizen.NUI.Components/Controls/Button.cs b/src/Tizen.NUI.Components/Controls/Button.cs index 0b045f2..857e178 100755 --- a/src/Tizen.NUI.Components/Controls/Button.cs +++ b/src/Tizen.NUI.Components/Controls/Button.cs @@ -98,7 +98,7 @@ namespace Tizen.NUI.Components instance.UpdateState(); } - if (instance.IsHighlighted) + if (Accessibility.Accessibility.Enabled && instance.IsHighlighted) { instance.EmitAccessibilityStatesChangedEvent(AccessibilityStates.Checked, newSelected); } @@ -362,7 +362,7 @@ namespace Tizen.NUI.Components { TextLabel.Text = value; - if (IsHighlighted && String.IsNullOrEmpty(AccessibilityName) && GetAccessibilityNameSignal().Empty()) + if (Accessibility.Accessibility.Enabled && IsHighlighted && String.IsNullOrEmpty(AccessibilityName) && GetAccessibilityNameSignal().Empty()) { EmitAccessibilityEvent(AccessibilityPropertyChangeEvent.Name); } diff --git a/src/Tizen.NUI.Components/Controls/Pagination.cs b/src/Tizen.NUI.Components/Controls/Pagination.cs index e22a2da..9da3e44 100755 --- a/src/Tizen.NUI.Components/Controls/Pagination.cs +++ b/src/Tizen.NUI.Components/Controls/Pagination.cs @@ -367,7 +367,7 @@ namespace Tizen.NUI.Components SelectIn(indicatorList[selectedIndex]); - if (IsHighlighted) + if (Accessibility.Accessibility.Enabled && IsHighlighted) { EmitAccessibilityEvent(AccessibilityPropertyChangeEvent.Value); } diff --git a/src/Tizen.NUI.Components/Controls/Progress.cs b/src/Tizen.NUI.Components/Controls/Progress.cs index acd2853..5bbf963 100755 --- a/src/Tizen.NUI.Components/Controls/Progress.cs +++ b/src/Tizen.NUI.Components/Controls/Progress.cs @@ -367,7 +367,7 @@ namespace Tizen.NUI.Components set { SetValue(CurrentValueProperty, value); - if (IsHighlighted) + if (Accessibility.Accessibility.Enabled && IsHighlighted) { EmitAccessibilityEvent(AccessibilityPropertyChangeEvent.Value); } diff --git a/src/Tizen.NUI.Components/Controls/SelectButton.cs b/src/Tizen.NUI.Components/Controls/SelectButton.cs index 8a62bc4..2afcf5a 100755 --- a/src/Tizen.NUI.Components/Controls/SelectButton.cs +++ b/src/Tizen.NUI.Components/Controls/SelectButton.cs @@ -214,7 +214,7 @@ namespace Tizen.NUI.Components { if (info.PreviousState.Contains(ControlState.Selected) != info.CurrentState.Contains(ControlState.Selected)) { - if (IsHighlighted) + if (Accessibility.Accessibility.Enabled && IsHighlighted) { EmitAccessibilityStatesChangedEvent(AccessibilityStates.Checked, info.CurrentState.Contains(ControlState.Selected)); } diff --git a/src/Tizen.NUI.Components/Controls/Slider.cs b/src/Tizen.NUI.Components/Controls/Slider.cs index 306fec9..7ac6ed9 100755 --- a/src/Tizen.NUI.Components/Controls/Slider.cs +++ b/src/Tizen.NUI.Components/Controls/Slider.cs @@ -176,7 +176,7 @@ namespace Tizen.NUI.Components if (newValue != null) { instance.curValue = (float)newValue; - if (instance.IsHighlighted) + if (Accessibility.Accessibility.Enabled && instance.IsHighlighted) { instance.EmitAccessibilityEvent(AccessibilityPropertyChangeEvent.Value); } diff --git a/src/Tizen.NUI.Components/Controls/Switch.cs b/src/Tizen.NUI.Components/Controls/Switch.cs index 2a1bc1e..43bf7321 100644 --- a/src/Tizen.NUI.Components/Controls/Switch.cs +++ b/src/Tizen.NUI.Components/Controls/Switch.cs @@ -317,7 +317,7 @@ namespace Tizen.NUI.Components private void OnSelect() { - if (IsHighlighted) + if (Accessibility.Accessibility.Enabled && IsHighlighted) { EmitAccessibilityStatesChangedEvent(AccessibilityStates.Checked, IsSelected); } diff --git a/src/Tizen.NUI/src/internal/Interop/Interop.Accessibility.cs b/src/Tizen.NUI/src/internal/Interop/Interop.Accessibility.cs index 80beb45..c10b695 100755 --- a/src/Tizen.NUI/src/internal/Interop/Interop.Accessibility.cs +++ b/src/Tizen.NUI/src/internal/Interop/Interop.Accessibility.cs @@ -44,6 +44,10 @@ namespace Tizen.NUI [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "csharp_dali_accessibility_BridgeDisableAutoInit")] public static extern void BridgeDisableAutoInit(); + + [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "csharp_dali_accessibility_IsEnabled")] + [return: global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.U1)] + public static extern bool IsEnabled(); } } } diff --git a/src/Tizen.NUI/src/public/Accessibility/Accessibility.cs b/src/Tizen.NUI/src/public/Accessibility/Accessibility.cs index 7494fa2..af5d0de 100755 --- a/src/Tizen.NUI/src/public/Accessibility/Accessibility.cs +++ b/src/Tizen.NUI/src/public/Accessibility/Accessibility.cs @@ -61,6 +61,23 @@ namespace Tizen.NUI.Accessibility { get => accessibility; } + + /// + /// Flag to check whether the state of Accessibility is enabled or not. + /// + /// + /// Getter returns true if Accessibility is enabled, false otherwise. + /// + /// This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public static bool Enabled + { + get + { + return (bool)Interop.Accessibility.IsEnabled(); + } + } + #endregion Property diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewPublicMethods.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewPublicMethods.cs index 2552788..ed23922 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewPublicMethods.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewPublicMethods.cs @@ -307,7 +307,7 @@ namespace Tizen.NUI.BaseComponents /// 3 public void Show() { - if ((AccessibilityCalculateStates() & AccessibilityStates.Modal) != 0) + if (Accessibility.Accessibility.Enabled && ((AccessibilityCalculateStates() & AccessibilityStates.Modal) != 0)) { RegisterPopup(); } @@ -328,7 +328,7 @@ namespace Tizen.NUI.BaseComponents { SetVisible(false); - if ((AccessibilityCalculateStates() & AccessibilityStates.Modal) != 0) + if (Accessibility.Accessibility.Enabled && ((AccessibilityCalculateStates() & AccessibilityStates.Modal) != 0)) { RemovePopup(); } -- 2.7.4