[a11y] LibreOffice Calc exposes 2^31 children, freezes on `GetChildren`

Michael Meeks michael.meeks at collabora.com
Mon Jun 10 14:37:19 UTC 2024


Hi all,

On 07/06/2024 14:20, Luuk van der Duim wrote:
> Thanks for your thoughts! I will gladly expand a bit.

	Let me add my 2 cents; a spreadsheet can have 10^20 rows, and 2^14 
columns - that's 34 bits already - so even in the case that you thought 
you wanted to iterate them all over a remote bus - you don't.

	Indeed - the whole idea is madness; there was this manages-descendants 
hack in the past to try to tag such widgets to avoid iterating them.

	My attempts to encourage people to expose only the visible (or near 
visible) items in the past were not that productive; but I still firmly 
believe this is the only sensible way to do this.

> What any screen-reader/AT would like is to offer best response times to 
> users by caching objects up-front to minimize IPC round trips between AT 
> and application.

	Definitely!.

 > or to the visible and showing objects only.

	This is IMHO the only sensible approach; thanks for suggesting it; 
though of course it is then ideal to have some nice navigation API 
support wrapped around that - although ... we have a lot of well-known 
navigation keyboard shortcuts in-place of course.

> Could LibreOffice please limit the reply-message to something reasonably 
> sized? (Or at least legally sized?) This is currently a bit of a 
> foot-gun with a public interface.

	Not clear to me how LibreOffice can determine the byte size of the dbus 
message that is serialized from the data we expose ;-) and this is 
before we get into the "whole court transcript in one paragraph" horrors 
that plague certain types of document ;-)

	Best of luck with this; I would really recommend that we focus on 
exposing only the data that is either visible - or better close to 
visible (ie. within a page-up/page-down / etc. around the document), 
with perhaps an extension of peers for eg. interesting headings in the 
document so these can be cached and enumerated (ie. what you see in the 
navigator).

	Oddly, Writer - which could prolly cope rather better with exposing all 
paragraphs set out by cropping to the visible content, whereas Calc 
where this was always a silly idea tried to expose everything ;-)

	Anyhow, just my 2 cents =)

	ATB,

		Michael.

-- 
michael.meeks at collabora.com <><, CEO Collabora Productivity
(M) +44 7795 666 147 - timezone usually UK / Europe


More information about the LibreOffice mailing list