(A11y) Let we make some way to do not create new Accessible 06/301106/9
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 8 Nov 2023 13:29:49 +0000 (22:29 +0900)
committerEunki Hong <eunkiki.hong@samsung.com>
Tue, 14 Nov 2023 17:10:04 +0000 (02:10 +0900)
Add some API that we will not create new Accessible() object anymore.

It will be useful when we ignore some Disposed view's accessible action.

Change-Id: I6186f95eacf3c7d3cdb9c4ff9543edc019096552
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
16 files changed:
automated-tests/src/dali-toolkit-internal/utc-Dali-Accessibility-Controls.cpp
dali-toolkit/devel-api/controls/control-devel.cpp
dali-toolkit/devel-api/controls/control-devel.h
dali-toolkit/internal/controls/buttons/check-box-button-impl.cpp
dali-toolkit/internal/controls/buttons/push-button-impl.cpp
dali-toolkit/internal/controls/buttons/radio-button-impl.cpp
dali-toolkit/internal/controls/buttons/toggle-button-impl.cpp
dali-toolkit/internal/controls/control/control-data-impl.cpp
dali-toolkit/internal/controls/control/control-data-impl.h
dali-toolkit/internal/controls/progress-bar/progress-bar-impl.cpp
dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.cpp
dali-toolkit/internal/controls/slider/slider-impl.cpp
dali-toolkit/internal/controls/text-controls/text-editor-impl.cpp
dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
dali-toolkit/public-api/controls/control-impl.cpp
dali-toolkit/public-api/controls/control-impl.h

index 29aa513..8b54340 100644 (file)
@@ -1,7 +1,8 @@
-#include <dali-toolkit-test-suite-utils.h>
 #include <automated-tests/src/dali-toolkit-internal/dali-toolkit-test-utils/accessibility-test-utils.h>
+#include <dali-toolkit-test-suite-utils.h>
 #include <dali-toolkit/dali-toolkit.h>
 
+#include <dali-toolkit/devel-api/controls/control-accessible.h>
 #include <dali-toolkit/devel-api/controls/control-devel.h>
 #include <dali-toolkit/devel-api/controls/table-view/table-view.h>
 #include <dali/devel-api/adaptor-framework/accessibility-bridge.h>
@@ -29,6 +30,107 @@ void utc_dali_accessibility_controls_cleanup(void)
   DBusWrapper::Install({});
 }
 
+int UtcDaliControlAccessibileGet01(void)
+{
+  ToolkitTestApplication application;
+
+  auto control    = Control::New();
+  auto accessible = dynamic_cast<DevelControl::ControlAccessible*>(Dali::Accessibility::Accessible::Get(control));
+  DALI_TEST_CHECK(accessible);
+
+  END_TEST;
+}
+
+int UtcDaliControlAccessibileGet02(void)
+{
+  ToolkitTestApplication application;
+
+  auto control = Control::New();
+
+  // Default is true.
+  DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION);
+
+  DevelControl::EnableCreateAccessible(control, false);
+  DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), false, TEST_LOCATION);
+  auto accessible = dynamic_cast<DevelControl::ControlAccessible*>(Dali::Accessibility::Accessible::Get(control));
+
+  // Check that we don't create accessible yet.
+  DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION);
+  DALI_TEST_CHECK(!accessible);
+
+  DevelControl::EnableCreateAccessible(control, true);
+  DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), true, TEST_LOCATION);
+  accessible = dynamic_cast<DevelControl::ControlAccessible*>(Dali::Accessibility::Accessible::Get(control));
+  DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), true, TEST_LOCATION);
+  DALI_TEST_CHECK(accessible);
+
+  DevelControl::EnableCreateAccessible(control, false);
+  DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), false, TEST_LOCATION);
+  accessible = dynamic_cast<DevelControl::ControlAccessible*>(Dali::Accessibility::Accessible::Get(control));
+
+  // Check that we got created accessible well.
+  DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), true, TEST_LOCATION);
+  DALI_TEST_CHECK(accessible);
+
+  END_TEST;
+}
+
+int UtcDaliControlAccessibileBlockAccessibleCreation(void)
+{
+  ToolkitTestApplication application;
+
+  auto control = Control::New();
+
+  // Default is true.
+  DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION);
+
+  DevelControl::EnableCreateAccessible(control, false);
+  DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), false, TEST_LOCATION);
+
+  try
+  {
+    // Should not throw exception even if accessible is not created.
+    DALI_TEST_EQUALS(DevelControl::ClearAccessibilityHighlight(control), false, TEST_LOCATION);
+    DALI_TEST_EQUALS(DevelControl::GrabAccessibilityHighlight(control), false, TEST_LOCATION);
+
+    DevelControl::GetAccessibilityStates(control);
+    DevelControl::NotifyAccessibilityStateChange(control, Dali::Accessibility::States{}, false);
+    DevelControl::NotifyAccessibilityStateChange(control, Dali::Accessibility::States{}, true);
+    DALI_TEST_CHECK(true);
+  }
+  catch(...)
+  {
+    DALI_TEST_CHECK(false);
+  }
+
+  // Check that we don't create accessible yet.
+  DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION);
+
+  // Dummy function call - for line coverage
+  DevelControl::EnableCreateAccessible(control, true);
+  DALI_TEST_EQUALS(DevelControl::IsCreateAccessibleEnabled(control), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(DevelControl::IsAccessibleCreated(control), false, TEST_LOCATION);
+
+  try
+  {
+    // Should not throw exception even if accessible is not created.
+    DevelControl::ClearAccessibilityHighlight(control);
+    DevelControl::GrabAccessibilityHighlight(control);
+    DevelControl::GetAccessibilityStates(control);
+    DevelControl::NotifyAccessibilityStateChange(control, Dali::Accessibility::States{}, false);
+    DevelControl::NotifyAccessibilityStateChange(control, Dali::Accessibility::States{}, true);
+    DALI_TEST_CHECK(true);
+  }
+  catch(...)
+  {
+    DALI_TEST_CHECK(false);
+  }
+
+  END_TEST;
+}
+
 int UtcDaliControlPropertyAccessibilityTranslationDomain(void)
 {
   ToolkitTestApplication application;
@@ -38,11 +140,11 @@ int UtcDaliControlPropertyAccessibilityTranslationDomain(void)
   auto accessibility_translation_domain = DevelControl::Property::ACCESSIBILITY_TRANSLATION_DOMAIN;
   DALI_TEST_EQUALS("", control.GetProperty<std::string>(accessibility_translation_domain), TEST_LOCATION);
 
-  control.SetProperty( accessibility_translation_domain, "translation_domain_test_1" );
-  DALI_TEST_EQUALS( "translation_domain_test_1" , control.GetProperty( accessibility_translation_domain ).Get<  std::string  >(), TEST_LOCATION );
+  control.SetProperty(accessibility_translation_domain, "translation_domain_test_1");
+  DALI_TEST_EQUALS("translation_domain_test_1", control.GetProperty(accessibility_translation_domain).Get<std::string>(), TEST_LOCATION);
 
-  control.SetProperty( accessibility_translation_domain, "translation_domain_test_2" );
-  DALI_TEST_EQUALS( "translation_domain_test_2" , control.GetProperty( accessibility_translation_domain ).Get<  std::string  >(), TEST_LOCATION );
+  control.SetProperty(accessibility_translation_domain, "translation_domain_test_2");
+  DALI_TEST_EQUALS("translation_domain_test_2", control.GetProperty(accessibility_translation_domain).Get<std::string>(), TEST_LOCATION);
 
   END_TEST;
 }
@@ -52,13 +154,13 @@ int UtcDaliControlPropertyAccessibilityTranslationDomain(void)
 int UtcDaliControlAccessibilityHighlight(void)
 {
   ToolkitTestApplication application;
-  auto controla = Control::New();
-  auto controlb = Control::New();
+  auto                   controla = Control::New();
+  auto                   controlb = Control::New();
 
-  DALI_TEST_EQUALS( false, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION );
-  DALI_TEST_EQUALS( false, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION );
-  DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION );
-  DALI_TEST_EQUALS( false, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION );
+  DALI_TEST_EQUALS(false, DevelControl::GrabAccessibilityHighlight(controla), TEST_LOCATION);
+  DALI_TEST_EQUALS(false, DevelControl::GrabAccessibilityHighlight(controlb), TEST_LOCATION);
+  DALI_TEST_EQUALS(false, DevelControl::ClearAccessibilityHighlight(controla), TEST_LOCATION);
+  DALI_TEST_EQUALS(false, DevelControl::ClearAccessibilityHighlight(controlb), TEST_LOCATION);
 
   END_TEST;
 }
@@ -69,11 +171,11 @@ int UtcDaliAccessibilityToolBarConstructor(void)
   ToolkitTestApplication application;
 
   auto toolbar = ToolBar::New();
-  DALI_TEST_CHECK( toolbar );
+  DALI_TEST_CHECK(toolbar);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( toolbar );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(toolbar);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION);
 
   END_TEST;
 }
@@ -83,11 +185,11 @@ int UtcDaliAccessibilityPushButtonConstructor(void)
   ToolkitTestApplication application;
 
   auto pushbutton = PushButton::New();
-  DALI_TEST_CHECK( pushbutton );
+  DALI_TEST_CHECK(pushbutton);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( pushbutton );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PUSH_BUTTON, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(pushbutton);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::PUSH_BUTTON, TEST_LOCATION);
 
   END_TEST;
 }
@@ -97,30 +199,40 @@ int UtcDaliAccessibilityPushButtonStates(void)
   ToolkitTestApplication application;
 
   auto pushbutton = PushButton::New();
-  DALI_TEST_CHECK( pushbutton );
+  DALI_TEST_CHECK(pushbutton);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( pushbutton );
-  DALI_TEST_CHECK( accessible );
+  auto accessible = Dali::Accessibility::Accessible::Get(pushbutton);
+  DALI_TEST_CHECK(accessible);
 
-  Dali::Accessibility::TestEnableSC( true );
+  Dali::Accessibility::TestEnableSC(true);
 
   /* add to scene and remove from scene to touch AccessibilityDeregister */
-  application.GetScene().Add( pushbutton );
+  application.GetScene().Add(pushbutton);
 
   auto states = accessible->GetStates();
-  DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), false, TEST_LOCATION );
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::PRESSED]), false, TEST_LOCATION);
 
   // auto button = dynamic_cast<Dali::Toolkit::Button* >( accessible ) ;
-  pushbutton.SetProperty( Toolkit::Button::Property::TOGGLABLE, true );
-  pushbutton.SetProperty( Toolkit::Button::Property::SELECTED, true );
+  pushbutton.SetProperty(Toolkit::Button::Property::TOGGLABLE, true);
+  pushbutton.SetProperty(Toolkit::Button::Property::SELECTED, true);
 
   states = accessible->GetStates();
-  DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::PRESSED ] ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::PRESSED]), true, TEST_LOCATION);
+
+  // Grab highlite now.
+  auto i = dynamic_cast<Dali::Accessibility::Component*>(accessible);
+  DALI_TEST_CHECK(i);
+  i->GrabHighlight();
+
+  pushbutton.SetProperty(Toolkit::Button::Property::SELECTED, false);
+
+  states = accessible->GetStates();
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::PRESSED]), false, TEST_LOCATION);
 
   /* add to scene and remove from scene to touch AccessibilityDeregister */
-  application.GetScene().Remove( pushbutton );
+  application.GetScene().Remove(pushbutton);
 
-  Dali::Accessibility::TestEnableSC( false );
+  Dali::Accessibility::TestEnableSC(false);
 
   END_TEST;
 }
@@ -131,11 +243,56 @@ int UtcDaliAccessibilityToggleButtonConstructor(void)
   ToolkitTestApplication application;
 
   auto togglebutton = ToggleButton::New();
-  DALI_TEST_CHECK( togglebutton );
+  DALI_TEST_CHECK(togglebutton);
+
+  auto accessible = Dali::Accessibility::Accessible::Get(togglebutton);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::TOGGLE_BUTTON, TEST_LOCATION);
+
+  END_TEST;
+}
+
+int UtcDaliAccessibilityToggleButtonStates(void)
+{
+  ToolkitTestApplication application;
+
+  auto togglebutton = ToggleButton::New();
+  DALI_TEST_CHECK(togglebutton);
+
+  auto accessible = Dali::Accessibility::Accessible::Get(togglebutton);
+  DALI_TEST_CHECK(accessible);
+
+  Dali::Accessibility::TestEnableSC(true);
+
+  /* add to scene and remove from scene to touch AccessibilityDeregister */
+  application.GetScene().Add(togglebutton);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( togglebutton );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOGGLE_BUTTON, TEST_LOCATION );
+  auto states = accessible->GetStates();
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), false, TEST_LOCATION);
+
+  // auto button = dynamic_cast<Dali::Toolkit::Button* >( accessible ) ;
+  togglebutton.SetProperty(Toolkit::Button::Property::TOGGLABLE, true);
+  togglebutton.SetProperty(Toolkit::Button::Property::SELECTED, true);
+
+  states = accessible->GetStates();
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), true, TEST_LOCATION);
+
+  // Grab highlite now.
+  auto i = dynamic_cast<Dali::Accessibility::Component*>(accessible);
+  DALI_TEST_CHECK(i);
+  i->GrabHighlight();
+
+  togglebutton.SetProperty(Toolkit::Button::Property::SELECTED, false);
+
+  states = accessible->GetStates();
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), false, TEST_LOCATION);
+
+  /* add to scene and remove from scene to touch AccessibilityDeregister */
+  application.GetScene().Remove(togglebutton);
+
+  Dali::Accessibility::TestEnableSC(false);
+
+  END_TEST;
 
   END_TEST;
 }
@@ -145,12 +302,12 @@ int UtcDaliAccessibilityTextSelectionPopupConstructor(void)
 {
   ToolkitTestApplication application;
 
-  auto textselectionpopup = TextSelectionPopup::New( NULL );
-  DALI_TEST_CHECK( textselectionpopup );
+  auto textselectionpopup = TextSelectionPopup::New(NULL);
+  DALI_TEST_CHECK(textselectionpopup);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( textselectionpopup );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::DIALOG, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(textselectionpopup);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::DIALOG, TEST_LOCATION);
 
   END_TEST;
 }
@@ -160,11 +317,11 @@ int UtcDaliAccessibilityAlignmentConstructor(void)
   ToolkitTestApplication application;
 
   auto alignment = Alignment::New();
-  DALI_TEST_CHECK( alignment );
+  DALI_TEST_CHECK(alignment);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( alignment );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(alignment);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION);
 
   END_TEST;
 }
@@ -174,22 +331,36 @@ int UtcDaliAccessibilityRadioButtonStates(void)
   ToolkitTestApplication application;
 
   auto radiobutton = RadioButton::New();
-  DALI_TEST_CHECK( radiobutton );
+  DALI_TEST_CHECK(radiobutton);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( radiobutton );
-  DALI_TEST_CHECK( accessible );
+  auto accessible = Dali::Accessibility::Accessible::Get(radiobutton);
+  DALI_TEST_CHECK(accessible);
 
-  Dali::Accessibility::TestEnableSC( true );
+  Dali::Accessibility::TestEnableSC(true);
+
+  application.GetScene().Add(radiobutton);
 
   auto states = accessible->GetStates();
-  DALI_TEST_CHECK( states );
-  DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION );
-  radiobutton.SetProperty( Toolkit::RadioButton::Property::SELECTED, true );
+  DALI_TEST_CHECK(states);
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), false, TEST_LOCATION);
+  radiobutton.SetProperty(Toolkit::RadioButton::Property::SELECTED, true);
   states = accessible->GetStates();
-  DALI_TEST_CHECK( states );
-  DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION );
+  DALI_TEST_CHECK(states);
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), true, TEST_LOCATION);
 
-  Dali::Accessibility::TestEnableSC( false );
+  // Grab highlite now.
+  auto i = dynamic_cast<Dali::Accessibility::Component*>(accessible);
+  DALI_TEST_CHECK(i);
+  i->GrabHighlight();
+
+  radiobutton.SetProperty(Toolkit::RadioButton::Property::SELECTED, false);
+  states = accessible->GetStates();
+  DALI_TEST_CHECK(states);
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), false, TEST_LOCATION);
+
+  application.GetScene().Remove(radiobutton);
+
+  Dali::Accessibility::TestEnableSC(false);
 
   END_TEST;
 }
@@ -199,11 +370,11 @@ int UtcDaliAccessibilityFlexContainerConstructor(void)
   ToolkitTestApplication application;
 
   auto flexcontainer = FlexContainer::New();
-  DALI_TEST_CHECK( flexcontainer );
+  DALI_TEST_CHECK(flexcontainer);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( flexcontainer );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(flexcontainer);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION);
 
   END_TEST;
 }
@@ -213,20 +384,33 @@ int UtcDaliAccessibilityCheckBoxButton(void)
   ToolkitTestApplication application;
 
   auto checkboxbutton = CheckBoxButton::New();
-  DALI_TEST_CHECK( checkboxbutton );
+  DALI_TEST_CHECK(checkboxbutton);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( checkboxbutton );
-  DALI_TEST_CHECK( accessible );
+  auto accessible = Dali::Accessibility::Accessible::Get(checkboxbutton);
+  DALI_TEST_CHECK(accessible);
 
-  Dali::Accessibility::TestEnableSC( true );
+  Dali::Accessibility::TestEnableSC(true);
+
+  application.GetScene().Add(checkboxbutton);
 
   auto states = accessible->GetStates();
-  DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), false, TEST_LOCATION );
-  checkboxbutton.SetProperty( Toolkit::CheckBoxButton::Property::SELECTED, true );
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), false, TEST_LOCATION);
+  checkboxbutton.SetProperty(Toolkit::CheckBoxButton::Property::SELECTED, true);
+  states = accessible->GetStates();
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), true, TEST_LOCATION);
+
+  // Grab highlite now.
+  auto i = dynamic_cast<Dali::Accessibility::Component*>(accessible);
+  DALI_TEST_CHECK(i);
+  i->GrabHighlight();
+
+  checkboxbutton.SetProperty(Toolkit::CheckBoxButton::Property::SELECTED, false);
   states = accessible->GetStates();
-  DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::CHECKED ] ), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::CHECKED]), false, TEST_LOCATION);
+
+  application.GetScene().Remove(checkboxbutton);
 
-  Dali::Accessibility::TestEnableSC( false );
+  Dali::Accessibility::TestEnableSC(false);
 
   END_TEST;
 }
@@ -237,11 +421,11 @@ int UtcDaliAccessibilityTextSelectionConstructor(void)
   ToolkitTestApplication application;
 
   auto textselectiontoolbar = TextSelectionToolbar::New();
-  DALI_TEST_CHECK( textselectiontoolbar );
+  DALI_TEST_CHECK(textselectiontoolbar);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( textselectiontoolbar );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(textselectiontoolbar);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::TOOL_BAR, TEST_LOCATION);
 
   END_TEST;
 }
@@ -256,43 +440,43 @@ int UtcDaliAccessibilityManager(void)
   Dali::Accessibility::TestEnableSC(true);
 
   auto accessmanager = new Dali::Toolkit::Internal::AccessibilityManager;
-  auto actor = Control::New();
+  auto actor         = Control::New();
 
-  const std::string name = "Name";
+  const std::string name  = "Name";
   const std::string descr = "Description";
 
   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL, name);
-  DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL), name, TEST_LOCATION );
-  DALI_TEST_EQUALS( actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_NAME), name, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_LABEL), name, TEST_LOCATION);
+  DALI_TEST_EQUALS(actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_NAME), name, TEST_LOCATION);
 
   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT, "Whatever");
-  DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT), "", TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_TRAIT), "", TEST_LOCATION);
 
   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE, "Whatever");
-  DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE), "", TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_VALUE), "", TEST_LOCATION);
 
   accessmanager->SetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT, descr);
-  DALI_TEST_EQUALS( accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT), descr, TEST_LOCATION );
-  DALI_TEST_EQUALS( actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_DESCRIPTION), descr, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetAccessibilityAttribute(actor, attr::ACCESSIBILITY_HINT), descr, TEST_LOCATION);
+  DALI_TEST_EQUALS(actor.GetProperty<std::string>(DevelControl::Property::ACCESSIBILITY_DESCRIPTION), descr, TEST_LOCATION);
 
-  DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( accessmanager->GenerateNewFocusOrder(), 1, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetFocusOrder(actor), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(accessmanager->GenerateNewFocusOrder(), 1, TEST_LOCATION);
 
   accessmanager->SetFocusOrder({}, 0);
   accessmanager->SetFocusOrder(Control::New(), 1);
   accessmanager->SetFocusOrder(actor, 2);
   accessmanager->SetFocusOrder(Control::New(), 3);
 
-  DALI_TEST_EQUALS( accessmanager->GetFocusOrder(actor), 2, TEST_LOCATION );
-  DALI_TEST_EQUALS( accessmanager->GetActorByFocusOrder(2), actor, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetFocusOrder(actor), 2, TEST_LOCATION);
+  DALI_TEST_EQUALS(accessmanager->GetActorByFocusOrder(2), actor, TEST_LOCATION);
 
   accessmanager->SetCurrentFocusActor(actor);
-  DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
-  DALI_TEST_EQUALS( accessmanager->GetCurrentFocusOrder(), 2, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION);
+  DALI_TEST_EQUALS(accessmanager->GetCurrentFocusOrder(), 2, TEST_LOCATION);
 
   accessmanager->MoveFocusForward();
   accessmanager->MoveFocusBackward();
-  DALI_TEST_EQUALS( accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetCurrentFocusActor(), actor, TEST_LOCATION);
   accessmanager->SetCurrentFocusActor({});
 
   accessmanager->Reset();
@@ -300,15 +484,15 @@ int UtcDaliAccessibilityManager(void)
   accessmanager->MoveFocusForward();
 
   accessmanager->GetCurrentFocusGroup();
-  DALI_TEST_EQUALS( accessmanager->IsFocusGroup(actor), false, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->IsFocusGroup(actor), false, TEST_LOCATION);
   accessmanager->GetFocusGroup(actor);
 
-  DALI_TEST_EQUALS( accessmanager->GetGroupMode(), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( accessmanager->GetWrapMode(), true, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessmanager->GetGroupMode(), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(accessmanager->GetWrapMode(), true, TEST_LOCATION);
 
   auto vector = accessmanager->GetReadPosition();
-  DALI_TEST_EQUALS( vector.x, 0.0f, TEST_LOCATION );
-  DALI_TEST_EQUALS( vector.y, 0.0f, TEST_LOCATION );
+  DALI_TEST_EQUALS(vector.x, 0.0f, TEST_LOCATION);
+  DALI_TEST_EQUALS(vector.y, 0.0f, TEST_LOCATION);
 
   accessmanager->SetFocusIndicatorActor(Dali::Actor{});
   accessmanager->GetFocusIndicatorActor();
@@ -323,11 +507,11 @@ int UtcDaliAccessibilityModel3dViewConstructor(void)
   ToolkitTestApplication application;
 
   auto model3dview = Model3dView::New();
-  DALI_TEST_CHECK( model3dview );
+  DALI_TEST_CHECK(model3dview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( model3dview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(model3dview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION);
 
   END_TEST;
 }
@@ -337,13 +521,13 @@ int UtcDaliAccessibilityEffectsViewConstructor(void)
 {
   ToolkitTestApplication application;
 
-  auto etype = Dali::Toolkit::EffectsView::EffectType::DROP_SHADOW;
-  auto effectsview = EffectsView::New( etype );
-  DALI_TEST_CHECK( effectsview );
+  auto etype       = Dali::Toolkit::EffectsView::EffectType::DROP_SHADOW;
+  auto effectsview = EffectsView::New(etype);
+  DALI_TEST_CHECK(effectsview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( effectsview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(effectsview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION);
 
   END_TEST;
 }
@@ -353,12 +537,12 @@ int UtcDaliAccessibilitySuperBlurViewConstructor(void)
 {
   ToolkitTestApplication application;
 
-  auto superblurview = SuperBlurView::New( 1 );
-  DALI_TEST_CHECK( superblurview );
+  auto superblurview = SuperBlurView::New(1);
+  DALI_TEST_CHECK(superblurview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( superblurview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(superblurview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION);
 
   END_TEST;
 }
@@ -368,11 +552,11 @@ int UtcDaliAccessibilityImageViewConstructor(void)
   ToolkitTestApplication application;
 
   auto imageview = ImageView::New();
-  DALI_TEST_CHECK( imageview );
+  DALI_TEST_CHECK(imageview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( imageview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(imageview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::IMAGE, TEST_LOCATION);
 
   END_TEST;
 }
@@ -381,9 +565,8 @@ int UtcDaliAccessibilityImageViewConstructor(void)
 class TestPageFactory : public PageFactory
 {
 public:
-
-  TestPageFactory( bool returnValidTexture = true )
-  : mValidTexture( returnValidTexture )
+  TestPageFactory(bool returnValidTexture = true)
+  : mValidTexture(returnValidTexture)
   {
     mTotalPageNumber = 100;
   }
@@ -402,18 +585,18 @@ public:
    * @param[in] pageId The ID of the page to create.
    * @return An image, or an empty handle if the ID is out of range.
    */
-  virtual Texture NewPage( unsigned int pageId )
+  virtual Texture NewPage(unsigned int pageId)
   {
-    if( mValidTexture )
+    if(mValidTexture)
     {
-      return Texture::New( Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100 );
+      return Texture::New(Dali::TextureType::TEXTURE_2D, Pixel::RGB888, 100, 100);
     }
     return Texture(); // empty handle
   }
 
 private:
-  unsigned int            mTotalPageNumber;
-  bool                    mValidTexture;
+  unsigned int mTotalPageNumber;
+  bool         mValidTexture;
 };
 
 #include <dali-toolkit/internal/controls/page-turn-view/page-turn-landscape-view-impl.h>
@@ -421,14 +604,14 @@ int UtcDaliAccessibilityPageTurnViewConstructor(void)
 {
   ToolkitTestApplication application;
 
-  auto testpagefactory = TestPageFactory();
-  auto vector2 = Vector2( 1.0, 1.0 );
-  auto pageturnlandscapeview = PageTurnLandscapeView::New( testpagefactory, vector2 );
-  DALI_TEST_CHECK( pageturnlandscapeview );
+  auto testpagefactory       = TestPageFactory();
+  auto vector2               = Vector2(1.0, 1.0);
+  auto pageturnlandscapeview = PageTurnLandscapeView::New(testpagefactory, vector2);
+  DALI_TEST_CHECK(pageturnlandscapeview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( pageturnlandscapeview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::PAGE_TAB_LIST, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(pageturnlandscapeview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::PAGE_TAB_LIST, TEST_LOCATION);
 
   END_TEST;
 }
@@ -438,11 +621,11 @@ int UtcDaliAccessibilityGaussianBlurViewConstructor(void)
   ToolkitTestApplication application;
 
   auto gaussianblurview = GaussianBlurView::New();
-  DALI_TEST_CHECK( gaussianblurview );
+  DALI_TEST_CHECK(gaussianblurview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( gaussianblurview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(gaussianblurview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION);
 
   END_TEST;
 }
@@ -452,27 +635,27 @@ int UtcDaliAccessibilityShadowViewConstructor(void)
   ToolkitTestApplication application;
 
   auto shadowview = ShadowView::New();
-  DALI_TEST_CHECK( shadowview );
+  DALI_TEST_CHECK(shadowview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( shadowview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(shadowview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION);
 
   END_TEST;
 }
 
-#include <dali-toolkit/public-api/controls/control-impl.h>
 #include <dali-toolkit/internal/controls/scrollable/scroll-view/scroll-view-impl.h>
+#include <dali-toolkit/public-api/controls/control-impl.h>
 int UtcDaliAccessibilityScrollableConstructor(void)
 {
   ToolkitTestApplication application;
 
   auto scrollview = ScrollView::New();
-  DALI_TEST_CHECK( scrollview );
+  DALI_TEST_CHECK(scrollview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( scrollview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::SCROLL_PANE, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(scrollview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::SCROLL_PANE, TEST_LOCATION);
 
   END_TEST;
 }
@@ -483,11 +666,11 @@ int UtcDaliAccessibilityMagnifierConstructor(void)
   ToolkitTestApplication application;
 
   auto magnifier = Magnifier::New();
-  DALI_TEST_CHECK( magnifier );
+  DALI_TEST_CHECK(magnifier);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( magnifier );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(magnifier);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::FILLER, TEST_LOCATION);
 
   END_TEST;
 }
@@ -496,12 +679,12 @@ int UtcDaliAccessibilityTableViewConstructor(void)
 {
   ToolkitTestApplication application;
 
-  auto tableview = TableView::New( 10, 10 );
-  DALI_TEST_CHECK( tableview );
+  auto tableview = TableView::New(10, 10);
+  DALI_TEST_CHECK(tableview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( tableview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::TABLE, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(tableview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::TABLE, TEST_LOCATION);
 
   END_TEST;
 }
@@ -512,45 +695,45 @@ int UtcDaliAccessibilityBloomViewConstructor(void)
   ToolkitTestApplication application;
 
   auto bloomview = BloomView::New();
-  DALI_TEST_CHECK( bloomview );
+  DALI_TEST_CHECK(bloomview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( bloomview );
-  DALI_TEST_CHECK( accessible );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ANIMATION, TEST_LOCATION );
+  auto accessible = Dali::Accessibility::Accessible::Get(bloomview);
+  DALI_TEST_CHECK(accessible);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::ANIMATION, TEST_LOCATION);
 
   END_TEST;
 }
 
-#include <dali-toolkit/internal/controls/text-controls/text-field-impl.h>
 #include <dali-toolkit/internal/controls/text-controls/text-anchor-impl.h>
+#include <dali-toolkit/internal/controls/text-controls/text-field-impl.h>
 int UtcDaliAccessibilityTextAnchor(void)
 {
   ToolkitTestApplication application;
 
   auto textanchor = TextAnchor::New();
-  DALI_TEST_CHECK( textanchor );
+  DALI_TEST_CHECK(textanchor);
 
   auto textlabel = TextLabel::New();
-  DALI_TEST_CHECK( textlabel );
+  DALI_TEST_CHECK(textlabel);
 
-  Dali::Accessibility::TestEnableSC( true );
+  Dali::Accessibility::TestEnableSC(true);
 
   textlabel.Add(textanchor);
-  auto accessible = Dali::Accessibility::Accessible::Get( textanchor );
-  DALI_TEST_CHECK( accessible );
-  auto hyperlink = dynamic_cast< Dali::Accessibility::Hyperlink* >( accessible );
-  DALI_TEST_CHECK( hyperlink );
-  textanchor.SetProperty( Toolkit::TextAnchor::Property::URI, "https://www.tizen.org" );
-  DALI_TEST_EQUALS( hyperlink->IsValid(), true, TEST_LOCATION );
-  auto action = dynamic_cast<Dali::Accessibility::Action*>( accessible );
+  auto accessible = Dali::Accessibility::Accessible::Get(textanchor);
+  DALI_TEST_CHECK(accessible);
+  auto hyperlink = dynamic_cast<Dali::Accessibility::Hyperlink*>(accessible);
+  DALI_TEST_CHECK(hyperlink);
+  textanchor.SetProperty(Toolkit::TextAnchor::Property::URI, "https://www.tizen.org");
+  DALI_TEST_EQUALS(hyperlink->IsValid(), true, TEST_LOCATION);
+  auto action = dynamic_cast<Dali::Accessibility::Action*>(accessible);
   // activation of valid hyperlink
-  DALI_TEST_CHECK( action->DoAction( "accessibilityActivated" ) );
+  DALI_TEST_CHECK(action->DoAction("accessibilityActivated"));
   // making hyperlink invalid
-  textanchor.SetProperty( Toolkit::TextAnchor::Property::URI, "" );
-  DALI_TEST_EQUALS( hyperlink->IsValid(), false, TEST_LOCATION );
-  DALI_TEST_CHECK( !action->DoAction( "accessibilityActivated" ) );
+  textanchor.SetProperty(Toolkit::TextAnchor::Property::URI, "");
+  DALI_TEST_EQUALS(hyperlink->IsValid(), false, TEST_LOCATION);
+  DALI_TEST_CHECK(!action->DoAction("accessibilityActivated"));
 
-  Dali::Accessibility::TestEnableSC( false );
+  Dali::Accessibility::TestEnableSC(false);
 
   END_TEST;
 }
@@ -560,43 +743,43 @@ int UtcDaliAccessibilityTextField(void)
   ToolkitTestApplication application;
 
   auto textfield = TextField::New();
-  DALI_TEST_CHECK( textfield );
+  DALI_TEST_CHECK(textfield);
 
-  textfield.SetProperty(Actor::Property::NAME, "test" );
-  DALI_TEST_EQUALS( textfield.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
+  textfield.SetProperty(Actor::Property::NAME, "test");
+  DALI_TEST_EQUALS(textfield.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( textfield );
-  DALI_TEST_CHECK( accessible );
+  auto accessible = Dali::Accessibility::Accessible::Get(textfield);
+  DALI_TEST_CHECK(accessible);
 
-  DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessible->GetName(), "", TEST_LOCATION);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION);
   auto states = accessible->GetStates();
-  DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
-
-  Dali::Accessibility::TestEnableSC( true );
-
-  textfield.SetProperty( Toolkit::TextField::Property::TEXT, "test" );
-  auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
-  DALI_TEST_CHECK( text );
-  DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
-
-  auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
-  DALI_TEST_CHECK( editabletext );
-  DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
-
-  auto range = text->GetRangeOfSelection( 1 );
-  DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::EDITABLE]), true, TEST_LOCATION);
+
+  Dali::Accessibility::TestEnableSC(true);
+
+  textfield.SetProperty(Toolkit::TextField::Property::TEXT, "test");
+  auto text = dynamic_cast<Dali::Accessibility::Text*>(accessible);
+  DALI_TEST_CHECK(text);
+  DALI_TEST_EQUALS(text->GetText(0, 10), "", TEST_LOCATION);
+  DALI_TEST_EQUALS(text->SetCursorOffset(100), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->SetCursorOffset(2), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->GetCursorOffset(), 2, TEST_LOCATION);
+
+  auto editabletext = dynamic_cast<Dali::Accessibility::EditableText*>(accessible);
+  DALI_TEST_CHECK(editabletext);
+  DALI_TEST_EQUALS(editabletext->CopyText(3, 1), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(editabletext->CopyText(1, 3), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(editabletext->CutText(3, 1), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(editabletext->CutText(1, 3), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->GetText(0, 1), "t", TEST_LOCATION);
+
+  auto range = text->GetRangeOfSelection(1);
+  DALI_TEST_EQUALS(range.startOffset, 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(range.endOffset, 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(range.content, "", TEST_LOCATION);
+  DALI_TEST_EQUALS(text->SetRangeOfSelection(1, 0, 1), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->RemoveSelection(1), false, TEST_LOCATION);
 
   // Insert into empty field
   DALI_TEST_EQUALS(editabletext->SetTextContents(""), true, TEST_LOCATION);
@@ -615,52 +798,52 @@ int UtcDaliAccessibilityTextField(void)
   DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
   DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
 
-  auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
-  DALI_TEST_CHECK( hypertext );
+  auto hypertext = dynamic_cast<Dali::Accessibility::Hypertext*>(accessible);
+  DALI_TEST_CHECK(hypertext);
   // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(0) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(5) == nullptr, true, TEST_LOCATION);
   // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
-  textfield.SetProperty( Toolkit::TextField::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345" );
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
+  textfield.SetProperty(Toolkit::TextField::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345");
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(0) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(5) == nullptr, true, TEST_LOCATION);
   // text with the anchors markup and ENABLE_MARKUP property set to true
-  textfield.SetProperty( Toolkit::TextField::Property::ENABLE_MARKUP, true);
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  auto hyperlink = hypertext->GetLink( 0 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
-  auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
-  DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
-  hyperlink = hypertext->GetLink( 1 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
-  hyperlink = hypertext->GetLink( 2 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
-
-  Dali::Accessibility::TestEnableSC( false );
+  textfield.SetProperty(Toolkit::TextField::Property::ENABLE_MARKUP, true);
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 3, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), 0, TEST_LOCATION);  //1st anchor index
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(17), 1, TEST_LOCATION); //2nd anchor index
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(66), 2, TEST_LOCATION); //3rd anchor index
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  auto hyperlink = hypertext->GetLink(0);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 5, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 12, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetAnchorCount(), 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetAnchorUri(0), "https://www.tizen.org", TEST_LOCATION);
+  auto anchorAccessible = hyperlink->GetAnchorAccessible(0);
+  DALI_TEST_EQUALS(hyperlink == anchorAccessible, true, TEST_LOCATION);
+  hyperlink = hypertext->GetLink(1);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 17, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 60, TEST_LOCATION);
+  hyperlink = hypertext->GetLink(2);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 65, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 72, TEST_LOCATION);
+
+  Dali::Accessibility::TestEnableSC(false);
 
   END_TEST;
 }
@@ -671,43 +854,43 @@ int UtcDaliAccessibilityTextEditor(void)
   ToolkitTestApplication application;
 
   auto texteditor = TextEditor::New();
-  DALI_TEST_CHECK( texteditor );
+  DALI_TEST_CHECK(texteditor);
 
-  texteditor.SetProperty(Actor::Property::NAME, "test" );
-  DALI_TEST_EQUALS( texteditor.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
+  texteditor.SetProperty(Actor::Property::NAME, "test");
+  DALI_TEST_EQUALS(texteditor.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( texteditor );
-  DALI_TEST_CHECK( accessible );
+  auto accessible = Dali::Accessibility::Accessible::Get(texteditor);
+  DALI_TEST_CHECK(accessible);
 
-  DALI_TEST_EQUALS( accessible->GetName(), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessible->GetName(), "", TEST_LOCATION);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::ENTRY, TEST_LOCATION);
   auto states = accessible->GetStates();
-  DALI_TEST_EQUALS( static_cast< unsigned int >( states[ Accessibility::State::EDITABLE ] ), true, TEST_LOCATION );
-
-  Dali::Accessibility::TestEnableSC( true );
-
-  texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "test" );
-  auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
-  DALI_TEST_CHECK( text );
-  DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCursorOffset(100), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCursorOffset(2), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetCursorOffset(), 2, TEST_LOCATION );
-
-  auto editabletext = dynamic_cast< Dali::Accessibility::EditableText* >( accessible );
-  DALI_TEST_CHECK( editabletext );
-  DALI_TEST_EQUALS( editabletext->CopyText( 3, 1 ), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( editabletext->CopyText( 1, 3 ), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( editabletext->CutText( 3, 1 ), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( editabletext->CutText( 1, 3 ), true, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetText( 0, 1 ), "t", TEST_LOCATION );
-
-  auto range = text->GetRangeOfSelection( 1 );
-  DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
+  DALI_TEST_EQUALS(static_cast<unsigned int>(states[Accessibility::State::EDITABLE]), true, TEST_LOCATION);
+
+  Dali::Accessibility::TestEnableSC(true);
+
+  texteditor.SetProperty(Toolkit::TextEditor::Property::TEXT, "test");
+  auto text = dynamic_cast<Dali::Accessibility::Text*>(accessible);
+  DALI_TEST_CHECK(text);
+  DALI_TEST_EQUALS(text->GetText(0, 10), "", TEST_LOCATION);
+  DALI_TEST_EQUALS(text->SetCursorOffset(100), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->SetCursorOffset(2), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->GetCursorOffset(), 2, TEST_LOCATION);
+
+  auto editabletext = dynamic_cast<Dali::Accessibility::EditableText*>(accessible);
+  DALI_TEST_CHECK(editabletext);
+  DALI_TEST_EQUALS(editabletext->CopyText(3, 1), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(editabletext->CopyText(1, 3), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(editabletext->CutText(3, 1), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(editabletext->CutText(1, 3), true, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->GetText(0, 1), "t", TEST_LOCATION);
+
+  auto range = text->GetRangeOfSelection(1);
+  DALI_TEST_EQUALS(range.startOffset, 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(range.endOffset, 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(range.content, "", TEST_LOCATION);
+  DALI_TEST_EQUALS(text->SetRangeOfSelection(1, 0, 1), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->RemoveSelection(1), false, TEST_LOCATION);
 
   // Insert into empty field
   DALI_TEST_EQUALS(editabletext->SetTextContents(""), true, TEST_LOCATION);
@@ -726,52 +909,52 @@ int UtcDaliAccessibilityTextEditor(void)
   DALI_TEST_EQUALS(editabletext->DeleteText(1, 5), true, TEST_LOCATION);
   DALI_TEST_EQUALS(text->GetText(0, 2), "af", TEST_LOCATION);
 
-  auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
-  DALI_TEST_CHECK( hypertext );
+  auto hypertext = dynamic_cast<Dali::Accessibility::Hypertext*>(accessible);
+  DALI_TEST_CHECK(hypertext);
   // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(0) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(5) == nullptr, true, TEST_LOCATION);
   // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
-  texteditor.SetProperty( Toolkit::TextEditor::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345" );
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
+  texteditor.SetProperty(Toolkit::TextEditor::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345");
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(0) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(5) == nullptr, true, TEST_LOCATION);
   // text with the anchors markup and ENABLE_MARKUP property set to true
-  texteditor.SetProperty( Toolkit::TextEditor::Property::ENABLE_MARKUP, true);
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  auto hyperlink = hypertext->GetLink( 0 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
-  auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
-  DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
-  hyperlink = hypertext->GetLink( 1 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
-  hyperlink = hypertext->GetLink( 2 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
-
-  Dali::Accessibility::TestEnableSC( false );
+  texteditor.SetProperty(Toolkit::TextEditor::Property::ENABLE_MARKUP, true);
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 3, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), 0, TEST_LOCATION);  //1st anchor index
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(17), 1, TEST_LOCATION); //2nd anchor index
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(66), 2, TEST_LOCATION); //3rd anchor index
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  auto hyperlink = hypertext->GetLink(0);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 5, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 12, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetAnchorCount(), 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetAnchorUri(0), "https://www.tizen.org", TEST_LOCATION);
+  auto anchorAccessible = hyperlink->GetAnchorAccessible(0);
+  DALI_TEST_EQUALS(hyperlink == anchorAccessible, true, TEST_LOCATION);
+  hyperlink = hypertext->GetLink(1);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 17, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 60, TEST_LOCATION);
+  hyperlink = hypertext->GetLink(2);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 65, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 72, TEST_LOCATION);
+
+  Dali::Accessibility::TestEnableSC(false);
 
   END_TEST;
 }
@@ -781,80 +964,80 @@ int UtcDaliAccessibilityTextLabel(void)
   ToolkitTestApplication application;
 
   auto textlabel = TextLabel::New();
-  DALI_TEST_CHECK( textlabel );
-
-  textlabel.SetProperty(Actor::Property::NAME, "test" );
-  DALI_TEST_EQUALS( textlabel.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION );
-
-  auto accessible = Dali::Accessibility::Accessible::Get( textlabel );
-  DALI_TEST_CHECK( accessible );
+  DALI_TEST_CHECK(textlabel);
 
-  DALI_TEST_EQUALS( accessible->GetName(), "test", TEST_LOCATION );
-  DALI_TEST_EQUALS( accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION );
+  textlabel.SetProperty(Actor::Property::NAME, "test");
+  DALI_TEST_EQUALS(textlabel.GetProperty<std::string>(Actor::Property::NAME), "test", TEST_LOCATION);
 
-  Dali::Accessibility::TestEnableSC( true );
+  auto accessible = Dali::Accessibility::Accessible::Get(textlabel);
+  DALI_TEST_CHECK(accessible);
 
-  textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "test" );
-  auto text = dynamic_cast< Dali::Accessibility::Text* >( accessible );
-  DALI_TEST_CHECK( text );
-  DALI_TEST_EQUALS( text->GetText( 0, 10 ), "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetText( 0, 4 ), "test", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetCursorOffset(0), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->GetCursorOffset(), 0, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessible->GetName(), "test", TEST_LOCATION);
+  DALI_TEST_EQUALS(accessible->GetRole(), Accessibility::Role::LABEL, TEST_LOCATION);
 
-  auto range = text->GetRangeOfSelection( 1 );
-  DALI_TEST_EQUALS( range.startOffset, 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( range.endOffset, 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( range.content, "", TEST_LOCATION );
-  DALI_TEST_EQUALS( text->SetRangeOfSelection( 1, 0, 1 ), false, TEST_LOCATION );
-  DALI_TEST_EQUALS( text->RemoveSelection( 1 ), false, TEST_LOCATION );
+  Dali::Accessibility::TestEnableSC(true);
 
-  auto hypertext = dynamic_cast< Dali::Accessibility::Hypertext* >( accessible );
-  DALI_TEST_CHECK( hypertext );
+  textlabel.SetProperty(Toolkit::TextLabel::Property::TEXT, "test");
+  auto text = dynamic_cast<Dali::Accessibility::Text*>(accessible);
+  DALI_TEST_CHECK(text);
+  DALI_TEST_EQUALS(text->GetText(0, 10), "", TEST_LOCATION);
+  DALI_TEST_EQUALS(text->GetText(0, 4), "test", TEST_LOCATION);
+  DALI_TEST_EQUALS(text->SetCursorOffset(0), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->GetCursorOffset(), 0, TEST_LOCATION);
+
+  auto range = text->GetRangeOfSelection(1);
+  DALI_TEST_EQUALS(range.startOffset, 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(range.endOffset, 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(range.content, "", TEST_LOCATION);
+  DALI_TEST_EQUALS(text->SetRangeOfSelection(1, 0, 1), false, TEST_LOCATION);
+  DALI_TEST_EQUALS(text->RemoveSelection(1), false, TEST_LOCATION);
+
+  auto hypertext = dynamic_cast<Dali::Accessibility::Hypertext*>(accessible);
+  DALI_TEST_CHECK(hypertext);
   // text without the anchors markup and ENABLE_MARKUP property set (by default) to false
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(0) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(5) == nullptr, true, TEST_LOCATION);
   // text with the anchors markup and ENABLE_MARKUP property set (by default) to false
-  textlabel.SetProperty( Toolkit::TextLabel::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345" );
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 0, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 0 ) == nullptr, true, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLink( 5 ) == nullptr, true, TEST_LOCATION );
+  textlabel.SetProperty(Toolkit::TextLabel::Property::TEXT, "12345<a href = 'https://www.tizen.org'>anchor1</a>12345<a href = 'https://www.tizen.org' >veryveryveryveryveryveryveryverylonganchor2</a>12345<a href = 'https://www.tizen.org'>anchor3</a>12345");
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 0, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(0) == nullptr, true, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLink(5) == nullptr, true, TEST_LOCATION);
   // text with the anchors markup and ENABLE_MARKUP property set to true
-  textlabel.SetProperty( Toolkit::TextLabel::Property::ENABLE_MARKUP, true);
-  DALI_TEST_EQUALS( hypertext->GetLinkCount(), 3, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( -1 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 0 ), -1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 5 ), 0, TEST_LOCATION ); //1st anchor index
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 17 ), 1, TEST_LOCATION ); //2nd anchor index
-  DALI_TEST_EQUALS( hypertext->GetLinkIndex( 66 ), 2, TEST_LOCATION ); //3rd anchor index
-  DALI_TEST_EQUALS( hypertext->GetLink( -1 ) == nullptr, true, TEST_LOCATION );
-  auto hyperlink = hypertext->GetLink( 0 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 5, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 12, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetAnchorCount(), 1, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetAnchorUri( 0 ), "https://www.tizen.org", TEST_LOCATION );
-  auto anchorAccessible = hyperlink->GetAnchorAccessible( 0 );
-  DALI_TEST_EQUALS( hyperlink == anchorAccessible, true, TEST_LOCATION );
-  hyperlink = hypertext->GetLink( 1 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 17, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 60, TEST_LOCATION );
-  hyperlink = hypertext->GetLink( 2 );
-  DALI_TEST_CHECK ( hyperlink );
-  DALI_TEST_EQUALS( hyperlink->GetStartIndex(), 65, TEST_LOCATION );
-  DALI_TEST_EQUALS( hyperlink->GetEndIndex(), 72, TEST_LOCATION );
-
-  Dali::Accessibility::TestEnableSC( false );
+  textlabel.SetProperty(Toolkit::TextLabel::Property::ENABLE_MARKUP, true);
+  DALI_TEST_EQUALS(hypertext->GetLinkCount(), 3, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(-1), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(0), -1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(5), 0, TEST_LOCATION);  //1st anchor index
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(17), 1, TEST_LOCATION); //2nd anchor index
+  DALI_TEST_EQUALS(hypertext->GetLinkIndex(66), 2, TEST_LOCATION); //3rd anchor index
+  DALI_TEST_EQUALS(hypertext->GetLink(-1) == nullptr, true, TEST_LOCATION);
+  auto hyperlink = hypertext->GetLink(0);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 5, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 12, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetAnchorCount(), 1, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetAnchorUri(0), "https://www.tizen.org", TEST_LOCATION);
+  auto anchorAccessible = hyperlink->GetAnchorAccessible(0);
+  DALI_TEST_EQUALS(hyperlink == anchorAccessible, true, TEST_LOCATION);
+  hyperlink = hypertext->GetLink(1);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 17, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 60, TEST_LOCATION);
+  hyperlink = hypertext->GetLink(2);
+  DALI_TEST_CHECK(hyperlink);
+  DALI_TEST_EQUALS(hyperlink->GetStartIndex(), 65, TEST_LOCATION);
+  DALI_TEST_EQUALS(hyperlink->GetEndIndex(), 72, TEST_LOCATION);
+
+  Dali::Accessibility::TestEnableSC(false);
 
   END_TEST;
 }
@@ -865,12 +1048,12 @@ int UtcDaliAccessibilityNavigationViewConstructor(void)
   ToolkitTestApplication application;
 
   auto navigationview = NavigationView::New();
-  DALI_TEST_CHECK( navigationview );
+  DALI_TEST_CHECK(navigationview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( navigationview );
-  DALI_TEST_CHECK( accessible );
+  auto accessible = Dali::Accessibility::Accessible::Get(navigationview);
+  DALI_TEST_CHECK(accessible);
 
-  DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::FILLER, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessible->GetRole(), Dali::Accessibility::Role::FILLER, TEST_LOCATION);
 
   END_TEST;
 }
@@ -880,12 +1063,12 @@ int UtcDaliAccessibilityVideoViewConstructor(void)
   ToolkitTestApplication application;
 
   auto videoview = VideoView::New();
-  DALI_TEST_CHECK( videoview );
+  DALI_TEST_CHECK(videoview);
 
-  auto accessible = Dali::Accessibility::Accessible::Get( videoview );
-  DALI_TEST_CHECK( accessible );
+  auto accessible = Dali::Accessibility::Accessible::Get(videoview);
+  DALI_TEST_CHECK(accessible);
 
-  DALI_TEST_EQUALS( accessible->GetRole(), Dali::Accessibility::Role::VIDEO, TEST_LOCATION );
+  DALI_TEST_EQUALS(accessible->GetRole(), Dali::Accessibility::Role::VIDEO, TEST_LOCATION);
 
   END_TEST;
 }
index 59b0e80..1de25f4 100644 (file)
@@ -256,22 +256,56 @@ Dali::Accessibility::ReadingInfoTypes GetAccessibilityReadingInfoType(Toolkit::C
 
 bool ClearAccessibilityHighlight(Toolkit::Control control)
 {
-  return GetControlImplementation(control).GetAccessibleObject()->ClearHighlight();
+  auto* controlAccessible = GetControlImplementation(control).GetAccessibleObject();
+  if(DALI_LIKELY(controlAccessible))
+  {
+    return controlAccessible->ClearHighlight();
+  }
+  return false;
 }
 
 bool GrabAccessibilityHighlight(Toolkit::Control control)
 {
-  return GetControlImplementation(control).GetAccessibleObject()->GrabHighlight();
+  auto* controlAccessible = GetControlImplementation(control).GetAccessibleObject();
+  if(DALI_LIKELY(controlAccessible))
+  {
+    return controlAccessible->GrabHighlight();
+  }
+  return false;
 }
 
 Dali::Accessibility::States GetAccessibilityStates(Toolkit::Control control)
 {
-  return GetControlImplementation(control).GetAccessibleObject()->GetStates();
+  auto* controlAccessible = GetControlImplementation(control).GetAccessibleObject();
+  if(DALI_LIKELY(controlAccessible))
+  {
+    return controlAccessible->GetStates();
+  }
+  return Dali::Accessibility::States{};
 }
 
 void NotifyAccessibilityStateChange(Toolkit::Control control, Dali::Accessibility::States states, bool recurse)
 {
-  GetControlImplementation(control).GetAccessibleObject()->NotifyAccessibilityStateChange(std::move(states), recurse);
+  auto* controlAccessible = GetControlImplementation(control).GetAccessibleObject();
+  if(DALI_LIKELY(controlAccessible))
+  {
+    controlAccessible->NotifyAccessibilityStateChange(std::move(states), recurse);
+  }
+}
+
+bool IsAccessibleCreated(Toolkit::Control control)
+{
+  return GetControlImplementation(control).IsAccessibleCreated();
+}
+
+void EnableCreateAccessible(Toolkit::Control control, bool enable)
+{
+  GetControlImplementation(control).EnableCreateAccessible(enable);
+}
+
+bool IsCreateAccessibleEnabled(Toolkit::Control control)
+{
+  return GetControlImplementation(control).IsCreateAccessibleEnabled();
 }
 
 } // namespace DevelControl
index 906e74b..fe2548f 100644 (file)
@@ -597,6 +597,31 @@ DALI_TOOLKIT_API Dali::Accessibility::States GetAccessibilityStates(Toolkit::Con
  */
 DALI_TOOLKIT_API void NotifyAccessibilityStateChange(Toolkit::Control control, Dali::Accessibility::States states, bool recurse);
 
+/**
+ * @brief The method to get the control's accessibility created or not.
+ *
+ * @param[in] control object to append attribute to
+ * @return True if accessible were created. False otherwise.
+ */
+DALI_TOOLKIT_API bool IsAccessibleCreated(Toolkit::Control control);
+
+/**
+ * @brief The method to set creatable of control's accessibility.
+ * @note This method doesn't remove that already created accessible.
+ *
+ * @param[in] control object to append attribute to
+ * @param[in] enable True if we allow to create accessible. False otherwise.
+ */
+DALI_TOOLKIT_API void EnableCreateAccessible(Toolkit::Control control, bool enable);
+
+/**
+ * @brief The method to get creatable of control's accessibility.
+ *
+ * @param[in] control object to append attribute to
+ * @return True if we allow to create accessible. False otherwise.
+ */
+DALI_TOOLKIT_API bool IsCreateAccessibleEnabled(Toolkit::Control control);
+
 } // namespace DevelControl
 
 } // namespace Toolkit
index 78a2794..574ef08 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -88,7 +88,7 @@ DevelControl::ControlAccessible* CheckBoxButton::CreateAccessibleObject()
 Dali::Accessibility::States CheckBoxButton::CheckBoxButtonAccessible::CalculateStates()
 {
   auto state = Button::ButtonAccessible::CalculateStates();
-  auto self = Toolkit::Button::DownCast(Self());
+  auto self  = Toolkit::Button::DownCast(Self());
   if(self.GetProperty<bool>(Toolkit::Button::Property::SELECTED))
   {
     state[Dali::Accessibility::State::CHECKED] = true;
@@ -101,7 +101,11 @@ void CheckBoxButton::OnStateChange(State newState)
   // TODO: replace it with OnPropertySet hook once Button::Property::SELECTED will be consistently used
   if((Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor() == Self()) && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))
   {
-    GetAccessibleObject()->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+    auto* accessible = GetAccessibleObject();
+    if(DALI_LIKELY(accessible))
+    {
+      accessible->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+    }
   }
 }
 
index 9ff9531..dea0ee0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -198,8 +198,8 @@ Property::Value PushButton::GetProperty(BaseObject* object, Property::Index prop
 
 Dali::Accessibility::States PushButton::PushButtonAccessible::CalculateStates()
 {
-  auto state = Button::ButtonAccessible::CalculateStates();
-  auto self = Toolkit::Button::DownCast(Self());
+  auto state                                 = Button::ButtonAccessible::CalculateStates();
+  auto self                                  = Toolkit::Button::DownCast(Self());
   state[Dali::Accessibility::State::PRESSED] = self.GetProperty<bool>(Toolkit::Button::Property::SELECTED);
   return state;
 }
@@ -210,12 +210,14 @@ void PushButton::OnStateChange(State newState)
   if((Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor() == Self()) && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))
   {
     auto* accessible = GetAccessibleObject();
-
-    accessible->EmitStateChanged(Dali::Accessibility::State::PRESSED, newState == SELECTED_STATE ? 1 : 0, 0);
-
-    if(Self().GetProperty<bool>(Toolkit::Button::Property::TOGGLABLE))
+    if(DALI_LIKELY(accessible))
     {
-      accessible->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+      accessible->EmitStateChanged(Dali::Accessibility::State::PRESSED, newState == SELECTED_STATE ? 1 : 0, 0);
+
+      if(Self().GetProperty<bool>(Toolkit::Button::Property::TOGGLABLE))
+      {
+        accessible->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+      }
     }
   }
 }
index bf35f99..9aace1a 100644 (file)
@@ -109,14 +109,18 @@ void RadioButton::OnStateChange(State newState)
   // TODO: replace it with OnPropertySet hook once Button::Property::SELECTED will be consistently used
   if((Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor() == Self()) && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))
   {
-    GetAccessibleObject()->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+    auto* accessible = GetAccessibleObject();
+    if(DALI_LIKELY(accessible))
+    {
+      accessible->EmitStateChanged(Dali::Accessibility::State::CHECKED, newState == SELECTED_STATE ? 1 : 0, 0);
+    }
   }
 }
 
 Dali::Accessibility::States RadioButton::RadioButtonAccessible::CalculateStates()
 {
   auto state = Button::ButtonAccessible::CalculateStates();
-  auto self = Toolkit::Button::DownCast(Self());
+  auto self  = Toolkit::Button::DownCast(Self());
 
   if(self.GetProperty<bool>(Toolkit::Button::Property::SELECTED))
   {
index d85f8fd..ef56202 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -404,9 +404,11 @@ void ToggleButton::OnStateChange(State newState)
   if((Self() == Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor()) && (newState == SELECTED_STATE || newState == UNSELECTED_STATE))
   {
     auto* accessible = GetAccessibleObject();
-
-    accessible->EmitStateChanged(Dali::Accessibility::State::CHECKED, mCurrentToggleIndex ? 1 : 0, 0);
-    accessible->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::DESCRIPTION);
+    if(DALI_LIKELY(accessible))
+    {
+      accessible->EmitStateChanged(Dali::Accessibility::State::CHECKED, mCurrentToggleIndex ? 1 : 0, 0);
+      accessible->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::DESCRIPTION);
+    }
   }
 }
 
index a837b77..1202c26 100644 (file)
@@ -617,58 +617,61 @@ const Control::Impl& Control::Impl::Get(const Internal::Control& internalControl
 
 void Control::Impl::CheckHighlightedObjectGeometry()
 {
-  auto accessible     = GetAccessibleObject();
-  auto lastPosition   = accessible->GetLastPosition();
-  auto accessibleRect = accessible->GetExtents(Dali::Accessibility::CoordinateType::WINDOW);
-  auto rect           = GetShowingGeometry(accessibleRect, accessible);
-
-  switch(mAccessibilityLastScreenRelativeMoveType)
+  auto accessible = GetAccessibleObject();
+  if(DALI_LIKELY(accessible))
   {
-    case Dali::Accessibility::ScreenRelativeMoveType::OUTSIDE:
-    {
-      if(IsShowingGeometryOnScreen(rect))
-      {
-        mAccessibilityLastScreenRelativeMoveType = Dali::Accessibility::ScreenRelativeMoveType::INSIDE;
-      }
-      break;
-    }
-    case Dali::Accessibility::ScreenRelativeMoveType::INSIDE:
+    auto lastPosition   = accessible->GetLastPosition();
+    auto accessibleRect = accessible->GetExtents(Dali::Accessibility::CoordinateType::WINDOW);
+    auto rect           = GetShowingGeometry(accessibleRect, accessible);
+
+    switch(mAccessibilityLastScreenRelativeMoveType)
     {
-      if(rect.width < 0 && !Dali::Equals(accessibleRect.x, lastPosition.x))
-      {
-        mAccessibilityLastScreenRelativeMoveType = (accessibleRect.x < lastPosition.x) ? Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_TOP_LEFT : Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_BOTTOM_RIGHT;
-      }
-      if(rect.height < 0 && !Dali::Equals(accessibleRect.y, lastPosition.y))
+      case Dali::Accessibility::ScreenRelativeMoveType::OUTSIDE:
       {
-        mAccessibilityLastScreenRelativeMoveType = (accessibleRect.y < lastPosition.y) ? Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_TOP_LEFT : Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_BOTTOM_RIGHT;
+        if(IsShowingGeometryOnScreen(rect))
+        {
+          mAccessibilityLastScreenRelativeMoveType = Dali::Accessibility::ScreenRelativeMoveType::INSIDE;
+        }
+        break;
       }
-      // notify AT-clients on outgoing moves only
-      if(mAccessibilityLastScreenRelativeMoveType != Dali::Accessibility::ScreenRelativeMoveType::INSIDE)
+      case Dali::Accessibility::ScreenRelativeMoveType::INSIDE:
       {
-        accessible->EmitMovedOutOfScreen(mAccessibilityLastScreenRelativeMoveType);
+        if(rect.width < 0 && !Dali::Equals(accessibleRect.x, lastPosition.x))
+        {
+          mAccessibilityLastScreenRelativeMoveType = (accessibleRect.x < lastPosition.x) ? Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_TOP_LEFT : Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_BOTTOM_RIGHT;
+        }
+        if(rect.height < 0 && !Dali::Equals(accessibleRect.y, lastPosition.y))
+        {
+          mAccessibilityLastScreenRelativeMoveType = (accessibleRect.y < lastPosition.y) ? Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_TOP_LEFT : Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_BOTTOM_RIGHT;
+        }
+        // notify AT-clients on outgoing moves only
+        if(mAccessibilityLastScreenRelativeMoveType != Dali::Accessibility::ScreenRelativeMoveType::INSIDE)
+        {
+          accessible->EmitMovedOutOfScreen(mAccessibilityLastScreenRelativeMoveType);
+        }
+        break;
       }
-      break;
-    }
-    case Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_TOP_LEFT:
-    case Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_BOTTOM_RIGHT:
-    {
-      if(IsShowingGeometryOnScreen(rect))
+      case Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_TOP_LEFT:
+      case Dali::Accessibility::ScreenRelativeMoveType::OUTGOING_BOTTOM_RIGHT:
       {
-        mAccessibilityLastScreenRelativeMoveType = Dali::Accessibility::ScreenRelativeMoveType::INSIDE;
+        if(IsShowingGeometryOnScreen(rect))
+        {
+          mAccessibilityLastScreenRelativeMoveType = Dali::Accessibility::ScreenRelativeMoveType::INSIDE;
+        }
+        else
+        {
+          mAccessibilityLastScreenRelativeMoveType = Dali::Accessibility::ScreenRelativeMoveType::OUTSIDE;
+        }
+        break;
       }
-      else
+      default:
       {
-        mAccessibilityLastScreenRelativeMoveType = Dali::Accessibility::ScreenRelativeMoveType::OUTSIDE;
+        break;
       }
-      break;
-    }
-    default:
-    {
-      break;
     }
-  }
 
-  accessible->SetLastPosition(Vector2(accessibleRect.x, accessibleRect.y));
+    accessible->SetLastPosition(Vector2(accessibleRect.x, accessibleRect.y));
+  }
 }
 
 void Control::Impl::RegisterAccessibilityPositionPropertyNotification()
@@ -1467,10 +1470,13 @@ void Control::Impl::SetProperty(BaseObject* object, Property::Index index, const
           controlImpl.mImpl->mAccessibilityHidden = hidden;
 
           auto* accessible = controlImpl.GetAccessibleObject();
-          auto* parent     = dynamic_cast<Dali::Accessibility::ActorAccessible*>(accessible->GetParent());
-          if(parent)
+          if(DALI_LIKELY(accessible))
           {
-            parent->OnChildrenChanged();
+            auto* parent = dynamic_cast<Dali::Accessibility::ActorAccessible*>(accessible->GetParent());
+            if(parent)
+            {
+              parent->OnChildrenChanged();
+            }
           }
         }
         break;
@@ -2223,7 +2229,7 @@ bool Control::Impl::OnIdleCallback()
 
 Toolkit::DevelControl::ControlAccessible* Control::Impl::GetAccessibleObject()
 {
-  if(!mAccessibleObject)
+  if(mAccessibleCreatable && !mAccessibleObject)
   {
     mAccessibleObject.reset(mControlImpl.CreateAccessibleObject());
   }
@@ -2231,6 +2237,21 @@ Toolkit::DevelControl::ControlAccessible* Control::Impl::GetAccessibleObject()
   return mAccessibleObject.get();
 }
 
+bool Control::Impl::IsAccessibleCreated() const
+{
+  return !!mAccessibleObject;
+}
+
+void Control::Impl::EnableCreateAccessible(bool enable)
+{
+  mAccessibleCreatable = enable;
+}
+
+bool Control::Impl::IsCreateAccessibleEnabled() const
+{
+  return mAccessibleCreatable;
+}
+
 } // namespace Internal
 
 } // namespace Toolkit
index bd7378f..95c1801 100644 (file)
@@ -455,6 +455,21 @@ public:
    */
   Toolkit::DevelControl::ControlAccessible* GetAccessibleObject();
 
+  /**
+   * @copydoc Dali::Toolkit::DevelControl::IsAccessibleCreated()
+   */
+  bool IsAccessibleCreated() const;
+
+  /**
+   * @copydoc Dali::Toolkit::DevelControl::EnableCreateAccessible()
+   */
+  void EnableCreateAccessible(bool enable);
+
+  /**
+   * @copydoc Dali::Toolkit::DevelControl::IsCreateAccessibleEnabled()
+   */
+  bool IsCreateAccessibleEnabled() const;
+
 private:
   /**
    * Used as an alternative to boolean so that it is obvious whether a visual is enabled/disabled.
@@ -564,6 +579,7 @@ public:
 
   bool mAccessibilityHighlightable = false;
   bool mAccessibilityHidden        = false;
+  bool mAccessibleCreatable        = true;
 
   Dali::Accessibility::Role mAccessibilityRole = Dali::Accessibility::Role::UNKNOWN;
 
index c1c6d29..2432fb1 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -273,7 +273,11 @@ void ProgressBar::SetProgressValue(float value)
     mValueChangedSignal.Emit(self, mProgressValue, mSecondaryProgressValue);
     if(Self() == Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor())
     {
-      GetAccessibleObject()->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::VALUE);
+      auto accessible = GetAccessibleObject();
+      if(DALI_LIKELY(accessible))
+      {
+        accessible->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::VALUE);
+      }
     }
     RelayoutRequest();
   }
index 3b4f6b1..835ecc9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -365,7 +365,11 @@ void ScrollBar::OnScrollPositionIntervalReached(PropertyNotification& source)
     mScrollPositionIntervalReachedSignal.Emit(scrollableHandle.GetCurrentProperty<float>(mPropertyScrollPosition));
     if(Self() == Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor())
     {
-      GetAccessibleObject()->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::VALUE);
+      auto accessible = GetAccessibleObject();
+      if(DALI_LIKELY(accessible))
+      {
+        accessible->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::VALUE);
+      }
     }
   }
 }
index 4acad77..633cc25 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -951,7 +951,11 @@ void Slider::SetValue(float value)
   DisplayValue(mValue, true);
   if(Self() == Dali::Accessibility::Accessible::GetCurrentlyHighlightedActor())
   {
-    GetAccessibleObject()->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::VALUE);
+    auto accessible = GetAccessibleObject();
+    if(DALI_LIKELY(accessible))
+    {
+      accessible->Emit(Dali::Accessibility::ObjectPropertyChangeEvent::VALUE);
+    }
   }
 }
 
@@ -1440,7 +1444,7 @@ bool Slider::SliderAccessible::SetCurrent(double current)
   if(current < GetMinimum() || current > GetMaximum())
     return false;
 
-  auto self = Toolkit::Slider::DownCast(Self());
+  auto  self = Toolkit::Slider::DownCast(Self());
   auto& impl = Toolkit::GetImpl(self);
 
   const float prev = self.GetProperty<float>(Toolkit::Slider::Property::VALUE);
index 3fc19f2..a9d5c2b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -969,17 +969,29 @@ void TextEditor::RequestTextRelayout()
 
 void TextEditor::TextInserted(unsigned int position, unsigned int length, const std::string& content)
 {
-  GetAccessibleObject()->EmitTextInserted(position, length, content);
+  auto accessible = GetAccessibleObject();
+  if(DALI_LIKELY(accessible))
+  {
+    accessible->EmitTextInserted(position, length, content);
+  }
 }
 
 void TextEditor::TextDeleted(unsigned int position, unsigned int length, const std::string& content)
 {
-  GetAccessibleObject()->EmitTextDeleted(position, length, content);
+  auto accessible = GetAccessibleObject();
+  if(DALI_LIKELY(accessible))
+  {
+    accessible->EmitTextDeleted(position, length, content);
+  }
 }
 
 void TextEditor::CursorPositionChanged(unsigned int oldPosition, unsigned int newPosition)
 {
-  GetAccessibleObject()->EmitTextCursorMoved(newPosition);
+  auto accessible = GetAccessibleObject();
+  if(DALI_LIKELY(accessible))
+  {
+    accessible->EmitTextCursorMoved(newPosition);
+  }
 
   if((oldPosition != newPosition) && !mCursorPositionChanged)
   {
index d95da08..9b78346 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -891,17 +891,29 @@ void TextField::SetEditable(bool editable)
 
 void TextField::TextInserted(unsigned int position, unsigned int length, const std::string& content)
 {
-  GetAccessibleObject()->EmitTextInserted(position, length, content);
+  auto accessible = GetAccessibleObject();
+  if(DALI_LIKELY(accessible))
+  {
+    accessible->EmitTextInserted(position, length, content);
+  }
 }
 
 void TextField::TextDeleted(unsigned int position, unsigned int length, const std::string& content)
 {
-  GetAccessibleObject()->EmitTextDeleted(position, length, content);
+  auto accessible = GetAccessibleObject();
+  if(DALI_LIKELY(accessible))
+  {
+    accessible->EmitTextDeleted(position, length, content);
+  }
 }
 
 void TextField::CursorPositionChanged(unsigned int oldPosition, unsigned int newPosition)
 {
-  GetAccessibleObject()->EmitTextCursorMoved(newPosition);
+  auto accessible = GetAccessibleObject();
+  if(DALI_LIKELY(accessible))
+  {
+    accessible->EmitTextCursorMoved(newPosition);
+  }
 
   if((oldPosition != newPosition) && !mCursorPositionChanged)
   {
index e590f91..e7a90a1 100644 (file)
@@ -507,12 +507,15 @@ void Control::EmitKeyInputFocusSignal(bool focusGained)
 
   if(Accessibility::IsUp())
   {
-    auto self = GetAccessibleObject();
-    self->EmitFocused(focusGained);
-    auto parent = self->GetParent();
-    if(parent && !self->GetStates()[Dali::Accessibility::State::MANAGES_DESCENDANTS])
+    auto accessible = GetAccessibleObject();
+    if(DALI_LIKELY(accessible))
     {
-      parent->EmitActiveDescendantChanged(self);
+      accessible->EmitFocused(focusGained);
+      auto parent = accessible->GetParent();
+      if(parent && !accessible->GetStates()[Dali::Accessibility::State::MANAGES_DESCENDANTS])
+      {
+        parent->EmitActiveDescendantChanged(accessible);
+      }
     }
   }
 
index 8f3920c..9c156d4 100644 (file)
@@ -124,7 +124,7 @@ public:
   /**
    * @brief Gets the Accessible object that represents this control.
    *
-   * This method calls CreateAccessibleObject() if necessary, so a non-null return is expected.
+   * This method calls CreateAccessibleObject() if CreateAccessible is true.
    *
    * @return The Accessible object
    *