accessibility/source/extended/accessiblelistboxentry.cxx       |    2 
 accessibility/source/extended/textwindowaccessibility.cxx      |    6 +-
 accessibility/source/standard/floatingwindowaccessible.cxx     |    2 
 accessibility/source/standard/vclxaccessiblelist.cxx           |    2 
 accessibility/source/standard/vclxaccessibleradiobutton.cxx    |    2 
 dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx        |    2 
 dbaccess/source/ui/querydesign/TableWindowAccess.cxx           |   10 ++--
 editeng/source/accessibility/AccessibleEditableTextPara.cxx    |    8 +--
 offapi/com/sun/star/accessibility/AccessibleRelation.idl       |    2 
 offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl |    1 
 sc/source/ui/Accessibility/AccessibleCell.cxx                  |    4 -
 sc/source/ui/Accessibility/AccessibleCsvControl.cxx            |    4 -
 sc/source/ui/Accessibility/AccessibleEditObject.cxx            |    4 -
 sd/source/console/PresenterAccessibility.cxx                   |    4 -
 svx/source/accessibility/AccessibleControlShape.cxx            |    2 
 svx/source/accessibility/AccessibleShape.cxx                   |    2 
 svx/source/accessibility/svxrectctaccessiblecontext.cxx        |    2 
 sw/source/core/access/accpara.cxx                              |    4 -
 sw/source/core/access/acctextframe.cxx                         |    2 
 test/source/a11y/accessibletestbase.cxx                        |   10 +---
 toolkit/source/awt/vclxaccessiblecomponent.cxx                 |    6 +-
 vcl/osx/a11ywrapper.mm                                         |   12 ++---
 vcl/qa/cppunit/a11y/atspi2/atspi2.cxx                          |    3 -
 vcl/qt5/QtAccessibleWidget.cxx                                 |    2 
 vcl/source/app/salvtables.cxx                                  |    4 -
 vcl/unx/gtk3/a11y/atkwrapper.cxx                               |    5 --
 winaccessibility/source/UAccCOM/AccRelation.cxx                |    8 +--
 winaccessibility/source/UAccCOM/MAccessible.cxx                |   22 
++++------
 28 files changed, 64 insertions(+), 73 deletions(-)

New commits:
commit d4f6534e8870e8f271984c37ce54a6878f372ae1
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Apr 24 14:39:46 2024 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed Apr 24 23:04:35 2024 +0200

    [API CHANGE] a11y: Use XAccessible for relation targets
    
    Use a Sequence of XAccessible rather than its base
    interface XInterface for AccessibleRelation's TargetSet.
    
    As the targets are accessible objects as well,
    anything other than XAccessible doesn't make much sense.
    Using XAccessible right away makes that clearer and avoids
    the need to query the XAccessible interface.
    
    (The winaccessibility bridge was already using
    `static_cast`, relying on the fact that the objects
    are XAccessibles.)
    
    The a11y UNO API is not published, so an API change
    should be unproblematic.
    
    Change-Id: I7f08e98d1ec303d5343d9a7954187cdd71495ebc
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166586
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>
    Tested-by: Jenkins

diff --git a/accessibility/source/extended/accessiblelistboxentry.cxx 
b/accessibility/source/extended/accessiblelistboxentry.cxx
index 6c8fa6fc26dc..a843b938b9a3 100644
--- a/accessibility/source/extended/accessiblelistboxentry.cxx
+++ b/accessibility/source/extended/accessiblelistboxentry.cxx
@@ -463,7 +463,7 @@ namespace accessibility
         if ( xParent.is() )
         {
             rtl::Reference<utl::AccessibleRelationSetHelper> 
pRelationSetHelper = new utl::AccessibleRelationSetHelper;
-            Sequence< Reference< XInterface > > aSequence { xParent };
+            Sequence<Reference<XAccessible>> aSequence { xParent };
             pRelationSetHelper->AddRelation(
                 AccessibleRelation( AccessibleRelationType::NODE_CHILD_OF, 
aSequence ) );
             xRelSet = pRelationSetHelper;
diff --git a/accessibility/source/extended/textwindowaccessibility.cxx 
b/accessibility/source/extended/textwindowaccessibility.cxx
index f1ccc69c413d..5cef04128d82 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -1293,14 +1293,14 @@ Document::retrieveParagraphRelationSet( Paragraph const 
* pParagraph )
 
     if ( aPara > m_aVisibleBegin && aPara < m_aVisibleEnd )
     {
-        css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > 
aSequence { getAccessibleChild( aPara - 1 ) };
+        
css::uno::Sequence<css::uno::Reference<css::accessibility::XAccessible>> 
aSequence { getAccessibleChild(aPara - 1) };
         css::accessibility::AccessibleRelation aRelation( 
css::accessibility::AccessibleRelationType::CONTENT_FLOWS_FROM, aSequence );
         pRelationSetHelper->AddRelation( aRelation );
     }
 
     if ( aPara >= m_aVisibleBegin && aPara < m_aVisibleEnd -1 )
     {
-        css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > 
aSequence { getAccessibleChild( aPara + 1 ) };
+        
css::uno::Sequence<css::uno::Reference<css::accessibility::XAccessible>> 
aSequence { getAccessibleChild(aPara + 1) };
         css::accessibility::AccessibleRelation aRelation( 
css::accessibility::AccessibleRelationType::CONTENT_FLOWS_TO, aSequence );
         pRelationSetHelper->AddRelation( aRelation );
     }
@@ -1370,7 +1370,7 @@ void    Document::FillAccessibleRelationSet( 
utl::AccessibleRelationSetHelper& r
 {
     if( getAccessibleParent()->getAccessibleContext()->getAccessibleRole() == 
css::accessibility::AccessibleRole::SCROLL_PANE )
     {
-        css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > 
aSequence {  getAccessibleParent() };
+        
css::uno::Sequence<css::uno::Reference<css::accessibility::XAccessible>> 
aSequence {  getAccessibleParent() };
         rRelationSet.AddRelation( css::accessibility::AccessibleRelation( 
css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
     }
     else
diff --git a/accessibility/source/standard/floatingwindowaccessible.cxx 
b/accessibility/source/standard/floatingwindowaccessible.cxx
index aa5ef41f6c79..ebfd0c506905 100644
--- a/accessibility/source/standard/floatingwindowaccessible.cxx
+++ b/accessibility/source/standard/floatingwindowaccessible.cxx
@@ -36,7 +36,7 @@ void 
FloatingWindowAccessible::FillAccessibleRelationSet(utl::AccessibleRelation
         vcl::Window* pParentWindow = pWindow->GetParent();
         if( pParentWindow )
         {
-            uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
pParentWindow->GetAccessible() };
+            uno::Sequence<uno::Reference<css::accessibility::XAccessible>> 
aSequence { pParentWindow->GetAccessible() };
             rRelationSet.AddRelation( AccessibleRelation( 
AccessibleRelationType::SUB_WINDOW_OF, aSequence ) );
         }
     }
diff --git a/accessibility/source/standard/vclxaccessiblelist.cxx 
b/accessibility/source/standard/vclxaccessiblelist.cxx
index 79aa8a0f7ea5..c001b59c42fc 100644
--- a/accessibility/source/standard/vclxaccessiblelist.cxx
+++ b/accessibility/source/standard/vclxaccessiblelist.cxx
@@ -439,7 +439,7 @@ void VCLXAccessibleList::ProcessWindowEvent (const 
VclWindowEvent& rVclWindowEve
     {
         if (m_pListBoxHelper && (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) 
!= WB_DROPDOWN)
         {
-            uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
pBox->GetAccessible() };
+            uno::Sequence<uno::Reference<css::accessibility::XAccessible>> 
aSequence { pBox->GetAccessible() };
             rRelationSet.AddRelation( 
com::sun::star::accessibility::AccessibleRelation( 
com::sun::star::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
         }
     }
diff --git a/accessibility/source/standard/vclxaccessibleradiobutton.cxx 
b/accessibility/source/standard/vclxaccessibleradiobutton.cxx
index 1d9704c00e83..3d66b799db0d 100644
--- a/accessibility/source/standard/vclxaccessibleradiobutton.cxx
+++ b/accessibility/source/standard/vclxaccessibleradiobutton.cxx
@@ -81,7 +81,7 @@ void VCLXAccessibleRadioButton::FillAccessibleRelationSet( 
utl::AccessibleRelati
     std::vector< VclPtr<RadioButton> > 
aGroup(pRadioButton->GetRadioButtonGroup());
     if (!aGroup.empty())
     {
-        std::vector< Reference< XInterface > > aVec;
+        std::vector<Reference<css::accessibility::XAccessible>> aVec;
         aVec.reserve(aGroup.size());
         std::transform(aGroup.begin(), aGroup.end(), std::back_inserter(aVec),
             [](const VclPtr<RadioButton>& rxItem) { return 
rxItem->GetAccessible(); });
diff --git a/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx 
b/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
index 56842bccf03d..1fa17c06207c 100644
--- a/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
+++ b/dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx
@@ -133,7 +133,7 @@ namespace dbaui
         if( nIndex < 0 || nIndex >= getRelationCount() )
             throw IndexOutOfBoundsException();
 
-        Sequence< Reference<XInterface> > aSeq;
+        Sequence<Reference<XAccessible>> aSeq;
         if( m_pLine )
         {
             aSeq = { m_pLine->GetSourceWin()->GetAccessible(),
diff --git a/dbaccess/source/ui/querydesign/TableWindowAccess.cxx 
b/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
index bb6131840d80..138850267c47 100644
--- a/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindowAccess.cxx
@@ -201,19 +201,19 @@ namespace dbaui
 
             auto aIter = pView->getTableConnections(m_pTable);
             auto aEnd = rConnectionList.end();
-            std::vector< Reference<XInterface> > aRelations;
+            std::vector< Reference<css::accessibility::XAccessible> > 
aRelations;
             aRelations.reserve(5); // just guessing
             // TODO JNA aIter comes from pView->getTableConnections(m_pTable)
             // and aEnd comes from pView->getTableConnections().end()
             for (; aIter != aEnd ; ++aIter )
             {
-                uno::Reference<uno::XInterface> xInterface(
+                uno::Reference<css::accessibility::XAccessible> xAccessible(
                     getParentChild(aIter - rConnectionList.begin()));
-                aRelations.push_back(xInterface);
+                aRelations.push_back(xAccessible);
             }
 
-            Sequence< Reference<XInterface> > aSeq(aRelations.data(), 
aRelations.size());
-            return 
AccessibleRelation(AccessibleRelationType::CONTROLLER_FOR,aSeq);
+            Sequence<Reference<css::accessibility::XAccessible>> 
aSeq(aRelations.data(), aRelations.size());
+            return AccessibleRelation(AccessibleRelationType::CONTROLLER_FOR, 
aSeq);
         }
         return AccessibleRelation();
     }
diff --git a/editeng/source/accessibility/AccessibleEditableTextPara.cxx 
b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
index e504d0fa29a7..2f727cb7669d 100644
--- a/editeng/source/accessibility/AccessibleEditableTextPara.cxx
+++ b/editeng/source/accessibility/AccessibleEditableTextPara.cxx
@@ -736,8 +736,8 @@ namespace accessibility
             if ( nMyParaIndex > 0 &&
                  mpParaManager->IsReferencable( nMyParaIndex - 1 ) )
             {
-                uno::Sequence<uno::Reference<XInterface> > aSequence
-                    { cppu::getXWeak(mpParaManager->GetChild( nMyParaIndex - 1 
).first.get().get()) };
+                uno::Sequence<uno::Reference<XAccessible>> aSequence
+                    { mpParaManager->GetChild( nMyParaIndex - 1 ).first.get() 
};
                 AccessibleRelation aAccRel( 
AccessibleRelationType::CONTENT_FLOWS_FROM,
                                             aSequence );
                 pAccRelSetHelper->AddRelation( aAccRel );
@@ -747,8 +747,8 @@ namespace accessibility
             if ( (nMyParaIndex + 1) < mpParaManager->GetNum() &&
                  mpParaManager->IsReferencable( nMyParaIndex + 1 ) )
             {
-                uno::Sequence<uno::Reference<XInterface> > aSequence
-                    { cppu::getXWeak(mpParaManager->GetChild( nMyParaIndex + 1 
).first.get().get()) };
+                uno::Sequence<uno::Reference<XAccessible>> aSequence
+                    { mpParaManager->GetChild( nMyParaIndex + 1 ).first.get() 
};
                 AccessibleRelation aAccRel( 
AccessibleRelationType::CONTENT_FLOWS_TO,
                                             aSequence );
                 pAccRelSetHelper->AddRelation( aAccRel );
diff --git a/offapi/com/sun/star/accessibility/AccessibleRelation.idl 
b/offapi/com/sun/star/accessibility/AccessibleRelation.idl
index b00ae6952941..e2228dcea0cf 100644
--- a/offapi/com/sun/star/accessibility/AccessibleRelation.idl
+++ b/offapi/com/sun/star/accessibility/AccessibleRelation.idl
@@ -46,7 +46,7 @@ struct AccessibleRelation
         INVALID.  The set must not contain references to one object more
         than once.</p>
     */
-    sequence< ::com::sun::star::uno::XInterface> TargetSet;
+    sequence<::com::sun::star::accessibility::XAccessible> TargetSet;
 };
 
 }; }; }; };
diff --git a/sc/source/ui/Accessibility/AccessibleCell.cxx 
b/sc/source/ui/Accessibility/AccessibleCell.cxx
index 3ac2fdba307f..b27fbb90671a 100644
--- a/sc/source/ui/Accessibility/AccessibleCell.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCell.cxx
@@ -464,8 +464,8 @@ void ScAccessibleCell::AddRelation(const ScRange& rRange,
         return;
     }
 
-    uno::Sequence < uno::Reference < uno::XInterface > > aTargetSet( nCount );
-    uno::Reference < uno::XInterface >* pTargetSet = aTargetSet.getArray();
+    uno::Sequence<uno::Reference<css::accessibility::XAccessible>> 
aTargetSet(nCount);
+    uno::Reference <css::accessibility::XAccessible>* pTargetSet = 
aTargetSet.getArray();
     sal_uInt32 nPos(0);
     for (sal_uInt32 nRow = rRange.aStart.Row(); nRow <= 
sal::static_int_cast<sal_uInt32>(rRange.aEnd.Row()); ++nRow)
     {
diff --git a/sc/source/ui/Accessibility/AccessibleCsvControl.cxx 
b/sc/source/ui/Accessibility/AccessibleCsvControl.cxx
index c7050d777704..c6dc50dc011a 100644
--- a/sc/source/ui/Accessibility/AccessibleCsvControl.cxx
+++ b/sc/source/ui/Accessibility/AccessibleCsvControl.cxx
@@ -300,7 +300,7 @@ Reference< XAccessibleRelationSet > SAL_CALL 
ScAccessibleCsvRuler::getAccessible
     css::uno::Reference<css::accessibility::XAccessible> 
xAccObj(static_cast<ScAccessibleCsvGrid*>(rGrid.GetAccessible()));
     if( xAccObj.is() )
     {
-        Sequence< Reference< XInterface > > aSeq{ xAccObj };
+        Sequence<Reference<css::accessibility::XAccessible>> aSeq{ xAccObj };
         pRelationSet->AddRelation( AccessibleRelation( 
AccessibleRelationType::CONTROLLER_FOR, aSeq ) );
     }
 
@@ -839,7 +839,7 @@ Reference< XAccessibleRelationSet > SAL_CALL 
ScAccessibleCsvGrid::getAccessibleR
         css::uno::Reference<css::accessibility::XAccessible> 
xAccObj(static_cast<ScAccessibleCsvGrid*>(rRuler.GetAccessible()));
         if( xAccObj.is() )
         {
-            Sequence< Reference< XInterface > > aSeq{ xAccObj };
+            Sequence<Reference<css::accessibility::XAccessible>> aSeq{ xAccObj 
};
             pRelationSet->AddRelation( AccessibleRelation( 
AccessibleRelationType::CONTROLLED_BY, aSeq ) );
         }
     }
diff --git a/sc/source/ui/Accessibility/AccessibleEditObject.cxx 
b/sc/source/ui/Accessibility/AccessibleEditObject.cxx
index 3b1eaf532d7a..ceb07cb662aa 100644
--- a/sc/source/ui/Accessibility/AccessibleEditObject.cxx
+++ b/sc/source/ui/Accessibility/AccessibleEditObject.cxx
@@ -517,13 +517,13 @@ uno::Reference< XAccessibleRelationSet > 
ScAccessibleEditObject::getAccessibleRe
         vcl::Window *pLabeledBy = pWindow->GetAccessibleRelationLabeledBy();
         if ( pLabeledBy && pLabeledBy != pWindow )
         {
-            uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
pLabeledBy->GetAccessible() };
+            uno::Sequence<uno::Reference<css::accessibility::XAccessible>> 
aSequence { pLabeledBy->GetAccessible() };
             rRelationSet->AddRelation( AccessibleRelation( 
AccessibleRelationType::LABELED_BY, aSequence ) );
         }
         vcl::Window* pMemberOf = pWindow->GetAccessibleRelationMemberOf();
         if ( pMemberOf && pMemberOf != pWindow )
         {
-            uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
pMemberOf->GetAccessible() };
+            uno::Sequence< uno::Reference<css::accessibility::XAccessible> > 
aSequence { pMemberOf->GetAccessible() };
             rRelationSet->AddRelation( AccessibleRelation( 
AccessibleRelationType::MEMBER_OF, aSequence ) );
         }
         return rRelationSet;
diff --git a/sd/source/console/PresenterAccessibility.cxx 
b/sd/source/console/PresenterAccessibility.cxx
index e7ac0b95d52b..08576be6940d 100644
--- a/sd/source/console/PresenterAccessibility.cxx
+++ b/sd/source/console/PresenterAccessibility.cxx
@@ -211,7 +211,7 @@ public:
 
     void AddRelation (
         const sal_Int16 nRelationType,
-        const Reference<XInterface>& rxObject);
+        const Reference<XAccessible>& rxObject);
 
     //----- XAccessibleRelationSet --------------------------------------------
 
@@ -1194,7 +1194,7 @@ AccessibleRelationSet::AccessibleRelationSet()
 
 void AccessibleRelationSet::AddRelation (
     const sal_Int16 nRelationType,
-    const Reference<XInterface>& rxObject)
+    const Reference<XAccessible>& rxObject)
 {
     maRelations.emplace_back();
     maRelations.back().RelationType = nRelationType;
diff --git a/svx/source/accessibility/AccessibleControlShape.cxx 
b/svx/source/accessibility/AccessibleControlShape.cxx
index 3a6605fda632..2f59e302bb73 100644
--- a/svx/source/accessibility/AccessibleControlShape.cxx
+++ b/svx/source/accessibility/AccessibleControlShape.cxx
@@ -551,7 +551,7 @@ Reference< XAccessibleRelationSet > SAL_CALL 
AccessibleControlShape::getAccessib
     {
         Reference < XAccessible > xAcc (pCtlAccShape->getAccessibleContext(), 
UNO_QUERY);
 
-        css::uno::Sequence< css::uno::Reference< css::uno::XInterface > > 
aSequence { xAcc };
+        css::uno::Sequence<css::uno::Reference<XAccessible>> aSequence { xAcc 
};
         if( getAccessibleRole() == AccessibleRole::RADIO_BUTTON )
         {
             pRelationSetHelper->AddRelation( AccessibleRelation( 
AccessibleRelationType::MEMBER_OF, aSequence ) );
diff --git a/svx/source/accessibility/AccessibleShape.cxx 
b/svx/source/accessibility/AccessibleShape.cxx
index 7a1770b8fd42..1504c6869e75 100644
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -360,7 +360,7 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL
     rtl::Reference<::utl::AccessibleRelationSetHelper> pRelationSet = new 
utl::AccessibleRelationSetHelper;
 
     //this mxshape is the captioned shape
-    uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
mpParent->GetAccessibleCaption(mxShape) };
+    uno::Sequence<uno::Reference<css::accessibility::XAccessible>> aSequence { 
mpParent->GetAccessibleCaption(mxShape) };
     if(aSequence[0])
     {
         pRelationSet->AddRelation(
diff --git a/svx/source/accessibility/svxrectctaccessiblecontext.cxx 
b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
index 45360e6c862f..2ce9f857325a 100644
--- a/svx/source/accessibility/svxrectctaccessiblecontext.cxx
+++ b/svx/source/accessibility/svxrectctaccessiblecontext.cxx
@@ -480,7 +480,7 @@ Reference<XAccessibleRelationSet> SAL_CALL 
SvxRectCtlChildAccessibleContext::get
     rtl::Reference<utl::AccessibleRelationSetHelper> pRelationSetHelper = new 
utl::AccessibleRelationSetHelper;
     if( mxParent.is() )
     {
-        uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
mxParent };
+        uno::Sequence<uno::Reference<css::accessibility::XAccessible>> 
aSequence { mxParent };
         pRelationSetHelper->AddRelation( 
css::accessibility::AccessibleRelation( 
css::accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
     }
 
diff --git a/sw/source/core/access/accpara.cxx 
b/sw/source/core/access/accpara.cxx
index b128b475809d..c6565a522671 100644
--- a/sw/source/core/access/accpara.cxx
+++ b/sw/source/core/access/accpara.cxx
@@ -750,7 +750,7 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL 
SwAccessibleParagraph::getAccess
         const SwContentFrame* pPrevContentFrame( pTextFrame->FindPrevCnt() );
         if ( pPrevContentFrame )
         {
-            uno::Sequence< uno::Reference<XInterface> > aSequence { 
GetMap()->GetContext( pPrevContentFrame ) };
+            uno::Sequence<uno::Reference<XAccessible>> aSequence { 
GetMap()->GetContext(pPrevContentFrame) };
             AccessibleRelation aAccRel( 
AccessibleRelationType::CONTENT_FLOWS_FROM,
                                         aSequence );
             pHelper->AddRelation( aAccRel );
@@ -759,7 +759,7 @@ uno::Reference<XAccessibleRelationSet> SAL_CALL 
SwAccessibleParagraph::getAccess
         const SwContentFrame* pNextContentFrame( pTextFrame->FindNextCnt( true 
) );
         if ( pNextContentFrame )
         {
-            uno::Sequence< uno::Reference<XInterface> > aSequence { 
GetMap()->GetContext( pNextContentFrame ) };
+            uno::Sequence<uno::Reference<XAccessible>> aSequence { 
GetMap()->GetContext(pNextContentFrame) };
             AccessibleRelation aAccRel( 
AccessibleRelationType::CONTENT_FLOWS_TO,
                                         aSequence );
             pHelper->AddRelation( aAccRel );
diff --git a/sw/source/core/access/acctextframe.cxx 
b/sw/source/core/access/acctextframe.cxx
index e1b5cd029ceb..e6f11873de3b 100644
--- a/sw/source/core/access/acctextframe.cxx
+++ b/sw/source/core/access/acctextframe.cxx
@@ -271,7 +271,7 @@ SwFlyFrame* SwAccessibleTextFrame::getFlyFrame() const
 
 AccessibleRelation SwAccessibleTextFrame::makeRelation( sal_Int16 nType, const 
SwFlyFrame* pFrame )
 {
-    uno::Sequence<uno::Reference<XInterface> > aSequence { 
GetMap()->GetContext( pFrame ) };
+    uno::Sequence<uno::Reference<XAccessible>> aSequence { 
GetMap()->GetContext(pFrame) };
     return AccessibleRelation( nType, aSequence );
 }
 
diff --git a/test/source/a11y/accessibletestbase.cxx 
b/test/source/a11y/accessibletestbase.cxx
index 773259941f42..00aac5ea9900 100644
--- a/test/source/a11y/accessibletestbase.cxx
+++ b/test/source/a11y/accessibletestbase.cxx
@@ -121,10 +121,9 @@ test::AccessibleTestBase::getFirstRelationTargetOfType(
             const auto& rel = relset->getRelation(i);
             if (rel.RelationType == relationType)
             {
-                for (auto& target : rel.TargetSet)
+                for (const uno::Reference<accessibility::XAccessible>& 
targetAccessible :
+                     rel.TargetSet)
                 {
-                    uno::Reference<accessibility::XAccessible> 
targetAccessible(target,
-                                                                               
 uno::UNO_QUERY);
                     if (targetAccessible.is())
                         return targetAccessible->getAccessibleContext();
                 }
@@ -177,12 +176,11 @@ void test::AccessibleTestBase::dumpA11YTree(
                           << " (" << rel.RelationType << ")";
                 std::cout << " targets=[";
                 int j = 0;
-                for (auto& target : rel.TargetSet)
+                for (const uno::Reference<accessibility::XAccessible>& xTarget 
: rel.TargetSet)
                 {
                     if (j++ > 0)
                         std::cout << ", ";
-                    uno::Reference<accessibility::XAccessible> ta(target, 
uno::UNO_QUERY_THROW);
-                    std::cout << AccessibilityTools::debugString(ta);
+                    std::cout << AccessibilityTools::debugString(xTarget);
                 }
                 std::cout << "])";
             }
diff --git a/toolkit/source/awt/vclxaccessiblecomponent.cxx 
b/toolkit/source/awt/vclxaccessiblecomponent.cxx
index 9c2321ede37a..a1a31902c0a9 100644
--- a/toolkit/source/awt/vclxaccessiblecomponent.cxx
+++ b/toolkit/source/awt/vclxaccessiblecomponent.cxx
@@ -393,21 +393,21 @@ void VCLXAccessibleComponent::FillAccessibleRelationSet( 
utl::AccessibleRelation
     vcl::Window *pLabeledBy = pWindow->GetAccessibleRelationLabeledBy();
     if ( pLabeledBy && pLabeledBy != pWindow )
     {
-        uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
pLabeledBy->GetAccessible() };
+        uno::Sequence<uno::Reference<css::accessibility::XAccessible>> 
aSequence { pLabeledBy->GetAccessible() };
         rRelationSet.AddRelation( accessibility::AccessibleRelation( 
accessibility::AccessibleRelationType::LABELED_BY, aSequence ) );
     }
 
     vcl::Window* pLabelFor = pWindow->GetAccessibleRelationLabelFor();
     if ( pLabelFor && pLabelFor != pWindow )
     {
-        uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
pLabelFor->GetAccessible() };
+        uno::Sequence<uno::Reference<css::accessibility::XAccessible>> 
aSequence { pLabelFor->GetAccessible() };
         rRelationSet.AddRelation( accessibility::AccessibleRelation( 
accessibility::AccessibleRelationType::LABEL_FOR, aSequence ) );
     }
 
     vcl::Window* pMemberOf = pWindow->GetAccessibleRelationMemberOf();
     if ( pMemberOf && pMemberOf != pWindow )
     {
-        uno::Sequence< uno::Reference< uno::XInterface > > aSequence { 
pMemberOf->GetAccessible() };
+        uno::Sequence<uno::Reference<css::accessibility::XAccessible>> 
aSequence { pMemberOf->GetAccessible() };
         rRelationSet.AddRelation( accessibility::AccessibleRelation( 
accessibility::AccessibleRelationType::MEMBER_OF, aSequence ) );
     }
 }
diff --git a/vcl/osx/a11ywrapper.mm b/vcl/osx/a11ywrapper.mm
index df1d3690df6d..96808412e154 100644
--- a/vcl/osx/a11ywrapper.mm
+++ b/vcl/osx/a11ywrapper.mm
@@ -188,7 +188,7 @@ static std::ostream &operator<<(std::ostream &s, NSObject 
*obj) {
     {
         AccessibleRelation relationMemberOf = rxAccessibleRelationSet -> 
getRelationByType ( AccessibleRelationType::MEMBER_OF );
         if ( relationMemberOf.RelationType == 
AccessibleRelationType::MEMBER_OF && relationMemberOf.TargetSet.hasElements() )
-            return Reference < XAccessible > ( relationMemberOf.TargetSet[0], 
UNO_QUERY );
+            return relationMemberOf.TargetSet[0];
     }
     return Reference < XAccessible > ();
 }
@@ -318,8 +318,7 @@ static std::ostream &operator<<(std::ostream &s, NSObject 
*obj) {
         Reference < XAccessibleRelationSet > rxAccessibleRelationSet = [ self 
accessibleContext ] -> getAccessibleRelationSet();
         AccessibleRelation const relationMemberOf = rxAccessibleRelationSet -> 
getRelationByType ( AccessibleRelationType::MEMBER_OF );
         if ( relationMemberOf.RelationType == 
AccessibleRelationType::MEMBER_OF && relationMemberOf.TargetSet.hasElements() ) 
{
-            for ( const auto& i : relationMemberOf.TargetSet ) {
-                Reference < XAccessible > rMateAccessible( i, UNO_QUERY );
+            for (Reference <XAccessible> rMateAccessible : 
relationMemberOf.TargetSet ) {
                 if ( rMateAccessible.is() ) {
                     Reference< XAccessibleContext > rMateAccessibleContext( 
rMateAccessible -> getAccessibleContext() );
                     if ( rMateAccessibleContext.is() ) {
@@ -639,7 +638,7 @@ static std::ostream &operator<<(std::ostream &s, NSObject 
*obj) {
         if ( [ title length ] == 0 ) {
             AccessibleRelation relationLabeledBy = [ self accessibleContext ] 
-> getAccessibleRelationSet() -> getRelationByType ( 
AccessibleRelationType::LABELED_BY );
             if ( relationLabeledBy.RelationType == 
AccessibleRelationType::LABELED_BY && relationLabeledBy.TargetSet.hasElements() 
 ) {
-                Reference < XAccessible > rxAccessible ( 
relationLabeledBy.TargetSet[0], UNO_QUERY );
+                Reference <XAccessible> rxAccessible = 
relationLabeledBy.TargetSet[0];
                 titleElement = [ AquaA11yFactory wrapperForAccessibleContext: 
rxAccessible -> getAccessibleContext() ];
             }
         }
@@ -657,7 +656,7 @@ static std::ostream &operator<<(std::ostream &s, NSObject 
*obj) {
         id titleForElement = nil;
         AccessibleRelation relationLabelFor = [ self accessibleContext ] -> 
getAccessibleRelationSet() -> getRelationByType ( 
AccessibleRelationType::LABEL_FOR );
         if ( relationLabelFor.RelationType == 
AccessibleRelationType::LABEL_FOR && relationLabelFor.TargetSet.hasElements() ) 
{
-            Reference < XAccessible > rxAccessible ( 
relationLabelFor.TargetSet[0], UNO_QUERY );
+            Reference <XAccessible> rxAccessible = 
relationLabelFor.TargetSet[0];
             titleForElement = [ AquaA11yFactory wrapperForAccessibleContext: 
rxAccessible -> getAccessibleContext() ];
         }
         return titleForElement;
@@ -1120,8 +1119,7 @@ static Reference < XAccessibleContext > hitTestRunner ( 
css::awt::Point point,
                 if ( relationSet.is() && relationSet -> containsRelation ( 
AccessibleRelationType::SUB_WINDOW_OF )) {
                     // we have a valid relation to the parent element
                     AccessibleRelation const relation = relationSet -> 
getRelationByType ( AccessibleRelationType::SUB_WINDOW_OF );
-                    for ( const auto & i : relation.TargetSet ) {
-                        Reference < XAccessible > rxAccessible ( i, UNO_QUERY 
);
+                    for (Reference<XAccessible> rxAccessible : 
relation.TargetSet) {
                         if ( rxAccessible.is() && rxAccessible -> 
getAccessibleContext().is() ) {
                             // hit test for children of parent
                             hitChild = hitTestRunner ( hitPoint, rxAccessible 
-> getAccessibleContext() );
diff --git a/vcl/qa/cppunit/a11y/atspi2/atspi2.cxx 
b/vcl/qa/cppunit/a11y/atspi2/atspi2.cxx
index 04d885d623c3..7c6feb7755f1 100644
--- a/vcl/qa/cppunit/a11y/atspi2/atspi2.cxx
+++ b/vcl/qa/cppunit/a11y/atspi2/atspi2.cxx
@@ -369,8 +369,7 @@ void Atspi2TestTree::compareObjects(const 
uno::Reference<accessibility::XAccessi
         {
             for (auto j = decltype(nLOTargetsCount){ 0 }; j < nLOTargetsCount; 
j++)
             {
-                uno::Reference<accessibility::XAccessible> 
xLOTarget(xLORelation.TargetSet[j],
-                                                                     
uno::UNO_QUERY_THROW);
+                uno::Reference<accessibility::XAccessible> xLOTarget = 
xLORelation.TargetSet[j];
                 compareObjects(xLOTarget, pAtspiRelation.getTarget(j), 
RecurseFlags::NONE);
             }
         }
diff --git a/vcl/qt5/QtAccessibleWidget.cxx b/vcl/qt5/QtAccessibleWidget.cxx
index 4065e6ca2307..2a9236e6339f 100644
--- a/vcl/qt5/QtAccessibleWidget.cxx
+++ b/vcl/qt5/QtAccessibleWidget.cxx
@@ -261,7 +261,7 @@ void 
lcl_appendRelation(QVector<QPair<QAccessibleInterface*, QAccessible::Relati
 
     for (sal_uInt32 i = 0; i < nTargetCount; i++)
     {
-        Reference<XAccessible> xAccessible(aRelation.TargetSet[i], 
uno::UNO_QUERY);
+        Reference<XAccessible> xAccessible = aRelation.TargetSet[i];
         relations->append(
             { 
QAccessible::queryAccessibleInterface(QtAccessibleRegistry::getQObject(xAccessible)),
               aQRelation });
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 12f4537f4df0..36312092e419 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -6281,7 +6281,7 @@ a11yrelationset 
SalInstanceDrawingArea::get_accessible_relation_set()
         vcl::Window* pLabeledBy = pWindow->GetAccessibleRelationLabeledBy();
         if (pLabeledBy && pLabeledBy != pWindow)
         {
-            css::uno::Sequence<css::uno::Reference<css::uno::XInterface>> 
aSequence{
+            
css::uno::Sequence<css::uno::Reference<css::accessibility::XAccessible>> 
aSequence{
                 pLabeledBy->GetAccessible()
             };
             
pRelationSetHelper->AddRelation(css::accessibility::AccessibleRelation(
@@ -6290,7 +6290,7 @@ a11yrelationset 
SalInstanceDrawingArea::get_accessible_relation_set()
         vcl::Window* pMemberOf = pWindow->GetAccessibleRelationMemberOf();
         if (pMemberOf && pMemberOf != pWindow)
         {
-            css::uno::Sequence<css::uno::Reference<css::uno::XInterface>> 
aSequence{
+            
css::uno::Sequence<css::uno::Reference<css::accessibility::XAccessible>> 
aSequence{
                 pMemberOf->GetAccessible()
             };
             
pRelationSetHelper->AddRelation(css::accessibility::AccessibleRelation(
diff --git a/vcl/unx/gtk3/a11y/atkwrapper.cxx b/vcl/unx/gtk3/a11y/atkwrapper.cxx
index 757e56cdc434..db0aa1dbc907 100644
--- a/vcl/unx/gtk3/a11y/atkwrapper.cxx
+++ b/vcl/unx/gtk3/a11y/atkwrapper.cxx
@@ -571,10 +571,9 @@ atk_object_wrapper_relation_new(const 
accessibility::AccessibleRelation& rRelati
 
     std::vector<AtkObject*> aTargets;
 
-    for (const auto& rTarget : rRelation.TargetSet)
+    for (const uno::Reference<accessibility::XAccessible>& xTarget : 
rRelation.TargetSet)
     {
-        uno::Reference< accessibility::XAccessible > xAccessible( rTarget, 
uno::UNO_QUERY );
-        aTargets.push_back(atk_object_wrapper_ref(xAccessible));
+        aTargets.push_back(atk_object_wrapper_ref(xTarget));
     }
 
     AtkRelation *pRel =
diff --git a/winaccessibility/source/UAccCOM/AccRelation.cxx 
b/winaccessibility/source/UAccCOM/AccRelation.cxx
index b866d3f0ba36..4312491595bd 100644
--- a/winaccessibility/source/UAccCOM/AccRelation.cxx
+++ b/winaccessibility/source/UAccCOM/AccRelation.cxx
@@ -80,7 +80,7 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CAccRelation::get_nTargets(long * nTargets)
     if (nTargets == nullptr)
         return E_INVALIDARG;
 
-    Sequence< Reference< XInterface > > xTargets = relation.TargetSet;
+    Sequence<Reference<XAccessible>> xTargets = relation.TargetSet;
     *nTargets = xTargets.getLength();
     return S_OK;
 
@@ -102,12 +102,12 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CAccRelation::get_target(long targetIndex, IUn
     if (target == nullptr)
         return E_FAIL;
 
-    Sequence< Reference< XInterface > > xTargets = relation.TargetSet;
+    Sequence<Reference<XAccessible>> xTargets = relation.TargetSet;
     int nCount = xTargets.getLength();
     if( targetIndex >= nCount )
         return E_FAIL;
 
-    Reference<XAccessible> xRAcc(xTargets[targetIndex], UNO_QUERY);
+    Reference<XAccessible> xRAcc = xTargets[targetIndex];
     IAccessible* pRet = 
CMAccessible::get_IAccessibleFromXAccessible(xRAcc.get());
     if (pRet)
     {
@@ -139,7 +139,7 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CAccRelation::get_targets(long, IUnknown * * t
     if (nTargets == nullptr)
         return E_INVALIDARG;
 
-    Sequence< Reference< XInterface > > xTargets = relation.TargetSet;
+    Sequence<Reference<XAccessible>> xTargets = relation.TargetSet;
     int nCount = xTargets.getLength();
 
     *target = 
static_cast<IUnknown*>(::CoTaskMemAlloc(nCount*sizeof(IUnknown)));
diff --git a/winaccessibility/source/UAccCOM/MAccessible.cxx 
b/winaccessibility/source/UAccCOM/MAccessible.cxx
index 8694ef418bbc..908c0b5ca527 100644
--- a/winaccessibility/source/UAccCOM/MAccessible.cxx
+++ b/winaccessibility/source/UAccCOM/MAccessible.cxx
@@ -717,12 +717,10 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CMAccessible::get_accKeyboardShortcut(VARIANT
                         if(paccRelation == nullptr)
                             return S_FALSE;
 
-                        Sequence< Reference< XInterface > > xTargets = 
paccRelation->TargetSet;
-                        Reference<XInterface> pRAcc = xTargets[0];
+                        Sequence<Reference<XAccessible>> xTargets = 
paccRelation->TargetSet;
+                        Reference<XAccessible> xAcc = xTargets[0];
 
-                        XAccessible* pXAcc = 
static_cast<XAccessible*>(pRAcc.get());
-
-                        Reference<XAccessibleContext> xLabelContext = 
pXAcc->getAccessibleContext();
+                        Reference<XAccessibleContext> xLabelContext = 
xAcc->getAccessibleContext();
                         if (!xLabelContext.is())
                             return S_FALSE;
 
@@ -742,8 +740,8 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CMAccessible::get_accKeyboardShortcut(VARIANT
                         if(paccRelation)
                         {
                             xTargets = paccRelation->TargetSet;
-                            pRAcc = xTargets[0];
-                            if (m_xAccessible.get() != 
static_cast<XAccessible*>(pRAcc.get()))
+                            xAcc = xTargets[0];
+                            if (m_xAccessible.get() != xAcc.get())
                                 return S_FALSE;
                         }
 
@@ -1794,8 +1792,8 @@ static XAccessible* getTheParentOfMember(XAccessible* 
pXAcc)
         AccessibleRelation accRelation = pRrelationSet->getRelation(i);
         if (accRelation.RelationType == AccessibleRelationType::MEMBER_OF)
         {
-            Sequence< Reference< XInterface > > xTargets = 
accRelation.TargetSet;
-            return static_cast<XAccessible*>(xTargets[0].get());
+            Sequence<Reference<XAccessible>> xTargets = accRelation.TargetSet;
+            return xTargets[0].get();
         }
     }
     return nullptr;
@@ -1863,15 +1861,15 @@ COM_DECLSPEC_NOTHROW STDMETHODIMP 
CMAccessible::get_groupPosition(long __RPC_FAR
                 AccessibleRelation accRelation = pRrelationSet->getRelation(i);
                 if (accRelation.RelationType == 
AccessibleRelationType::MEMBER_OF)
                 {
-                    Sequence< Reference< XInterface > > xTargets = 
accRelation.TargetSet;
+                    Sequence<Reference<XAccessible>> xTargets = 
accRelation.TargetSet;
 
-                    Reference<XInterface> pRAcc = xTargets[0];
+                    Reference<XAccessible> xTarget = xTargets[0];
                     sal_Int64 nChildCount = 
pRParentContext->getAccessibleChildCount();
                     assert(nChildCount < std::numeric_limits<long>::max());
                     for (sal_Int64 j = 0; j< nChildCount; j++)
                     {
                         if( 
getTheParentOfMember(pRParentContext->getAccessibleChild(j).get())
-                            == static_cast<XAccessible*>(pRAcc.get()) &&
+                            == xTarget.get() &&
                             
pRParentContext->getAccessibleChild(j)->getAccessibleContext()->getAccessibleRole()
 == AccessibleRole::RADIO_BUTTON)
                             number++;
                         if (pRParentContext->getAccessibleChild(j).get() == 
m_xAccessible.get())
commit b6a8fec62cb7576ac8a94a76ca88256eb4f97695
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Wed Apr 24 14:58:15 2024 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Wed Apr 24 23:04:23 2024 +0200

    a11y: Drop note about API being "not yet published"
    
    The note about `XAccessibleMultiLineText` being
    "not yet published" can be misleading, as there's
    no plan to publish it.
    
    All a11y API was unpublished in
    
        commit 70626249cd247d9acdad417b8eaf252bae22c059
        Date:   Thu Nov 29 00:27:03 2012 +0100
    
            API CHANGE a11y unpublishing and add/removeListener rename.
    
            The a11y API has never really been picked up by tools vendors, let's
            not tie ourselves up here for no good reason.
    
            This unpublishes all css::accessibility, and dependend API.
    
            With that, we can change the rather unfortunately-named add/
            removeEventListener to be add/removeAccessibleEventListener, thus
            not conflicting with the XComponent methods of the same name.
    
            Change-Id: I595598c3a8e46415f80b2780f333333174865fe4
    
    There's currently no plan to change that, so drop that
    note.
    
    (Public a11y API is the corresponding platform a11y API
    and it's LO's responsibility to bridge to that.)
    
    Change-Id: I72a3d3be71f68663497364747f143e856d0b80ac
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166587
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl 
b/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl
index f55eb20f51d0..d7afce097037 100644
--- a/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl
+++ b/offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl
@@ -29,7 +29,6 @@ module com { module sun { module star { module accessibility {
     @since OOo 3.0
 */
 
-/// not yet published
 interface XAccessibleMultiLineText
     : ::com::sun::star::accessibility::XAccessibleText
 {

Reply via email to