atspi: not accept redundant leaf object 79/163279/1
authorShinwoo Kim <cinoo.kim@samsung.com>
Fri, 8 Dec 2017 07:54:54 +0000 (16:54 +0900)
committerShinwoo Kim <cinoo.kim@samsung.com>
Fri, 8 Dec 2017 07:54:54 +0000 (16:54 +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 ad09714cfb405abeeda6ec61b7f7e9a44d7ea132..019011aeaaada0406f23d43501fe57bc6db80fde 100644 (file)
@@ -7377,6 +7377,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;