include/vcl/weld.hxx                |    3 +++
 include/vcl/window.hxx              |    3 +++
 svx/uiconfig/ui/sidebarparagraph.ui |   35 +++++++++++++++++++++++++++++++++++
 vcl/inc/qt5/QtInstanceWidget.hxx    |    4 ++++
 vcl/inc/salvtables.hxx              |    4 ++++
 vcl/inc/window.h                    |    1 +
 vcl/qt5/QtInstanceWidget.cxx        |    4 ++++
 vcl/source/app/salvtables.cxx       |    4 ++++
 vcl/source/window/window.cxx        |    2 ++
 vcl/source/window/window2.cxx       |   15 +++++++++++++++
 vcl/unx/gtk3/gtkinst.cxx            |    9 +++++++++
 11 files changed, 84 insertions(+)

New commits:
commit 60fc3dcc2ab77e3905c66b5ad1eda08cdc89dec9
Author:     Henry Castro <[email protected]>
AuthorDate: Wed Feb 4 08:11:05 2026 -0400
Commit:     Caolán McNamara <[email protected]>
CommitDate: Fri Feb 27 09:15:39 2026 +0100

    vcl: add Cargo text generic data
    
    It's useful to send generic custom JSON
    properties to the client side.
    
    Signed-off-by: Henry Castro <[email protected]>
    Change-Id: Ic58dc0ade0e1c247a68eac4164b5c2afe6ecc631
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198684
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Caolán McNamara <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200541

diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 9d5f2257bf2a..b1182382e570 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -316,6 +316,9 @@ public:
     virtual bool get_direction() const = 0;
     virtual void set_direction(bool bRTL) = 0;
 
+    virtual const OUString& get_cargo_text() = 0;
+    virtual void set_cargo_text(const OUString& rCargo) = 0;
+
     /* Increases the freeze count on widget.
 
        If the freeze count is non-zero, emission of the widget's notifications
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index bb793d71ea51..e42c69aa5c08 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -1053,6 +1053,9 @@ public:
     void                                SetHelpId( const OUString& );
     const OUString&                     GetHelpId() const;
 
+    void                                SetCargoText( const OUString& 
rCargoText );
+    const OUString&                     GetCargoText() const;
+
     sal_uInt16                          GetChildCount() const;
     vcl::Window*                        GetChild( sal_uInt16 nChild ) const;
     vcl::Window*                        GetWindow( GetWindowType nType ) const;
diff --git a/vcl/inc/qt5/QtInstanceWidget.hxx b/vcl/inc/qt5/QtInstanceWidget.hxx
index 045b1c9855ab..8a77f7898be5 100644
--- a/vcl/inc/qt5/QtInstanceWidget.hxx
+++ b/vcl/inc/qt5/QtInstanceWidget.hxx
@@ -133,6 +133,10 @@ public:
 
     virtual void set_direction(bool bRTL) override;
 
+    const OUString& get_cargo_text() override;
+
+    void set_cargo_text(const OUString& rCargo) override;
+
     virtual void freeze() override;
 
     virtual void thaw() override;
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 17f29f3d6132..ded6170b5990 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -344,6 +344,10 @@ public:
 
     virtual void set_direction(bool bRTL) override;
 
+    virtual const OUString& get_cargo_text() override;
+
+    virtual void set_cargo_text(const OUString& rCargo) override;
+
     virtual void freeze() override;
 
     virtual void thaw() override;
diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index 3173eac28712..b2190c327761 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -283,6 +283,7 @@ public:
     OUString            maHelpText;
     OUString            maQuickHelpText;
     OUString            maID;
+    OUString            maCargoText;
     InputContext        maInputContext;
     css::uno::Reference< css::awt::XVclWindowPeer > mxWindowPeer;
     rtl::Reference<comphelper::OAccessible> mpAccessible;
diff --git a/vcl/qt5/QtInstanceWidget.cxx b/vcl/qt5/QtInstanceWidget.cxx
index 8531e279703a..c8457995f37c 100644
--- a/vcl/qt5/QtInstanceWidget.cxx
+++ b/vcl/qt5/QtInstanceWidget.cxx
@@ -687,6 +687,10 @@ bool QtInstanceWidget::get_direction() const
     return bRTL;
 }
 
+const OUString& QtInstanceWidget::get_cargo_text() { return EMPTY_OUSTRING; }
+
+void QtInstanceWidget::set_cargo_text(const OUString& /*rCargo*/) {}
+
 void QtInstanceWidget::set_direction(bool bRTL)
 {
     SolarMutexGuard g;
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 9bd614688618..cbae738545ad 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -604,6 +604,10 @@ bool SalInstanceWidget::get_direction() const { return 
m_xWidget->IsRTLEnabled()
 
 void SalInstanceWidget::set_direction(bool bRTL) { m_xWidget->EnableRTL(bRTL); 
}
 
+const OUString& SalInstanceWidget::get_cargo_text() { return 
m_xWidget->GetCargoText(); };
+
+void SalInstanceWidget::set_cargo_text(const OUString& rCargo) { 
m_xWidget->SetCargoText(rCargo); }
+
 void SalInstanceWidget::freeze()
 {
     if (m_nFreezeCount == 0)
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index 93a81bb259a6..435c82f1afa7 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -36,6 +36,7 @@
 #include <vcl/settings.hxx>
 #include <vcl/builder.hxx>
 #include <o3tl/string_view.hxx>
+#include <tools/json_writer.hxx>
 
 #include <window.h>
 #include <svdata.hxx>
@@ -1318,6 +1319,20 @@ const OUString& Window::GetQuickHelpText() const
     return mpWindowImpl->maQuickHelpText;
 }
 
+void Window::SetCargoText( const OUString& rCargoText )
+{
+    if (mpWindowImpl)
+        mpWindowImpl->maCargoText = rCargoText;
+}
+
+const OUString& Window::GetCargoText() const
+{
+    if (mpWindowImpl)
+        return mpWindowImpl->maCargoText;
+
+    return EMPTY_OUSTRING;
+}
+
 bool Window::IsCreatedWithToolkit() const
 {
     return mpWindowImpl->mbCreatedWithToolkit;
diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx
index 66d9e7b66457..95e3bf834bed 100644
--- a/vcl/unx/gtk3/gtkinst.cxx
+++ b/vcl/unx/gtk3/gtkinst.cxx
@@ -4002,6 +4002,15 @@ public:
         gtk_widget_set_direction(m_pWidget, bRTL ? GTK_TEXT_DIR_RTL : 
GTK_TEXT_DIR_LTR);
     }
 
+    const OUString& get_cargo_text() override
+    {
+        return EMPTY_OUSTRING;
+    }
+
+    void set_cargo_text(const OUString& /*rCargo*/) override
+    {
+    }
+
     virtual void freeze() override
     {
         ++m_nFreezeCount;
commit ea86fa03fd459cde3645936fe93c9b4e21e92bfb
Author:     codewithvk <[email protected]>
AuthorDate: Tue Feb 17 15:34:18 2026 +0530
Commit:     Caolán McNamara <[email protected]>
CommitDate: Fri Feb 27 09:15:29 2026 +0100

    a11y: add grouping roles to sidebar paragraph panel toolbars
    
    Signed-off-by: codewithvk <[email protected]>
    Change-Id: I39357a4b755a31a7c1a293ff9a74d423701b16ff
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199534
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Caolán McNamara <[email protected]>
    Reviewed-by: Parth Raiyani <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200534
    Tested-by: Caolán McNamara <[email protected]>

diff --git a/svx/uiconfig/ui/sidebarparagraph.ui 
b/svx/uiconfig/ui/sidebarparagraph.ui
index fa9e981c93d7..34686978d2c9 100644
--- a/svx/uiconfig/ui/sidebarparagraph.ui
+++ b/svx/uiconfig/ui/sidebarparagraph.ui
@@ -132,6 +132,11 @@
                     <property name="homogeneous">False</property>
                   </packing>
                 </child>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="horizontalalignment-atkobject">
+                    <property 
name="AtkObject::accessible-role">grouping</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -168,6 +173,11 @@
                     <property name="homogeneous">False</property>
                   </packing>
                 </child>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="writedirection-atkobject">
+                    <property 
name="AtkObject::accessible-role">grouping</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -221,6 +231,11 @@
                 <property name="position">2</property>
               </packing>
             </child>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="box1-atkobject">
+                <property name="AtkObject::accessible-role">grouping</property>
+              </object>
+            </child>
           </object>
           <packing>
             <property name="left-attach">0</property>
@@ -278,6 +293,11 @@
                     <property name="homogeneous">False</property>
                   </packing>
                 </child>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="paraspacing-atkobject">
+                    <property 
name="AtkObject::accessible-role">grouping</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -478,6 +498,11 @@
                     <property name="homogeneous">False</property>
                   </packing>
                 </child>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="indent-atkobject">
+                    <property 
name="AtkObject::accessible-role">grouping</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -856,6 +881,11 @@
                 <property name="homogeneous">False</property>
               </packing>
             </child>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="numberbullet-atkobject">
+                <property name="AtkObject::accessible-role">grouping</property>
+              </object>
+            </child>
           </object>
           <packing>
             <property name="left-attach">0</property>
@@ -1026,6 +1056,11 @@
                     <property name="position">0</property>
                   </packing>
                 </child>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="box2-atkobject">
+                    <property 
name="AtkObject::accessible-role">grouping</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index acb2be0c9a8c..d3a481d03d66 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -3414,6 +3414,8 @@ void Window::DumpAsPropertyTree(tools::JsonWriter& 
rJsonWriter)
     sal_uInt16 nAccessibleRole = GetAccessibleRole();
     if (nAccessibleRole == css::accessibility::AccessibleRole::PAGE_TAB_LIST)
         sAccRole = "tablist";
+    else if (nAccessibleRole == css::accessibility::AccessibleRole::GROUP_BOX)
+        sAccRole = "group";
 
     vcl::Window* pAccLabelFor = getAccessibleRelationLabelFor();
     if (pAccLabelFor)

Reply via email to