If there is a scrollable widget, requesting its text appears to give the entire text, not only what's on the screen. (I think this is different from e.g. Firefox).
As a result, qfy will spend time parsing text which will not be displayed, and it'll become slower and slower as a chat log grows.
getBoundedRanges should be able to return the portion of visible text, but it's unimplemented in qt-at-spi
Bisecting using getRangeExtents to find which portion of text is visible seems like it should work, but the implementation of this seems itself to be unusably slow.
Observed in Konversation (Qt5):
If there is a scrollable widget, requesting its text appears to give the entire text, not only what's on the screen. (I think this is different from e.g. Firefox).
As a result, qfy will spend time parsing text which will not be displayed, and it'll become slower and slower as a chat log grows.
It should be worked around & made faster somehow.