kimcinoo pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2f6e28881ec6f7f4c3157f7bb4202f37ded06aa7

commit 2f6e28881ec6f7f4c3157f7bb4202f37ded06aa7
Author: Shinwoo Kim <cinoo....@samsung.com>
Date:   Wed Sep 6 19:54:59 2017 +0900

    elementary: atspi accessible name uses plain text
    
    The markup information of accessible name is not necessary.
---
 src/lib/elementary/elc_multibuttonentry.c |  8 +++----
 src/lib/elementary/elm_entry.c            |  4 ++--
 src/lib/elementary/elm_index.c            |  2 +-
 src/lib/elementary/elm_list.c             |  2 +-
 src/lib/elementary/elm_toolbar.c          |  2 +-
 src/lib/elementary/elm_widget.c           | 38 +++++++++++++++++++++++++------
 src/lib/elementary/elm_widget.h           |  2 ++
 7 files changed, 42 insertions(+), 16 deletions(-)

diff --git a/src/lib/elementary/elc_multibuttonentry.c 
b/src/lib/elementary/elc_multibuttonentry.c
index f4b00a597d..7e2883c89e 100644
--- a/src/lib/elementary/elc_multibuttonentry.c
+++ b/src/lib/elementary/elc_multibuttonentry.c
@@ -2078,14 +2078,14 @@ 
_elm_multibuttonentry_elm_interface_atspi_accessible_children_get(Eo *obj, Elm_M
 }
 
 EOLIAN static const char*
-_elm_multibuttonentry_item_elm_interface_atspi_accessible_name_get(Eo *obj, 
Elm_Multibuttonentry_Item_Data *item)
+_elm_multibuttonentry_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, 
Elm_Multibuttonentry_Item_Data *item)
 {
    const char *ret;
-   ret = elm_interface_atspi_accessible_name_get(efl_super(obj, 
ELM_MULTIBUTTONENTRY_ITEM_CLASS));
+   ret = elm_interface_atspi_accessible_name_get(efl_super(eo_it, 
ELM_MULTIBUTTONENTRY_ITEM_CLASS));
    if (ret) return ret;
 
-   const char *txt = elm_object_part_text_get(VIEW(item), "elm.btn.text");
-   return txt;
+   ret = elm_object_part_text_get(VIEW(item), "elm.btn.text");
+   return _elm_widget_item_accessible_plain_name_get(eo_it, ret);
 }
 
 EOLIAN static Elm_Atspi_State_Set
diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c
index b317e77124..25aa2ba7b5 100644
--- a/src/lib/elementary/elm_entry.c
+++ b/src/lib/elementary/elm_entry.c
@@ -6041,11 +6041,11 @@ _elm_entry_elm_interface_atspi_accessible_name_get(Eo 
*obj, Elm_Entry_Data *sd)
 
    if (sd->password) return NULL;
 
-   name = _elm_util_mkup_to_text(elm_entry_entry_get(obj));
+   name = _elm_widget_accessible_plain_name_get(obj, elm_entry_entry_get(obj));
    if (name && strncmp("", name, 1)) return name;
 
    const char *ret = edje_object_part_text_get(sd->entry_edje, "elm.guide");
-   return _elm_util_mkup_to_text(ret);
+   return _elm_widget_accessible_plain_name_get(obj, ret);
 }
 
 /* Efl.Part begin */
diff --git a/src/lib/elementary/elm_index.c b/src/lib/elementary/elm_index.c
index 85e2b99b42..d21f3b5e5f 100644
--- a/src/lib/elementary/elm_index.c
+++ b/src/lib/elementary/elm_index.c
@@ -1739,7 +1739,7 @@ 
_elm_index_item_elm_interface_atspi_accessible_name_get(Eo *eo_it, Elm_Index_Ite
    name = elm_interface_atspi_accessible_name_get(efl_super(eo_it, 
ELM_INDEX_ITEM_CLASS));
    if (name) return name;
 
-   return data->letter;
+   return _elm_widget_item_accessible_plain_name_get(eo_it, data->letter);
 }
 
 EOLIAN static const Elm_Atspi_Action*
diff --git a/src/lib/elementary/elm_list.c b/src/lib/elementary/elm_list.c
index 8181dd9396..1a52decb02 100644
--- a/src/lib/elementary/elm_list.c
+++ b/src/lib/elementary/elm_list.c
@@ -2129,7 +2129,7 @@ _elm_list_item_elm_interface_atspi_accessible_name_get(Eo 
*eo_it, Elm_List_Item_
    const char *ret;
    ret = elm_interface_atspi_accessible_name_get(efl_super(eo_it, 
ELM_LIST_ITEM_CLASS));
    if (ret) return ret;
-   return data->label;
+   return _elm_widget_item_accessible_plain_name_get(eo_it, data->label);
 }
 
 static char *
diff --git a/src/lib/elementary/elm_toolbar.c b/src/lib/elementary/elm_toolbar.c
index b947e86116..cf9bc7210c 100644
--- a/src/lib/elementary/elm_toolbar.c
+++ b/src/lib/elementary/elm_toolbar.c
@@ -3997,7 +3997,7 @@ 
_elm_toolbar_item_elm_interface_atspi_accessible_name_get(Eo *eo_item, Elm_Toolb
    const char *ret;
    ret = elm_interface_atspi_accessible_name_get(efl_super(eo_item, 
ELM_TOOLBAR_ITEM_CLASS));
    if (ret) return ret;
-   return item->label;
+   return _elm_widget_item_accessible_plain_name_get(eo_item, item->label);
 }
 
 EOLIAN static Elm_Atspi_State_Set
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 523a34eb2e..f1f0fb217b 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -5095,6 +5095,35 @@ _elm_widget_item_onscreen_is(Elm_Object_Item *item)
    return EINA_TRUE;
 }
 
+const char*
+_elm_widget_accessible_plain_name_get(Evas_Object *obj, const char* name)
+{
+   char *accessible_plain_name;
+
+   API_ENTRY return NULL;
+
+   accessible_plain_name = _elm_util_mkup_to_text(name);
+   eina_stringshare_del(sd->accessible_name);
+   sd->accessible_name =  eina_stringshare_add(accessible_plain_name);
+   free(accessible_plain_name);
+   return sd->accessible_name;
+}
+
+const char*
+_elm_widget_item_accessible_plain_name_get(Elm_Object_Item *item, const char* 
name)
+{
+   char *accessible_plain_name;
+
+   Elm_Widget_Item_Data *id = efl_data_scope_get(item, ELM_WIDGET_ITEM_CLASS);
+   if (!id) return NULL;
+
+   accessible_plain_name = _elm_util_mkup_to_text(name);
+   eina_stringshare_del(id->accessible_name);
+   id->accessible_name =  eina_stringshare_add(accessible_plain_name);
+   free(accessible_plain_name);
+   return id->accessible_name;
+}
+
 EOLIAN static Elm_Atspi_State_Set
 _elm_widget_item_elm_interface_atspi_accessible_state_set_get(Eo *eo_item,
                                                               
Elm_Widget_Item_Data *item EINA_UNUSED)
@@ -6298,10 +6327,9 @@ _elm_widget_elm_interface_atspi_component_focus_grab(Eo 
*obj, Elm_Widget_Smart_D
 }
 
 EOLIAN static const char*
-_elm_widget_elm_interface_atspi_accessible_name_get(Eo *obj EINA_UNUSED, 
Elm_Widget_Smart_Data *_pd)
+_elm_widget_elm_interface_atspi_accessible_name_get(Eo *obj, 
Elm_Widget_Smart_Data *_pd EINA_UNUSED)
 {
    const char *ret, *name;
-   char *accessible_name;
    name = elm_interface_atspi_accessible_name_get(efl_super(obj, 
ELM_WIDGET_CLASS));
 
    if (name) return name;
@@ -6309,11 +6337,7 @@ _elm_widget_elm_interface_atspi_accessible_name_get(Eo 
*obj EINA_UNUSED, Elm_Wid
    ret = elm_object_text_get(obj);
    if (!ret) return NULL;
 
-   accessible_name = _elm_util_mkup_to_text(ret);
-   eina_stringshare_del(_pd->accessible_name);
-   _pd->accessible_name =  eina_stringshare_add(accessible_name);
-   free(accessible_name);
-   return _pd->accessible_name;
+   return _elm_widget_accessible_plain_name_get(obj, ret);
 }
 
 EOLIAN static Eina_List*
diff --git a/src/lib/elementary/elm_widget.h b/src/lib/elementary/elm_widget.h
index 8f3eae2ee0..0e51f610f2 100644
--- a/src/lib/elementary/elm_widget.h
+++ b/src/lib/elementary/elm_widget.h
@@ -751,6 +751,8 @@ EAPI void             elm_widget_tree_dump(const 
Evas_Object *top);
 EAPI void             elm_widget_tree_dot_dump(const Evas_Object *top, FILE 
*output);
 EAPI Eina_Bool        _elm_widget_onscreen_is(Evas_Object *widget);
 EAPI Eina_Bool        _elm_widget_item_onscreen_is(Elm_Object_Item *item);
+const char*           _elm_widget_accessible_plain_name_get(Evas_Object *obj, 
const char* name);
+const char*           
_elm_widget_item_accessible_plain_name_get(Elm_Object_Item *item, const char* 
name);
 
 #define ELM_WIDGET_DATA_GET_OR_RETURN(o, ptr, ...)   \
   Elm_Widget_Smart_Data *ptr;                        \

-- 


Reply via email to