From: Shinwoo Kim Date: Mon, 6 Nov 2017 12:04:13 +0000 (+0900) Subject: atspi: Use bottom up approach for PAGE_TAB X-Git-Tag: accepted/tizen/4.0/unified/20171124.063607~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F28%2F160428%2F1;p=platform%2Fupstream%2Felementary.git atspi: Use bottom up approach for PAGE_TAB The naviframe item is elm_layout, and its atspi role is ELM_ATSPI_ROLE_PAGE_TAB. The screen-reader could ask an object at point by using the naviframe item as a root object. In this case, elementary did not us bottom up approach. For the consistency, and to make it work better, This patch set is using the bottom up approach for the naviframe item. Change-Id: Icfe0791e340dac0c3998b56217fab8c34922cc5b --- diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index c017b28..14686f0 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -1932,7 +1932,7 @@ _elm_multibuttonentry_eo_base_constructor(Eo *obj, Elm_Multibuttonentry_Data *sd eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY), evas_obj_smart_callbacks_descriptions_set(_smart_callbacks), - elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_PANEL)); + elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_FILLER)); return obj; } diff --git a/src/lib/elm_dayselector.c b/src/lib/elm_dayselector.c index fce1b22..c6db977 100644 --- a/src/lib/elm_dayselector.c +++ b/src/lib/elm_dayselector.c @@ -465,7 +465,7 @@ _elm_dayselector_eo_base_constructor(Eo *obj, Elm_Dayselector_Data *_pd EINA_UNU eo_do(obj, evas_obj_type_set(MY_CLASS_NAME_LEGACY), evas_obj_smart_callbacks_descriptions_set(_smart_callbacks), - elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_PANEL)); + elm_interface_atspi_accessible_role_set(ELM_ATSPI_ROLE_FILLER)); return obj; } diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index bdfd08f..a60f264 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -7570,13 +7570,26 @@ static Eo *_item_at_point_get(Evas_Object *obj, int x, int y) EOLIAN static Eo * _elm_widget_elm_interface_atspi_component_accessible_at_point_get(Eo *obj, Elm_Widget_Smart_Data *_pd EINA_UNUSED, Eina_Bool screen_coords, int x, int y) { + Elm_Atspi_Role role; Eina_List *l; Evas_Object *stack_item; - if(strcmp("Elm_Win", eo_class_name_get(eo_class_get(obj))) && - strcmp("Elm_Popup", eo_class_name_get(eo_class_get(obj))) && - strcmp("Elm_Panel", eo_class_name_get(eo_class_get(obj)))) - return _accessible_at_point_top_down_get(obj, _pd, screen_coords, x, y); + eo_do(obj, role = elm_interface_atspi_accessible_role_get()); + + switch (role) + { + case ELM_ATSPI_ROLE_WINDOW: + case ELM_ATSPI_ROLE_INPUT_METHOD_WINDOW: + case ELM_ATSPI_ROLE_DIALOG: + case ELM_ATSPI_ROLE_PAGE_TAB: + case ELM_ATSPI_ROLE_POPUP_MENU: + case ELM_ATSPI_ROLE_PANEL: + DBG("Find accessible from bottom"); + break; + + default: + return _accessible_at_point_top_down_get(obj, _pd, screen_coords, x, y); + } _coordinate_system_based_point_translate(obj, screen_coords, &x, &y); @@ -7600,7 +7613,6 @@ _elm_widget_elm_interface_atspi_component_accessible_at_point_get(Eo *obj, Elm_W { Eina_Bool acceptable = EINA_FALSE; Eo *item_child; - Elm_Atspi_Role role; eo_do(smart_parent, role = elm_interface_atspi_accessible_role_get()); switch (role) {