[libreoffice-accessibility] Conform.

2024-06-11 Thread Nikhil Kukde

-- 
To unsubscribe e-mail to: accessibility+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/accessibility/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [orca] Re: [libreoffice-accessibility] menu navigation issue

2024-06-11 Thread Michael Weghorn

On 2024-06-11 14:29, Jason J.G. White wrote:


On 11/6/24 07:38, Joanmarie Diggs wrote:

BTW, are you using Wayland and gnome-shell? If so, it sounds like
https://gitlab.gnome.org/GNOME/mutter/-/issues/3267. Although that was
fixed four months ago.


Yes, it's GNOME-Shell under Wayland.

I just tried it again under a GNOME-Shell X11 session, and I am unable 
to reproduce the bug there.


The version of Mutter is 46.2.


I'm using KDE Plasma Wayland (plasma-workspace-wayland 4:5.27.11.1-1),
can confirm that there the problem also isn't reproducible any more when 
running on X11/XWayland by setting environment variable `GDK_BACKEND=x11`.


--
To unsubscribe e-mail to: accessibility+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/accessibility/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [orca] Re: [libreoffice-accessibility] menu navigation issue

2024-06-11 Thread Jason J.G. White


On 11/6/24 07:38, Joanmarie Diggs wrote:

BTW, are you using Wayland and gnome-shell? If so, it sounds like
https://gitlab.gnome.org/GNOME/mutter/-/issues/3267. Although that was
fixed four months ago.


Yes, it's GNOME-Shell under Wayland.

I just tried it again under a GNOME-Shell X11 session, and I am unable 
to reproduce the bug there.


The version of Mutter is 46.2.



--
To unsubscribe e-mail to: accessibility+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/accessibility/
Privacy Policy: https://www.documentfoundation.org/privacy


Re: [orca] Re: [libreoffice-accessibility] menu navigation issue

2024-06-11 Thread Joanmarie Diggs
Hey Jason.

I'm not able to reproduce this. That said, when you're interacting with
an apps UI (e.g. navigating in menus), Orca is simply presenting the new
location based on the events it receives. So I don't think it's an Orca
issue.

BTW, are you using Wayland and gnome-shell? If so, it sounds like
https://gitlab.gnome.org/GNOME/mutter/-/issues/3267. Although that was
fixed four months ago.

--joanie

On Tue, 2024-06-11 at 06:24 -0400, Jason J.G. White wrote:
> Adding the Orca list to this discussion, as the bug may be a GTK or Orca 
> issue, as Michael helpfully details below.
> 
> On 11/6/24 00:39, Michael Weghorn wrote:
> > On 2024-06-10 14:14, Jason J.G. White wrote:
> > > I noted the following on the Orca mailing list recently, but others 
> > > were unable to reproduce it.
> > > 
> > > The issue below is not a priority for me at the moment, but I'm 
> > > reporting it here in case it can be resolved to prevent others from 
> > > encountering it.
> > > 
> > > Environment: LibreOffice 24.2.4, GNOME 46.2, recent Orca version from 
> > > the main Git branch, Arch Linux distribution. I also tried the 
> > > version of LibreOffice available as a flatpak, with the same results.
> > > 
> > > Steps to Reproduce
> > > 
> > > 1. From LibreOffice Calc or LibreOffice Writer (both tested), F10 to 
> > > move focus to the menus. The File menu item is in focus, and Orca 
> > > presents it.
> > > 
> > > 2. Right-Arrow.
> > > 
> > > Expected Result: focus should move to the Edit menu, and subsequent 
> > > left/right-arrow navigation should move among the top-level menu items.
> > > 
> > > Actual result: focus seems to move back into the document. I am 
> > > unable to navigate the menus reliably. Using the Alt key with various 
> > > letters does bring focus to the respective top-level menu items.
> > > 
> > 
> > I can reproduce something similar with gtk3-demo and Orca git main, so 
> > it looks like an issue in either GTK or Orca to me, not in LibreOffice:
> > 
> > 1) start gtk3-demo
> > 2) start the "Menus" sample app
> > 3) press F10 to put focus on the menu (the first item: "test line")
> > 4) press right arrow
> > 
> > Actual result:
> > 
> > Keyboard focus visually moves to the next menu item "foo" as expected 
> > (visually), but Orca announces "Flip, push button" (which is the 
> > button in the sample program that has focus once the menu gets 
> > collapsed again)
> > 
> > Expected result: The newly focused menu item should get announced: 
> > "foo, menu"
> > 
> > This isn't 100% reproducible: When further moving back and forth 
> > between the menu items using the arrow keys, announcement is usually OK.
> > 
> > Versions used, on Debian testing:
> > 
> > libgtk-3-0:amd64 3.24.41-1
> > Orca git main as of commit 9b8d9ffd8793bf3a1176fed77b4ce283a43cefe8
> > 
> ___
> Orca mailing list
> o...@freelists.org
> https://www.freelists.org/list/orca
> General information: https://orca.gnome.org
> Orca documentation (English): https://gnome.pages.gitlab.gnome.org/orca/help/
> Orca documentation (translations): https://gnome.pages.gitlab.gnome.org/orca/


-- 
To unsubscribe e-mail to: accessibility+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/accessibility/
Privacy Policy: https://www.documentfoundation.org/privacy


[libreoffice-accessibility] Re: [a11y] LibreOffice Calc exposes 2^31 children, freezes on `GetChildren`

2024-06-11 Thread Michael Meeks

Hi Michael,

Some great questions and points here; forgive my intruding into the 
space again =)

On 11/06/2024 08:55, Michael Weghorn wrote:
Limiting children to the to "close to visible" cells sounds like a 
potential approach.


For a performant, caching AT I would argue this is arguably the only 
feasible option =) But ... the navigation API I mentioned is important.

However, that would IMHO still need a clear specification on how to 
implement it and how all relevant AT use cases are covered.


Agreed =)


Some aspects/questions that might need some further consideration:

* How do other interfaces (like AT-SPI Table, TableCell and Selection) 
expose information? Does e.g. the table report it only has 50 rows and 
30 columns if that's what's visible on screen? Does cell Q227 report a 
row and column index of 0 if it's the first one in the visible area?


I think exposing the whole thing through the Table interface may make 
some sense; it is clearly a crazy set of cells - and think it's reasonable to 
blame ATs if they use this interface for doing something silly.

* In some cases, off-screen children are of interest, e.g. if they are 
contained in the current selection. How should that be handled? (e.g. 
how does the screen reader announce something like "cell A1 to C100 
selected" if cell A1 "doesn't exist" because it's off-screen?


Right; so - I mentioned "near to the screen" - by near; I mean we will probably want 
a number of things that are navigationally close: eg. "next heading" or somesuch - to lurk 
around as real & tracked peers. The content of the Navigator headings should prolly always be 
present in a writer document's object hierarcy IMHO. That should let ATs very quickly enumerate 
headings, jump focus to them with a simple API etc.

* Exposing and caching all cells based on visibility means that whenever 
the view port changes, this needs to be actively updated (push 
approach), which comes with a cost (that I can't estimate right now).
(We currently have that for other modules, see e.g. comment [3] for 


That is the case; we do that for writer on page-down of course.

* How do screen readers implement features like "read the whole row"? 


This comes down to the navigation API I mentioned: having a good API to allow 
continuous screen-reading of large data-sets - with caching pre-loading & fetching along 
eg. a selection is really useful. Current writer behavior is far from optimal since you need 
to do something odd to get a simple navigation such as "next page" IIRC.

Do 
they just read the part of the row that's currently visible on screen 
and leave out the rest? Or do they somehow implement some extra logic

to  retrieve the remaining content?


Extra navigation / enumeration logic I think.

* Is navigating to an "arbitrary" cell still possible via a11y API, e.g. 
if some screen reader specific table navigation command implements "jump 
to the first/last cell in the table" or "select the current row")?


There should be a widget for this at the top of calc to jump to and 
select cells - if I were customizing an AT I'd use that.

though of course it is then ideal to have some nice navigation API 
support wrapped around that


What kind of API does that refer to? Existing or new API on the
platform a11y level that LO (or the toolkits it uses) would then
implement, or something else? Do you have anything particular in mind?


I was actually somewhat optimistic about the UIA API Navigation API 
conceptually:

https://learn.microsoft.com/en-us/windows/win32/api/uiautomationcore/nf-uiautomationcore-irawelementproviderfragment-navigate

Although - I'd really suggest that a11y doesn't work against the 
application, and if navigating - it should allow the AT to scroll the actual 
visible/view-port to match what is being interrogated.

I've been told repeatedly that the fact that Writer doesn't expose 
off-screen document content is indeed a problem as it breaks features 
like browse mode/document navigation in NVDA or Orca (see e.g. 
tdf#35652, tdf#137955, tdf#91739, tdf#96492).


I'm not convinced that "can't see it in Accerssisor" is a real problem; 
what we all want are fast, accurate and helpful ATs for the impaired. Perhaps I 
mis-understand, but browse-mode seems conceptually similar to navigating by scrolling the 
current window down a document - without changing the cursor/document focus.

to look into at some point. My idea so far is to also expose pages on 
the a11y level, which should avoid the problem of a single object (the 
document) having an enormous amount of children due to that.

If there any general concerns about that, please raise them. :-)


I guess this moves the problem to re-pagination; where we can get 300+ 
pages re-built for the sake of moving a single paragraph; then again - I guess 
if we are notifying changes in position on large sets of accessible 

Re: [libreoffice-accessibility] menu navigation issue

2024-06-11 Thread Jason J.G. White
Adding the Orca list to this discussion, as the bug may be a GTK or Orca 
issue, as Michael helpfully details below.


On 11/6/24 00:39, Michael Weghorn wrote:

On 2024-06-10 14:14, Jason J.G. White wrote:
I noted the following on the Orca mailing list recently, but others 
were unable to reproduce it.


The issue below is not a priority for me at the moment, but I'm 
reporting it here in case it can be resolved to prevent others from 
encountering it.


Environment: LibreOffice 24.2.4, GNOME 46.2, recent Orca version from 
the main Git branch, Arch Linux distribution. I also tried the 
version of LibreOffice available as a flatpak, with the same results.


Steps to Reproduce

1. From LibreOffice Calc or LibreOffice Writer (both tested), F10 to 
move focus to the menus. The File menu item is in focus, and Orca 
presents it.


2. Right-Arrow.

Expected Result: focus should move to the Edit menu, and subsequent 
left/right-arrow navigation should move among the top-level menu items.


Actual result: focus seems to move back into the document. I am 
unable to navigate the menus reliably. Using the Alt key with various 
letters does bring focus to the respective top-level menu items.




I can reproduce something similar with gtk3-demo and Orca git main, so 
it looks like an issue in either GTK or Orca to me, not in LibreOffice:


1) start gtk3-demo
2) start the "Menus" sample app
3) press F10 to put focus on the menu (the first item: "test line")
4) press right arrow

Actual result:

Keyboard focus visually moves to the next menu item "foo" as expected 
(visually), but Orca announces "Flip, push button" (which is the 
button in the sample program that has focus once the menu gets 
collapsed again)


Expected result: The newly focused menu item should get announced: 
"foo, menu"


This isn't 100% reproducible: When further moving back and forth 
between the menu items using the arrow keys, announcement is usually OK.


Versions used, on Debian testing:

libgtk-3-0:amd64 3.24.41-1
Orca git main as of commit 9b8d9ffd8793bf3a1176fed77b4ce283a43cefe8



--
To unsubscribe e-mail to: accessibility+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/accessibility/
Privacy Policy: https://www.documentfoundation.org/privacy


[libreoffice-accessibility] Re: [a11y] LibreOffice Calc exposes 2^31 children, freezes on `GetChildren`

2024-06-11 Thread Michael Weghorn

On 2024-06-11 10:48, Michael Weghorn wrote:

On 2024-06-11 10:07, Samuel Thibault wrote:

Michael Weghorn, le mar. 11 juin 2024 07:55:47 +, a ecrit:
The feedback I've received from a11y experts so far is that 
off-screen doc
content should *generally* be exposed on the a11y level, and limiting 
Calc

to not do that with its huge amount of table cells is meant to be an
exception to the rule in that regard (see e.g. the discussion in [2] and
tdf#156657).


I guess we can have the same kind of issue with a >>100 pages writer
document?


I would expect that there should still be way less objects than for the 
Calc case and the child count of each individual object will be lower 
(when Writer pages are reflected in the a11y tree, which they currently 
are not).


In a first quick experiment with a local WIP branch, nothing was 
obviously broken right away when opening a ~800 pages Writer doc (but 
just containing simple text, nothing more complex) and moving around a 
bit while Orca was running or inspecting the tree using Accerciser.


But of course, if some AT (or some underlying library) recursively 
queries and caches the whole tree and very complex documents are 
involved, then similar performance issues seem possible. (macOS and Win 
also need explicit testing, of course.)


To me, this whole topic seems to be basically the same as the 
anticipated and still-to-be-solved performance aspect with the push 
approach that the alleged AT-SPI2 successor (codename "Newton") already 
mentions in its concept, see e.g.

https://gitlab.gnome.org/GNOME/at-spi2-core/-/issues/142

Hopefully, a clear concept will come out of the work on the new protocol.

Otherwise, as long as the underlying platform a11y protocols are 
pull-based and given the input I've received up to this point, I tend to 
think that ATs actively querying the tree are primarily responsible for 
limiting that to a reasonable amount of information, but I'm thankful 
for any guidance here...


Technically, platform-specific handling of how much information is 
exposed would be possible, obviously adding a certain amount of 
complexity and maintenance burden.




PS: CC'ing the accessibility mailing list, where people with more 
insights on the AT side are subscribed. Input welcome!

For reference: Thread starts here:
https://lists.freedesktop.org/archives/libreoffice/2024-June/092039.html


PPS: Now actually CC'ing the accessibility mailing list as mentioned in 
my previous email...


--
To unsubscribe e-mail to: accessibility+unsubscr...@global.libreoffice.org
Problems? https://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: https://wiki.documentfoundation.org/Netiquette
List archive: https://listarchives.libreoffice.org/global/accessibility/
Privacy Policy: https://www.documentfoundation.org/privacy