[AT-SPI] Implemented reading popup description 09/244909/14
authorMaria Bialota <m.bialota@samsung.com>
Fri, 25 Sep 2020 20:11:58 +0000 (22:11 +0200)
committerArtur Świgoń <a.swigon@samsung.com>
Fri, 23 Oct 2020 13:07:01 +0000 (15:07 +0200)
Change-Id: I7d50c772b18d5f6679e23e3e287dcdff03e61e95

dali-toolkit/internal/controls/popup/popup-impl.cpp
dali-toolkit/internal/controls/popup/popup-impl.h

index 8e18342..092569c 100644 (file)
@@ -43,6 +43,7 @@
 #include <dali-toolkit/public-api/visuals/visual-properties.h>
 #include <dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h>
 #include <dali-toolkit/internal/controls/control/control-data-impl.h>
+#include <dali-toolkit/dali-toolkit.h>
 
 using namespace Dali;
 
@@ -339,6 +340,8 @@ void Popup::OnInitialize()
 
   SetupTouch();
 
+  DevelControl::AppendAccessibilityAttribute(self, "sub-role", "Alert");
+
   DevelControl::SetAccessibilityConstructor(self, [](Dali::Actor actor)
   {
     return std::unique_ptr<Dali::Accessibility::Accessible>(new AccessibleImpl(actor, Dali::Accessibility::Role::DIALOG, true));
@@ -1998,6 +2001,28 @@ void Popup::SetupTouch()
   }
 }
 
+std::string Popup::AccessibleImpl::GetNameRaw()
+{
+  auto popup = Toolkit::Popup::DownCast( self );
+  std::string title;
+  Actor popupTitle = popup.GetTitle();
+  if (popupTitle)
+  {
+    std::string titleText = popupTitle.GetProperty<std::string>(Toolkit::TextLabel::Property::TEXT);
+    title = titleText;
+  }
+  else
+  {
+    Actor popupContent = popup.GetContent();
+    if (popupContent)
+    {
+      std::string contentText = popupContent.GetProperty<std::string>(Toolkit::TextLabel::Property::TEXT);
+      title = contentText;
+    }
+  }
+  return title;
+}
+
 Dali::Accessibility::States Popup::AccessibleImpl::CalculateStates()
 {
   auto states = Control::Impl::AccessibleImpl::CalculateStates();
index 359570b..e9dffef 100644 (file)
@@ -249,6 +249,7 @@ protected:
   {
     using Control::Impl::AccessibleImpl::AccessibleImpl;
 
+    std::string GetNameRaw() override;
     Dali::Accessibility::States CalculateStates() override;
   };