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
        2. main.cpp
          1 kB
        3. qt-bug.py
          0.7 kB

        Issue Links

          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