[NUI][AT_SPI] Added Accessibility support to Menu control
authorMaria Bialota <m.bialota@samsung.com>
Fri, 19 Nov 2021 17:02:55 +0000 (18:02 +0100)
committerSeoyeon2Kim <34738918+Seoyeon2Kim@users.noreply.github.com>
Wed, 12 Jan 2022 08:40:18 +0000 (17:40 +0900)
src/Tizen.NUI.Components/Controls/Menu.cs
src/Tizen.NUI.Components/Controls/MenuItem.cs

index 4f33435..dcd4e97 100755 (executable)
@@ -394,6 +394,8 @@ namespace Tizen.NUI.Components
             layer.RaiseToTop();
 
             CalculateSizeAndPosition();
+            RegisterDefaultLabel();
+            NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, true);
         }
 
         /// <summary>
@@ -404,6 +406,8 @@ namespace Tizen.NUI.Components
         public void Dismiss()
         {
             Hide();
+            UnregisterDefaultLabel();
+            NotifyAccessibilityStatesChange(AccessibilityStates.Visible | AccessibilityStates.Showing, true);
             Dispose();
         }
 
@@ -640,5 +644,27 @@ namespace Tizen.NUI.Components
                 Scrim.Position2D = new Position2D(-Position2D.X, -Position2D.Y);
             }
         }
+
+        /// <summary>
+        /// Initialize AT-SPI object.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override void OnInitialize()
+        {
+            base.OnInitialize();
+            SetAccessibilityConstructor(Role.PopupMenu);
+            AppendAccessibilityAttribute("sub-role", "Alert");
+        }
+
+        /// <summary>
+        /// Informs AT-SPI bridge about the set of AT-SPI states associated with this object.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        protected override AccessibilityStates AccessibilityCalculateStates(ulong states)
+        {
+            var accessibilityStates = base.AccessibilityCalculateStates(states);
+            FlagSetter(ref accessibilityStates, AccessibilityStates.Modal, true);
+            return accessibilityStates;
+        }
     }
 }
index 004ba5c..fe9688d 100755 (executable)
@@ -236,5 +236,15 @@ namespace Tizen.NUI.Components
         {
             Layout = new AbsoluteLayout();
         }
+
+        /// <summary>
+        /// Initialize AT-SPI object.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public override void OnInitialize()
+        {
+            base.OnInitialize();
+            SetAccessibilityConstructor(Role.MenuItem);
+        }
     }
 }