While the Widget is technically a window in DALi, it should not be seen
as a window by AT clients such as the Screen Reader, i.e. it should not
grab and narrow down the navigation context. Suppressing window events
and some state events (notably, State::SHOWING, however the API offers
an all-or-nothing granularity only) is necessary to achieve this goal.
Change-Id: I0873751f025bbdd321aa26444c070bf064c0ce3f
#include <dali/internal/system/tizen-wayland/widget-controller-tizen.h>
// EXTERNAL INCLUDES
+#include <dali/public-api/actors/layer.h>
#include <bundle.h>
#include <widget_base.h>
// INTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/accessibility-bridge.h>
+#include <dali/devel-api/atspi-interfaces/accessible.h>
namespace Dali
{
auto preferredBusName = Bridge::MakeBusNameForWidget(widgetId);
Bridge::GetCurrentBridge()->SetPreferredBusName(preferredBusName);
+
+ // Widget should not send window events (which could narrow down the navigation context)
+ auto& suppressedEvents = Accessibility::Accessible::Get(window.GetRootLayer())->GetSuppressedEvents();
+ suppressedEvents[Accessibility::AtspiEvent::STATE_CHANGED] = true;
+ suppressedEvents[Accessibility::AtspiEvent::WINDOW_CHANGED] = true;
}
Dali::Window WidgetImplTizen::GetWindow() const