Add accessibility object on widget load fail text object 58/179458/6
authorChangwoo Kim <cw2010.kim@samsung.com>
Fri, 18 May 2018 02:47:00 +0000 (11:47 +0900)
committerHyunho Kang <hhstark.kang@samsung.com>
Fri, 30 Nov 2018 05:54:44 +0000 (05:54 +0000)
It makes screen reader read the error message

Change-Id: I02c514a7b4777d302d05e3ce76311bd02438fdd5
Signed-off-by: Changwoo Kim <cw2010.kim@samsung.com>
widget_viewer_evas/src/widget_viewer_evas.c

index b20848f036fcaed92c3554cfcccfbb917077ecdb..3610b429c29424f0bb5cbd0a35d37ab937b6aee6 100644 (file)
@@ -169,6 +169,7 @@ struct widget_info {
        GQueue *event_queue;
 
        Evas_Object *layout;
+
        bool is_created;
        GQueue *pending_queue;
        bool is_faulted;
@@ -576,14 +577,28 @@ static void __screen_connector_toolkit_evas_updated_cb(const char *appid, const
 /* LCOV_EXCL_START */
 static void __display_overlay_text(struct widget_info *info)
 {
+       Evas_Object *text_block;
+       Evas_Object *access_object;
+
        if (!info) {
                LOGE("Unable to get the info");
                return;
        }
        if (!info->disable_overlay) {
-               elm_object_part_text_set(info->layout, "text", T_("IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"));
+               elm_object_part_text_set(info->layout, "text",
+                               T_("IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"));
                elm_object_signal_emit(info->layout, "enable", "overlay,text");
                elm_object_signal_emit(info->layout, "disable", "preview");
+               text_block = (Evas_Object*)edje_object_part_object_get(
+                               elm_layout_edje_get(info->layout), "text");
+               if (text_block) {
+                       access_object = elm_access_object_register(
+                                       text_block, info->layout);
+                       elm_atspi_accessible_description_set(access_object,
+                                       T_("IDS_HS_BODY_UNABLE_TO_LOAD_DATA_TAP_TO_RETRY"));
+                       elm_atspi_accessible_reading_info_type_set(access_object,
+                                       ELM_ACCESSIBLE_READING_INFO_TYPE_DESCRIPTION);
+               }
        }
 }
 /* LCOV_EXCL_STOP */
@@ -1133,6 +1148,7 @@ static void __del_cb(void *data, Evas *e, Evas_Object *layout, void *event_info)
        int *cur_instance_cnt;
        char *widget_id;
        char *instance_id;
+       Evas_Object *text_block;
 
        LOGD("delete: layout(%p)", layout);
        aul_widget_write_log(LOG_TAG, "[%s:%d]  %s",
@@ -1142,6 +1158,10 @@ static void __del_cb(void *data, Evas *e, Evas_Object *layout, void *event_info)
        evas_info.widget_app_id = info->widget_id;
        evas_info.event = WIDGET_EVENT_CREATED;
 
+       text_block = (Evas_Object*)edje_object_part_object_get(elm_layout_edje_get(layout), "text");
+       if (text_block)
+               elm_access_object_unregister(text_block);
+
        __smart_callback_call(layout, WIDGET_SMART_SIGNAL_WIDGET_DELETED, &evas_info);
        evas_object_data_del(layout, WIDGET_INFO_TAG);
        info->layout = NULL;