return deputy;
}
+static Eina_Bool
+_check_chain_end_with_attribute(Eo *obj, unsigned char forward)
+{
+ Eina_List *attrs, *l;
+ Elm_Atspi_Attribute *attr;
+ eo_do(obj, attrs = elm_interface_atspi_accessible_attributes_get());
+ if (!attrs)
+ return EINA_FALSE;
+ EINA_LIST_FOREACH(attrs, l, attr)
+ {
+ if (!strcmp(attr->key, "relation_chain_end"))
+ {
+ if (((!strcmp(attr->value, "prev,end")) && forward == 0) || ((!strcmp(attr->value, "next,end")) && forward == 1) || (!strcmp(attr->value, "prev,next,end")))
+ {
+ elm_atspi_attributes_list_free(attrs);
+ return EINA_TRUE;
+ }
+ }
+ }
+ elm_atspi_attributes_list_free(attrs);
+ return EINA_FALSE;
+}
+
static void *_calculate_neighbor_impl(accessibility_navigation_pointer_table *table, void *root, void *start, unsigned char forward, GetNeighborSearchMode search_mode)
{
+ if (start && _check_chain_end_with_attribute(start, forward)) return start;
if (root && _object_is_defunct(table, root)) return NULL;
if (start && _object_is_defunct(table, start))
{