Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-128558

QTreeWidget creates new accessible QTreeWidgetItems each time the child at index is retrieved

    XMLWordPrintable

Details

    • Linux/Wayland, Linux/X11
    • 3cfabf92b (dev), 77b8cd0a4 (6.8), 37bafaf06 (6.7)

    Description

      Steps to reproduce:

      1. Launch the attached test case (qt-bug.py)
      2. Launch the attached accessible event listener (child-at-index.py) in a terminal
      3. In the test case, expand "Root" and arrow up and down in the tree

      Expected results: No errors would be printed by the listener.

      Actual results: Errors are printed by the listener.

      Given an accessible object "obj", `obj.parent[obj.getIndexInParent()]` should return `obj`; not a clone of that object. That's not the case with QTreeWidget.

      The Orca screen reader (which I maintain) makes decisions about what to speak and display in braille that depend on whether or not a given object is the current object of interest/focus. Orca makes that determination via a simple equality check. That check is failing because of this bug.

      In earlier versions of Orca, Orca had heuristics which attempted to determine if two objects were functionally the same thing by comparing roles, names, descriptions, paths, bounding boxes, etc. That work, despite being quite thorough, still had false positives. And it was not performant. Therefore Orca doesn't do that any more.

      Attachments

        1. child-at-index.py
          0.8 kB
          Joanmarie Diggs
        2. main.cpp
          1 kB
          Michael Weghorn
        3. qt-bug.py
          0.7 kB
          Joanmarie Diggs
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qt.team.quick.subscriptions Qt Quick and Widgets Team
            joanmarie Joanmarie Diggs
            Votes:
            3 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes