[AT-SPI] Move setting highlightability property for controls to inheriting classes 47/239447/39
authorMaria Bialota <m.bialota@samsung.com>
Fri, 24 Jul 2020 18:26:42 +0000 (20:26 +0200)
committerArtur Świgoń <a.swigon@samsung.com>
Fri, 23 Oct 2020 13:07:00 +0000 (15:07 +0200)
* Giving highlightable state explicitly for particular control by its developer is more reasonable than giving this state for all controls by default.
* Such approach allows for better control over UI elements highlightability. We avoid highlighting containers like layouts, etc.

Change-Id: Ifc1b5e268c2bd02c17498d0dba619771c5d5b00d

dali-toolkit/internal/controls/buttons/button-impl.cpp
dali-toolkit/internal/controls/control/control-data-impl.cpp
dali-toolkit/internal/controls/image-view/image-view-impl.cpp
dali-toolkit/internal/controls/progress-bar/progress-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/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/controls/text-controls/text-selection-popup-impl.cpp

index 6c6ab02..c2d21ba 100644 (file)
@@ -619,6 +619,7 @@ void Button::OnInitialize()
   mTapDetector.DetectedSignal().Connect(this, &Button::OnTap);
 
   self.SetProperty( Actor::Property::KEYBOARD_FOCUSABLE, true );
+  self.SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
 
   self.TouchedSignal().Connect( this, &Button::OnTouch );
 }
index 4d7c6e4..b498259 100755 (executable)
@@ -1984,7 +1984,7 @@ Dali::Accessibility::States Control::Impl::AccessibleImpl::CalculateStates()
   s[Dali::Accessibility::State::FOCUSABLE] = self.GetProperty< bool >( Actor::Property::KEYBOARD_FOCUSABLE );
   s[Dali::Accessibility::State::FOCUSED] = Toolkit::KeyboardFocusManager::Get().GetCurrentFocusActor() == self;
   if(self.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).GetType() == Property::NONE )
-    s[Dali::Accessibility::State::HIGHLIGHTABLE] = true;
+    s[Dali::Accessibility::State::HIGHLIGHTABLE] = false;
   else
     s[Dali::Accessibility::State::HIGHLIGHTABLE] = self.GetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE ).Get< bool >();
   s[Dali::Accessibility::State::HIGHLIGHTED] = GetCurrentlyHighlightedActor() == self;
index 0f893a3..cb2dc99 100644 (file)
@@ -101,6 +101,10 @@ void ImageView::OnInitialize()
     return std::unique_ptr< Dali::Accessibility::Accessible >(
       new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::IMAGE ) );
   } );
+
+  //Enable highightability
+  Self().SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
+
 }
 
 void ImageView::SetImage( const Property::Map& map )
index a24de27..bdf7b0a 100644 (file)
@@ -170,6 +170,8 @@ void ProgressBar::OnInitialize()
     return std::unique_ptr< Dali::Accessibility::Accessible >(
         new AccessibleImpl( actor, Dali::Accessibility::Role::PROGRESS_BAR ) );
   } );
+  //Enable highightability
+  Self().SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
 }
 
 void ProgressBar::OnRelayout( const Vector2& size, RelayoutContainer& container )
index c347676..a010d05 100644 (file)
@@ -203,6 +203,9 @@ void Slider::OnInitialize()
   // Size the Slider actor to a default
   self.SetProperty( Actor::Property::SIZE, Vector2( DEFAULT_HIT_REGION.x, DEFAULT_HIT_REGION.y ) );
 
+  // Set the Slider to be highlightable in Screen Reader mode
+  self.SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
+
   // Connect to the touch signal
   self.TouchedSignal().Connect( this, &Slider::OnTouch );
 
index 9ce26d6..c28f3d5 100644 (file)
@@ -1215,6 +1215,9 @@ void TextEditor::OnInitialize()
   self.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT );
   self.OnSceneSignal().Connect( this, &TextEditor::OnSceneConnect );
 
+  //Enable highightability
+  self.SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
+
   DevelControl::SetInputMethodContext( *this, mInputMethodContext );
 
   // Creates an extra control to be used as stencil buffer.
index 068e55f..b452c14 100644 (file)
@@ -1235,6 +1235,9 @@ void TextField::OnInitialize()
   self.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::HEIGHT );
   self.OnSceneSignal().Connect( this, &TextField::OnSceneConnect );
 
+  //Enable highightability
+  self.SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
+
   DevelControl::SetInputMethodContext( *this, mInputMethodContext );
 
   if( Dali::Toolkit::TextField::EXCEED_POLICY_CLIP == mExceedPolicy )
index d5da6eb..2b61ddb 100755 (executable)
@@ -721,6 +721,9 @@ void TextLabel::OnInitialize()
   self.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH );
   self.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT );
 
+  // Enable highlightability
+  self.SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
+
   // Enable the text ellipsis.
   mController->SetTextElideEnabled( true );   // If false then text larger than control will overflow
 
index f912be2..bf7b618 100644 (file)
@@ -392,6 +392,9 @@ void TextSelectionPopup::OnInitialize()
     return std::unique_ptr< Dali::Accessibility::Accessible >(
       new Control::Impl::AccessibleImpl( actor, Dali::Accessibility::Role::DIALOG, true ) );
   } );
+  
+  //Enable highightability
+  self.SetProperty( Toolkit::DevelControl::Property::ACCESSIBILITY_HIGHLIGHTABLE, true );
 }
 
 void TextSelectionPopup::HideAnimationFinished( Animation& animation )