GNOME Bugzilla – Bug 632058
Search results in TreeViews aren't spoken
Last modified: 2018-02-08 12:56:55 UTC
Created attachment 172263 [details] [review] [PATCH] Speek search results in GtkTreeView widgets. If you start searching in a TreeView with entery the keyword(s) the search results aren't spoken. I'm attaching a patch that solves this problem. But I don't know if this fix creates a new problem. Currently I can't find one. Steps to Reproduce: 1) Open a window/dialog that is using a GtkTreeView widget to store data. 2) Enter a search term/char and use up/down arrow keys. Actual Results: No results are spoken. Expected Results: The current search result should be spoken.
Marcus, I tryed your patch, your patch is fantasticc. I see only one problem yet: If I try searching a list with one letter, and press down arrow keys, if the caret jump the last filtered item and I press again the Down arrow key, Orca says: Not selected Selected. Can you verify this issue? This is not true if I press up arrow keys, and the caret go to top of the filtered list. Attila
Created attachment 172270 [details] This debug.out file possible show what the problem. Marcus, I sending a debug.out file. Hungarian labels now not interesting, the "nincs kijelölve" text means "not selected", the "kijelölve" text means "selected" texts if I have the end of search results and press again Down arrow key. This simple list is a Zenity generated one column list. Attila
Created attachment 172485 [details] [review] [PATCH] Speek search results in GtkTreeView widgets. I have removed some lines from default.py. Please try if this doesn't break something. I haven't found differences. But this isn't the final patch. If you use the object navigator with Orca+Ctrl+F8 search results aren't spoken again. :-( Only search results in lists are spoken. With trees it's the same as before.
Marcus, my wroted problem is solwed, Thank you. Attila
Created attachment 172539 [details] [review] [PATCH] Speek search results in GtkTreeView widgets. This patch solves the bug for lists and trees. But Attila, I have to remove the selected/unselected fix. Because those lines was added to solve #519564. If you press the down arrow key Gtk+/Gail/what ever emmits the object:state-changed:selected signal twice: object:state-changed:selected(0, 0, None) source: [table cell | Google-Suche Knopf] host_application: [application | orca] object:state-changed:selected(1, 0, None) source: [table cell | Google-Suche Knopf] host_application: [application | orca] And that's clearly a bug. Because there isn't a state that was changed.
Review of attachment 172539 [details] [review]: Thanks for doing this Marcus. I am concerned about the potential for side effects. In particular: if not event.source.getState().contains(pyatspi.STATE_FOCUSED): - return + if not event.source.getRole() in [pyatspi.ROLE_TABLE, + pyatspi.ROLE_TREE_TABLE]: + return Basically, we expect to get object:active-descendant-changed events from two main AtkRoles: ATK_ROLE_TABLE and ATK_ROLE_TREE_TABLE. In other words, I believe the functional equivalent of your change is just to completely remove this check: if not event.source.getState().contains(pyatspi.STATE_FOCUSED): return That check is there because we get bogus events and we get irrelevant events (including object:active-descendant-changed) from tables and tree tables. Therefore, the fix for this bug will need to be one that identifies that we're in a search and that the search is what triggered the active-descendant-changed event.
Created attachment 173163 [details] [review] This version should solve Attila's problem I have applied your suggestion joanie and it works. The search results are spoken and I doesn't get Attila's 'selected'/'unselected' messages.
I have to take back what I've said. seledted/unselected is spoken beyond.
Review of attachment 173163 [details] [review]: The thing is.... MOST of the time, we don't want non-focused events spoken. That is why the check is present. Removing the check is not really the right way to solve this problem in my opinion; instead we should find a way to heuristically identify the one time we do want to speak this information.
It's interesting. If you use the search function in nautilus what is using a GtkIconView widget the focus signal is emmited. For a TreeView it's only object:state-changed:selected and object:active-descendant-changed. Any idea how to use this to identify the time where orca must speak? At the moment I haven't any idea. :-(
Created attachment 179224 [details] [review] Maybe the solution joanie, maybe I have found the solution. Can you please have a look on the patch? Thanks.
Marcus, when I type a search term, the first founded search result is spokened only if I press a down arrow and up arrow key. This is right? I tested for example with my HOME folder with press a letter with have more files and directoryes. For example my home folder have lot of l letter beginning folders. When I type l letter, not spokened the first founded result (Letöltések folder name). When I press a down arrow key and an up arrow key, I hear right the Letöltések folder name. Possible fix this? When I moving the searched results with arrow keys, all searched results is spokening right, but this is not true for example the #620331 bug added structural navigation list patch my system. When I ask links list with www.origo.hu/hirmondo webpage and type a search letter, I not hear the first founded link (autó named link name). This webpage only have two a beginning link: autó and a böngésző letöltése named links. I attaching a debug.out with showing this problem with last comment. Attila
Created attachment 179268 [details] Debug file with show a problem This debug.out show a problem with I described prewious comment. Reproducation steps to verify: 1. Open for example www.origo.hu/hirmondo webpage. 2. Ask links list with press Orca+Ctrl+F7 key. 3. Type for example a letter. You not will be hear the first founded search result (autó link) when end of the typing. This is first problem with need fixing. 4. Try move down arrow and Up arrow key the searched results. You newer will be hear the first founded result (autó link), only will be hear following link name: "A böngésző letöltése" Attila
Review of attachment 179224 [details] [review]: The real solution should be that ATs have a means to connect related objects and their events/signals. See, for instance bug 658148.