[M108 Migration] Support a11y tree generation for web browser on TV. 30/288430/6
authorBakka Uday Kiran <b.kiran@samsung.com>
Thu, 16 Feb 2023 09:12:24 +0000 (14:42 +0530)
committerBot Blink <blinkbot@samsung.com>
Mon, 20 Feb 2023 03:16:10 +0000 (03:16 +0000)
Currently a11y frame dump using the command [1] doesn't return the a11y
tree of the loaded web page. The reason we don't attach the root evas
object with atk plug of platform. This change enables the same.

[1] /usr/bin/at_spi2_tool -d org.tizen.browser

Reference: https://review.tizen.org/gerrit/c/280915

Change-Id: Ib08e8479dfd056ee60e30c47be278e25f56139d2
Signed-off-by: Bakka Uday Kiran <b.kiran@samsung.com>
tizen_src/ewk/efl_integration/eweb_accessibility.cc
tizen_src/ewk/efl_integration/eweb_accessibility_util.cc

index f2653f2..0882ef4 100644 (file)
@@ -32,7 +32,7 @@ AtkObject* EWebAccessibility::GetRootObject() {
 }
 
 void EWebAccessibility::OnFocusOut() {
-  if (!IsMobileProfile())
+  if (!(IsMobileProfile() || IsTvProfile()))
     return;
 
   if (!accessibility_object_)
@@ -42,7 +42,7 @@ void EWebAccessibility::OnFocusOut() {
 }
 
 void EWebAccessibility::AddPlug() {
-  if (!IsMobileProfile())
+  if (!(IsMobileProfile() || IsTvProfile()))
     return;
 
   if (!accessibility_object_)
@@ -65,7 +65,7 @@ void EWebAccessibility::AddPlug() {
 }
 
 void EWebAccessibility::RemovePlug() {
-  if (!IsMobileProfile())
+  if (!(IsMobileProfile() || IsTvProfile()))
     return;
 
   auto plug_id =
@@ -78,7 +78,7 @@ void EWebAccessibility::RemovePlug() {
 }
 
 void EWebAccessibility::NotifyAccessibilityStatus(bool is_enabled) {
-  if (IsMobileProfile())
+  if (IsMobileProfile() || IsTvProfile())
     (is_enabled) ? AddPlug() : RemovePlug();
 
   if (observer_) {
index 2ac024f..25cc6b7 100644 (file)
@@ -78,19 +78,18 @@ static void eweb_accessibility_root_class_init(
     EWebAccessibilityRootClass* klass) {}
 
 static AtkObject* eweb_util_get_root() {
-  if (IsMobileProfile()) {
-    for (const auto& wc : content::WebContentsImpl::GetAllWebContents()) {
-      if (EWebView* ewebview = WebViewFromWebContents(wc))
-        return ewebview->eweb_accessibility().GetRootObject();
-    }
+  if (!IsMobileProfile())
+    return ATK_OBJECT(g_object_new(EWEB_ACCESSIBILITY_ROOT_TYPE, nullptr));
+
+  for (const auto& wc : content::WebContentsImpl::GetAllWebContents()) {
+    if (EWebView* ewebview = WebViewFromWebContents(wc))
+      return ewebview->eweb_accessibility().GetRootObject();
+  }
 #if defined(ENABLE_WRT_JS)
-    if (eweb_accessibility_)
-      return eweb_accessibility_->GetRootObject();
+  if (eweb_accessibility_)
+    return eweb_accessibility_->GetRootObject();
 #endif
-    return nullptr;
-  }
-
-  return ATK_OBJECT(g_object_new(EWEB_ACCESSIBILITY_ROOT_TYPE, nullptr));
+  return nullptr;
 }
 
 static G_CONST_RETURN gchar* eweb_util_get_toolkit_name(void) {