[NUI][AT-SPI] Add AccessibilityDynamicAttributes (#5287)
authorArtur Świgoń <aswigon@yandex.com>
Tue, 23 May 2023 09:53:06 +0000 (11:53 +0200)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 31 May 2023 05:47:13 +0000 (14:47 +0900)
Co-authored-by: Artur Świgoń <a.swigon@samsung.com>
src/Tizen.NUI/src/public/BaseComponents/ViewAccessibility.cs
src/Tizen.NUI/src/public/BaseComponents/ViewAccessibilityWrappers.cs

index e909dc6..e0ed7ea 100755 (executable)
@@ -61,6 +61,12 @@ namespace Tizen.NUI.BaseComponents
         [EditorBrowsable(EditorBrowsableState.Never)]
         public Dictionary<string, string> AccessibilityAttributes { get; } = new Dictionary<string, string>();
 
+        /// <summary>
+        /// Dictionary of dynamically-evaluated accessibility attributes (key-value pairs of strings).
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public Dictionary<string, Func<string>> AccessibilityDynamicAttributes { get; } = new Dictionary<string, Func<string>>();
+
         ///////////////////////////////////////////////////////////////////
         // ************************** Highlight ************************ //
         ///////////////////////////////////////////////////////////////////
index 5874cd1..7aa4a96 100644 (file)
@@ -126,6 +126,11 @@ namespace Tizen.NUI.BaseComponents
             {
                 callback(attribute.Key, attribute.Value, userData);
             }
+
+            foreach (var attribute in view.AccessibilityDynamicAttributes)
+            {
+                callback(attribute.Key, attribute.Value.Invoke(), userData);
+            }
         }
 
         private static IntPtr AccessibilityGetDescriptionWrapper(IntPtr self)