+std::vector<Accessibility::Relation> GetAccessibilityRelations(Toolkit::Control control)
+{
+ const auto& relations = GetControlImplementation(control).mAccessibilityRelations;
+ std::vector<Accessibility::Relation> result;
+
+ for(auto& relation : relations)
+ {
+ auto& targets = relation.second;
+
+ result.emplace_back(Accessibility::Relation{relation.first, {}});
+ std::copy(targets.begin(), targets.end(), std::back_inserter(result.back().mTargets));
+ }
+
+ return result;
+}
+
+void ClearAccessibilityRelations(Toolkit::Control control)
+{
+ GetControlImplementation(control).mAccessibilityRelations.clear();
+}
+
+void AppendAccessibilityAttribute(Toolkit::Control control, const std::string& key, const std::string& value)
+{
+ GetControlImplementation(control).AppendAccessibilityAttribute(key, value);
+}
+
+void RemoveAccessibilityAttribute(Toolkit::Control control, const std::string& key)
+{
+ GetControlImplementation(control).RemoveAccessibilityAttribute(key);
+}
+
+void ClearAccessibilityAttributes(Toolkit::Control control)
+{
+ GetControlImplementation(control).ClearAccessibilityAttributes();
+}
+
+void SetAccessibilityReadingInfoType(Toolkit::Control control, const Dali::Accessibility::ReadingInfoTypes types)
+{
+ GetControlImplementation(control).SetAccessibilityReadingInfoType(types);
+}
+
+Dali::Accessibility::ReadingInfoTypes GetAccessibilityReadingInfoType(Toolkit::Control control)
+{
+ return GetControlImplementation(control).GetAccessibilityReadingInfoType();
+}
+
+bool ClearAccessibilityHighlight(Toolkit::Control control)
+{
+ return GetControlImplementation(control).GetAccessibleObject()->ClearHighlight();
+}
+
+bool GrabAccessibilityHighlight(Toolkit::Control control)
+{
+ return GetControlImplementation(control).GetAccessibleObject()->GrabHighlight();
+}
+
+Dali::Accessibility::States GetAccessibilityStates(Toolkit::Control control)
+{
+ return GetControlImplementation(control).GetAccessibleObject()->GetStates();
+}
+
+void NotifyAccessibilityStateChange(Toolkit::Control control, Dali::Accessibility::States states, bool recurse)
+{
+ GetControlImplementation(control).GetAccessibleObject()->NotifyAccessibilityStateChange(std::move(states), recurse);
+}
+