atspi: not accept redundant leaf object 80/163680/1 accepted/tizen/4.0/unified/20171218.071951 submit/tizen_4.0/20171214.114255
authorShinwoo Kim <cinoo.kim@samsung.com>
Fri, 8 Dec 2017 07:54:54 +0000 (16:54 +0900)
committerShinwoo Kim <cinoo.kim@samsung.com>
Wed, 13 Dec 2017 01:50:55 +0000 (10:50 +0900)
An object which role is ELM_ATSPI_ROLE_REDUNDANT_OBJECT, has been acceptable
so far regardless its children. So it was possible to find its children.
But it does not make sense to accept ELM_ATSPI_ROLE_REDUNDANT_OBJECT object if
it does not have children.

There was an issue on Browser application because we accepted REDUNDANT leaf
object. There is a button which role is ELM_ATSPI_ROLE_REDUNDANT_OBJECT, this
button would be used for conveying focus event to embedded web page.
The button was accepted, so it was not possible grab an object on web page.

Please refer to following part of accessibility tree. It is not possible to
get Elm_Atspi_Ewk_Wrapper, if Elm_Button is accepted for "GetNavigableAtPoint"

Elm_Layout
     - Elm_Button [redundant object][0,148,1080,1604]
     - Elm_Atspi_Ewk_Wrapper [embedded][0,148,1080,1604]

Change-Id: I355a913314d0132e0b0e0f7779e1d7c0b66b25db

src/lib/elm_widget.c

index cd93ca1..3e26ecb 100644 (file)
@@ -7427,6 +7427,7 @@ _acceptable_child_is(Eo *obj)
      {
        case ELM_ATSPI_ROLE_IMAGE:
        case ELM_ATSPI_ROLE_ICON:
+       case ELM_ATSPI_ROLE_REDUNDANT_OBJECT:
          /* remove unacceptable leaf node */
          eo_do(obj, children = elm_interface_atspi_accessible_children_get());
          if (!children) return EINA_FALSE;