Paragraphs in Writer, unlike text objects in other applications, toolkits, and browsers implement AtkSelection. According to these docs: https://docs.gtk.org/atk/iface.Selection.html > The ATK interface implemented by container objects whose > AtkObject children can be selected. > AtkSelection should be implemented by UI components with > children which are exposed by #atk_object_ref_child and > atk_object_get_n_children, if the use of the parent UI > component ordinarily involves selection of one or more> > of the objects corresponding to those AtkObject children - > for example, selectable lists. > Note that other types of “selection” (for instance text selection) > are accomplished a other ATK interfaces - AtkSelection is limited > to the selection/deselection of children. Michael: Please take a look. Thanks in advance!
(In reply to Joanmarie Diggs from comment #0) > Paragraphs in Writer, unlike text objects in other applications, toolkits, > and browsers implement AtkSelection. > > According to these docs: https://docs.gtk.org/atk/iface.Selection.html > > > The ATK interface implemented by container objects whose > > AtkObject children can be selected. > > > AtkSelection should be implemented by UI components with > > children which are exposed by #atk_object_ref_child and > > atk_object_get_n_children, if the use of the parent UI > > component ordinarily involves selection of one or more> > > of the objects corresponding to those AtkObject children - > > for example, selectable lists. > > > Note that other types of “selection” (for instance text selection) > > are accomplished a other ATK interfaces - AtkSelection is limited > > to the selection/deselection of children. As far as I can see, paragraphs currently support *both* kinds of selection: 1) Text selection is reported via the AT-SPI/ATK Text interface. 2) Paragraphs can also have children, e.g. an image (anchored as character and located inside of the paragraph), and that child can be selected (or not), and reports the "selected" state accordingly. @joanie: What's the recommended way to expose that on the a11y layer if not via the Selection interface?
I'm afraid my answer is that the hypertext and hyperlink interfaces should be implemented. Somewhere I swear there's a bug boiling down to "Orca doesn't announce an image when you arrow to it, or navigate by line." But I cannot find it at the moment. Anyhow.... A given child object (e.g. an image) would be represented by an embedded object character in the parent (e.g. the paragraph). When that image is selected, it's corresponding embedded object character would be selected. Then Orca would need to do some additional work (the work it already does for web content, but not yet for LO content) to present the right information. Note that the additional work Orca does for web content depends upon the use of both AtspiHypertext and AtspiHyperlink.
(In reply to Joanmarie Diggs from comment #2) > I'm afraid my answer is that the hypertext and hyperlink interfaces should > be implemented. Somewhere I swear there's a bug boiling down to "Orca > doesn't announce an image when you arrow to it, or navigate by line." But I > cannot find it at the moment. That should be tdf#77679. > A given child object (e.g. an image) would be represented by an embedded > object character in the parent (e.g. the paragraph). When that image is > selected, it's corresponding embedded object character would be selected. > Then Orca would need to do some additional work (the work it already does > for web content, but not yet for LO content) to present the right > information. > > Note that the additional work Orca does for web content depends upon the use > of both AtspiHypertext and AtspiHyperlink. Thanks, that makes sense.