include/vcl/accessibility/AccessibleBrowseBox.hxx |   13 +++++--------
 svtools/source/brwbox/brwbox3.cxx                 |    8 +++-----
 vcl/inc/accessibility/accessibletablistbox.hxx    |    7 +++----
 vcl/source/accessibility/AccessibleBrowseBox.cxx  |   14 +++++++-------
 vcl/source/accessibility/accessibletablistbox.cxx |    4 ++--
 vcl/source/treelist/svtabbx.cxx                   |    6 +++---
 6 files changed, 23 insertions(+), 29 deletions(-)

New commits:
commit 58f4241207ae9e6aa80c8e3c48b9cc3850cdfde4
Author:     Michael Weghorn <[email protected]>
AuthorDate: Wed Sep 10 15:06:47 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Wed Sep 10 20:48:30 2025 +0200

    vcl a11y: Require OAccessible for AccessibleBrowseBox parent
    
    Switch parent param in the AccessibleBrowseBox ctor
    from the abstract XAccessible UNO interface to the
    more concrete OAccessible.
    Adjust calling code to make clear it's always an
    OAccessible that gets passed.
    
    Change-Id: I1e0b4c4b075d5f0926c85b431e1fbc10334bea85
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190769
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/include/vcl/accessibility/AccessibleBrowseBox.hxx 
b/include/vcl/accessibility/AccessibleBrowseBox.hxx
index 003fc0d62267..f1b0a63dbe60 100644
--- a/include/vcl/accessibility/AccessibleBrowseBox.hxx
+++ b/include/vcl/accessibility/AccessibleBrowseBox.hxx
@@ -33,7 +33,7 @@ class VCL_DLLPUBLIC AccessibleBrowseBox : public 
AccessibleBrowseBoxBase
 
 public:
     AccessibleBrowseBox(
-        const css::uno::Reference< css::accessibility::XAccessible >& 
_rxParent,
+        const rtl::Reference<comphelper::OAccessible>& rpParent,
         ::vcl::IAccessibleTableProvider& _rBrowseBox
     );
 
diff --git a/svtools/source/brwbox/brwbox3.cxx 
b/svtools/source/brwbox/brwbox3.cxx
index b7f209ac8180..f72903e089c8 100644
--- a/svtools/source/brwbox/brwbox3.cxx
+++ b/svtools/source/brwbox/brwbox3.cxx
@@ -69,11 +69,9 @@ rtl::Reference<comphelper::OAccessible> 
BrowseBox::CreateAccessible()
 {
     if (!m_xAccessible)
     {
-        Reference<XAccessible> xAccParent = GetAccessibleParent();
-        if( xAccParent.is() )
-        {
-            m_xAccessible = new AccessibleBrowseBox(xAccParent, *this);
-        }
+        rtl::Reference<comphelper::OAccessible> pAccParent = 
GetAccessibleParent();
+        if (pAccParent.is())
+            m_xAccessible = new AccessibleBrowseBox(pAccParent, *this);
     }
 
     return m_xAccessible;
diff --git a/vcl/inc/accessibility/accessibletablistbox.hxx 
b/vcl/inc/accessibility/accessibletablistbox.hxx
index 5b6e0ea60576..f1678f0c6ab6 100644
--- a/vcl/inc/accessibility/accessibletablistbox.hxx
+++ b/vcl/inc/accessibility/accessibletablistbox.hxx
@@ -30,10 +30,10 @@ private:
 
 public:
     /** ctor()
-        @param rxParent  XAccessible interface of the parent object.
+        @param rpParent Accessible parent object.
         @param rBox  The HeaderTabListBox control. */
     AccessibleTabListBox(
-        const css::uno::Reference< css::accessibility::XAccessible >& rxParent,
+        const rtl::Reference<comphelper::OAccessible>& rpParent,
         SvHeaderTabListBox& rBox );
 
     // XAccessibleContext -----------------------------------------------------
diff --git a/vcl/source/accessibility/AccessibleBrowseBox.cxx 
b/vcl/source/accessibility/AccessibleBrowseBox.cxx
index 011c47f08679..934f82a6e804 100644
--- a/vcl/source/accessibility/AccessibleBrowseBox.cxx
+++ b/vcl/source/accessibility/AccessibleBrowseBox.cxx
@@ -35,9 +35,9 @@ using namespace ::com::sun::star::accessibility;
 // Ctor/Dtor/disposing
 
 AccessibleBrowseBox::AccessibleBrowseBox(
-    const css::uno::Reference<css::accessibility::XAccessible>& _rxParent,
+    const rtl::Reference<comphelper::OAccessible>& rpParent,
     ::vcl::IAccessibleTableProvider& _rBrowseBox)
-    : AccessibleBrowseBoxBase(_rxParent, _rBrowseBox, nullptr,
+    : AccessibleBrowseBoxBase(rpParent, _rBrowseBox, nullptr,
                               AccessibleBrowseBoxObjType::BrowseBox)
 {
     
m_xFocusWindow.set(mpBrowseBox->GetWindowInstance()->GetComponentInterface(), 
css::uno::UNO_QUERY);
diff --git a/vcl/source/accessibility/accessibletablistbox.cxx 
b/vcl/source/accessibility/accessibletablistbox.cxx
index 5e08e5ceee74..9479bf5494a6 100644
--- a/vcl/source/accessibility/accessibletablistbox.cxx
+++ b/vcl/source/accessibility/accessibletablistbox.cxx
@@ -32,9 +32,9 @@ using namespace ::com::sun::star;
 
 // Ctor() and Dtor()
 
-AccessibleTabListBox::AccessibleTabListBox(const Reference<XAccessible>& 
rxParent,
+AccessibleTabListBox::AccessibleTabListBox(const 
rtl::Reference<comphelper::OAccessible>& rpParent,
                                            SvHeaderTabListBox& rBox)
-    : AccessibleBrowseBox(rxParent, rBox)
+    : AccessibleBrowseBox(rpParent, rBox)
     , m_pTabListBox(&rBox)
 {
 }
diff --git a/vcl/source/treelist/svtabbx.cxx b/vcl/source/treelist/svtabbx.cxx
index 8607d40a1cfb..ebed8e79ac8e 100644
--- a/vcl/source/treelist/svtabbx.cxx
+++ b/vcl/source/treelist/svtabbx.cxx
@@ -1100,10 +1100,10 @@ rtl::Reference<comphelper::OAccessible> 
SvHeaderTabListBox::CreateAccessible()
     if (m_xAccessible.is())
         return m_xAccessible;
 
-    Reference< XAccessible > xAccParent = GetAccessibleParent();
-    if ( xAccParent.is() )
+    rtl::Reference<comphelper::OAccessible> pAccParent = GetAccessibleParent();
+    if (pAccParent.is())
     {
-        m_xAccessible = new AccessibleTabListBox(xAccParent, *this);
+        m_xAccessible = new AccessibleTabListBox(pAccParent, *this);
         return m_xAccessible;
     }
     return nullptr;
commit 89bb4bf32f5ad3060af8fea6ca7224b71234d890
Author:     Michael Weghorn <[email protected]>
AuthorDate: Wed Sep 10 14:58:12 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Wed Sep 10 20:48:23 2025 +0200

    vcl a11y: Return OAccessible in misc AccessibleBrowseBox methods
    
    Return more concrete OAccessible instead of the abstract XAccessible
    UNO interface.
    
    Change-Id: I8a54e5f206fcff601770376a3fdeff1e737a72a6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/190768
    Reviewed-by: Michael Weghorn <[email protected]>
    Tested-by: Jenkins

diff --git a/include/vcl/accessibility/AccessibleBrowseBox.hxx 
b/include/vcl/accessibility/AccessibleBrowseBox.hxx
index 77f9a91aef17..003fc0d62267 100644
--- a/include/vcl/accessibility/AccessibleBrowseBox.hxx
+++ b/include/vcl/accessibility/AccessibleBrowseBox.hxx
@@ -107,12 +107,11 @@ public:
 
     /** returns the accessible object for the row or the column header bar
     */
-    css::uno::Reference<css::accessibility::XAccessible>
-    getHeaderBar(AccessibleBrowseBoxObjType eObjType);
+    rtl::Reference<comphelper::OAccessible> 
getHeaderBar(AccessibleBrowseBoxObjType eObjType);
 
     /** returns the accessible object for the table representation
     */
-    css::uno::Reference<css::accessibility::XAccessible> getTable();
+    rtl::Reference<comphelper::OAccessible> getTable();
 
 protected:
     // internal virtual methods
@@ -126,10 +125,8 @@ protected:
     /** This method returns one of the children that are always present:
         Data table, row and column header bar or corner control.
         @attention  This method requires locked mutex's and a living object.
-        @return  The XAccessible interface of the specified child. */
-    css::uno::Reference<
-        css::accessibility::XAccessible >
-    implGetFixedChild( sal_Int64 nChildIndex );
+        @return  The accessible object of the specified child. */
+    rtl::Reference<comphelper::OAccessible> implGetFixedChild(sal_Int64 
nChildIndex);
 
     /** This method creates and returns an accessible table.
         @return  An AccessibleBrowseBoxTable. */
diff --git a/vcl/inc/accessibility/accessibletablistbox.hxx 
b/vcl/inc/accessibility/accessibletablistbox.hxx
index 59050a82540c..5b6e0ea60576 100644
--- a/vcl/inc/accessibility/accessibletablistbox.hxx
+++ b/vcl/inc/accessibility/accessibletablistbox.hxx
@@ -45,8 +45,7 @@ public:
     virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL
     getAccessibleChild( sal_Int64 nChildIndex ) override;
 
-    css::uno::Reference< css::accessibility::XAccessible >
-        getHeaderBar()
+    rtl::Reference<comphelper::OAccessible> getHeaderBar()
     {
         return AccessibleBrowseBox::getHeaderBar( 
AccessibleBrowseBoxObjType::ColumnHeaderBar );
     }
diff --git a/vcl/source/accessibility/AccessibleBrowseBox.cxx 
b/vcl/source/accessibility/AccessibleBrowseBox.cxx
index 602789b90843..011c47f08679 100644
--- a/vcl/source/accessibility/AccessibleBrowseBox.cxx
+++ b/vcl/source/accessibility/AccessibleBrowseBox.cxx
@@ -158,7 +158,7 @@ tools::Rectangle AccessibleBrowseBox::implGetBoundingBox()
     return mpBrowseBox->GetWindowExtentsRelative( *pParent );
 }
 
-css::uno::Reference<css::accessibility::XAccessible> 
AccessibleBrowseBox::getTable()
+rtl::Reference<comphelper::OAccessible> AccessibleBrowseBox::getTable()
 {
     if( !mxTable.is() )
     {
@@ -168,7 +168,7 @@ css::uno::Reference<css::accessibility::XAccessible> 
AccessibleBrowseBox::getTab
     return mxTable;
 }
 
-css::uno::Reference<css::accessibility::XAccessible>
+rtl::Reference<comphelper::OAccessible>
 AccessibleBrowseBox::getHeaderBar(AccessibleBrowseBoxObjType eObjType)
 {
     if( eObjType == AccessibleBrowseBoxObjType::RowHeaderBar )
@@ -184,11 +184,11 @@ 
AccessibleBrowseBox::getHeaderBar(AccessibleBrowseBoxObjType eObjType)
         return mxColumnHeaderBar;
     }
 
-    return css::uno::Reference<css::accessibility::XAccessible>();
+    return {};
 }
 
-css::uno::Reference< css::accessibility::XAccessible >
-AccessibleBrowseBox::implGetFixedChild( sal_Int64 nChildIndex )
+rtl::Reference<comphelper::OAccessible>
+AccessibleBrowseBox::implGetFixedChild(sal_Int64 nChildIndex)
 {
     switch( nChildIndex )
     {

Reply via email to