cui/source/tabpages/numpages.cxx          |    2 
 cui/uiconfig/ui/numberingpositionpage.ui  |    2 
 cui/uiconfig/ui/pageformatpage.ui         |    5 +
 cui/uiconfig/ui/paragalignpage.ui         |   15 ++++
 cui/uiconfig/ui/patterntabpage.ui         |   10 +++
 cui/uiconfig/ui/pickgraphicpage.ui        |    5 +
 cui/uiconfig/ui/textflowpage.ui           |   10 +++
 svx/source/dialog/hdft.cxx                |    2 
 svx/uiconfig/ui/headfootformatpage.ui     |    2 
 sw/source/ui/table/tabledlg.cxx           |   10 +--
 sw/uiconfig/swriter/ui/tablecolumnpage.ui |   18 +++--
 sw/uiconfig/swriter/ui/wordcount.ui       |   95 ++++++++++++++++++++++++++++++
 12 files changed, 160 insertions(+), 16 deletions(-)

New commits:
commit e99068e4c33652a706c3d7fda2fccebd27d8292a
Author:     Parth Raiyani <[email protected]>
AuthorDate: Wed Jan 28 15:56:44 2026 +0530
Commit:     Caolán McNamara <[email protected]>
CommitDate: Thu Feb 26 20:51:57 2026 +0100

    a11y: enhance accessibility features in various UI components
    
    - rename conflicting label ids
    - add static role for relevant GtkLabels
    
    Signed-off-by: Parth Raiyani <[email protected]>
    Change-Id: I959693ba5251adf12da785f8aad2147504009b18
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198312
    Reviewed-by: Caolán McNamara <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/200486

diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index 0ad2d96bc438..b73fd2eccc6a 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -2390,7 +2390,7 @@ 
SvxNumPositionTabPage::SvxNumPositionTabPage(weld::Container* pPage, weld::Dialo
     , bInInintControl(false)
     , bLabelAlignmentPosAndSpaceModeActive(false)
     , m_xLevelLB(m_xBuilder->weld_tree_view(u"levellb"_ustr))
-    , m_xDistBorderFT(m_xBuilder->weld_label(u"indent"_ustr))
+    , m_xDistBorderFT(m_xBuilder->weld_label(u"numposindent"_ustr))
     , m_xDistBorderMF(m_xBuilder->weld_metric_spin_button(u"indentmf"_ustr, 
FieldUnit::CM))
     , m_xRelativeCB(m_xBuilder->weld_check_button(u"relative"_ustr))
     , m_xIndentFT(m_xBuilder->weld_label(u"numberingwidth"_ustr))
diff --git a/cui/uiconfig/ui/numberingpositionpage.ui 
b/cui/uiconfig/ui/numberingpositionpage.ui
index 85b766809132..298366dafbc6 100644
--- a/cui/uiconfig/ui/numberingpositionpage.ui
+++ b/cui/uiconfig/ui/numberingpositionpage.ui
@@ -285,7 +285,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="indent">
+                  <object class="GtkLabel" id="numposindent">
                     <property name="visible">True</property>
                     <property name="can-focus">False</property>
                     <property name="label" translatable="yes" 
context="numberingpositionpage|indent">Indent:</property>
diff --git a/cui/uiconfig/ui/pageformatpage.ui 
b/cui/uiconfig/ui/pageformatpage.ui
index a680f0c3b25d..fbf8347c945b 100644
--- a/cui/uiconfig/ui/pageformatpage.ui
+++ b/cui/uiconfig/ui/pageformatpage.ui
@@ -804,6 +804,11 @@
         <property name="label" translatable="yes" 
context="pageformatpage|labelMsg">The margin settings are out of print range.
 
 Do you still want to apply these settings?</property>
+        <child internal-child="accessible">
+          <object class="AtkObject" id="labelMsg-atkobject">
+            <property name="AtkObject::accessible-role">static</property>
+          </object>
+        </child>
       </object>
       <packing>
         <property name="left-attach">0</property>
diff --git a/cui/uiconfig/ui/paragalignpage.ui 
b/cui/uiconfig/ui/paragalignpage.ui
index aa40705593e9..6dc0dc21e079 100644
--- a/cui/uiconfig/ui/paragalignpage.ui
+++ b/cui/uiconfig/ui/paragalignpage.ui
@@ -243,6 +243,11 @@
                         <property name="can-focus">False</property>
                         <property name="label" translatable="yes" 
context="paragalignpage|labelST_RIGHTALIGN_ASIAN">Force R_ight/Bottom</property>
                         <property name="use-underline">True</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" 
id="labelST_RIGHTALIGN_ASIAN-atkobject">
+                            <property 
name="AtkObject::accessible-role">static</property>
+                          </object>
+                        </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -255,6 +260,11 @@
                         <property name="can-focus">False</property>
                         <property name="label" translatable="yes" 
context="paragalignpage|labelST_LEFTALIGN_ASIAN">Force _Left/Top</property>
                         <property name="use-underline">True</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" 
id="labelST_LEFTALIGN_ASIAN-atkobject">
+                            <property 
name="AtkObject::accessible-role">static</property>
+                          </object>
+                        </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -266,6 +276,11 @@
                       <object class="GtkLabel" id="labelST_VERTALIGN_SDR">
                         <property name="can-focus">False</property>
                         <property name="label" translatable="yes" 
context="paragalignpage|labelST_VERTALIGN_SDR">Vertical</property>
+                        <child internal-child="accessible">
+                          <object class="AtkObject" 
id="labelST_VERTALIGN_SDR-atkobject">
+                            <property 
name="AtkObject::accessible-role">static</property>
+                          </object>
+                        </child>
                       </object>
                       <packing>
                         <property name="expand">False</property>
diff --git a/cui/uiconfig/ui/patterntabpage.ui 
b/cui/uiconfig/ui/patterntabpage.ui
index d315103cd1e3..4d2e00d40719 100644
--- a/cui/uiconfig/ui/patterntabpage.ui
+++ b/cui/uiconfig/ui/patterntabpage.ui
@@ -162,6 +162,11 @@
                     <property name="can_focus">False</property>
                     <property name="label" translatable="yes" 
context="patterntabpage|label4">Pattern Editor:</property>
                     <property name="xalign">0</property>
+                    <child internal-child="accessible">
+                      <object class="AtkObject" id="label4-atkobject">
+                        <property 
name="AtkObject::accessible-role">static</property>
+                      </object>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
@@ -390,6 +395,11 @@
             <attributes>
               <attribute name="weight" value="bold"/>
             </attributes>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="label2-atkobject">
+                <property name="AtkObject::accessible-role">static</property>
+              </object>
+            </child>
           </object>
         </child>
       </object>
diff --git a/cui/uiconfig/ui/pickgraphicpage.ui 
b/cui/uiconfig/ui/pickgraphicpage.ui
index dfecd76fa922..a66523e509c7 100644
--- a/cui/uiconfig/ui/pickgraphicpage.ui
+++ b/cui/uiconfig/ui/pickgraphicpage.ui
@@ -59,6 +59,11 @@
         <property name="no-show-all">True</property>
         <property name="label" translatable="yes" 
context="pickgraphicpage|errorft">The Gallery theme 'Bullets' is empty (no 
images).</property>
         <property name="wrap">True</property>
+        <child internal-child="accessible">
+          <object class="AtkObject" id="errorft-atkobject">
+              <property name="AtkObject::accessible-role">static</property>
+          </object>
+        </child>
       </object>
       <packing>
         <property name="left-attach">0</property>
diff --git a/cui/uiconfig/ui/textflowpage.ui b/cui/uiconfig/ui/textflowpage.ui
index 0f9047f1f737..f0a377bbeee7 100644
--- a/cui/uiconfig/ui/textflowpage.ui
+++ b/cui/uiconfig/ui/textflowpage.ui
@@ -985,6 +985,11 @@
                 <property name="can-focus">False</property>
                 <property name="label" translatable="yes" 
context="textflowpage|labelOrphan">lines</property>
                 <property name="xalign">0</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="labelOrphan-atkobject">
+                    <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>
@@ -997,6 +1002,11 @@
                 <property name="can-focus">False</property>
                 <property name="label" translatable="yes" 
context="textflowpage|labelWidow">lines</property>
                 <property name="xalign">0</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="labelWidow-atkobject">
+                    <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>
diff --git a/svx/source/dialog/hdft.cxx b/svx/source/dialog/hdft.cxx
index 53bc257ba47b..5fddb8a8cd83 100644
--- a/svx/source/dialog/hdft.cxx
+++ b/svx/source/dialog/hdft.cxx
@@ -137,7 +137,7 @@ SvxHFPage::SvxHFPage(weld::Container* pPage, 
weld::DialogController* pController
     , m_xDistFT(m_xBuilder->weld_label(u"labelSpacing"_ustr))
     , m_xDistEdit(m_xBuilder->weld_metric_spin_button(u"spinSpacing"_ustr, 
FieldUnit::CM))
     , m_xDynSpacingCB(m_xBuilder->weld_check_button(u"checkDynSpacing"_ustr))
-    , m_xHeightFT(m_xBuilder->weld_label(u"labelHeight"_ustr))
+    , m_xHeightFT(m_xBuilder->weld_label(u"hfflabelHeight"_ustr))
     , m_xHeightEdit(m_xBuilder->weld_metric_spin_button(u"spinHeight"_ustr, 
FieldUnit::CM))
     , m_xHeightDynBtn(m_xBuilder->weld_check_button(u"checkAutofit"_ustr))
     , m_xBackgroundBtn(m_xBuilder->weld_button(u"buttonMore"_ustr))
diff --git a/svx/uiconfig/ui/headfootformatpage.ui 
b/svx/uiconfig/ui/headfootformatpage.ui
index bdad1120afeb..bab033c2145e 100644
--- a/svx/uiconfig/ui/headfootformatpage.ui
+++ b/svx/uiconfig/ui/headfootformatpage.ui
@@ -245,7 +245,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="labelHeight">
+                  <object class="GtkLabel" id="hfflabelHeight">
                     <property name="visible">True</property>
                     <property name="can-focus">False</property>
                     <property name="hexpand">True</property>
diff --git a/sw/source/ui/table/tabledlg.cxx b/sw/source/ui/table/tabledlg.cxx
index 5363a25126d0..d2a98eee7779 100644
--- a/sw/source/ui/table/tabledlg.cxx
+++ b/sw/source/ui/table/tabledlg.cxx
@@ -746,11 +746,11 @@ SwTableColumnPage::SwTableColumnPage(weld::Container* 
pPage, weld::DialogControl
                     m_xBuilder->weld_metric_spin_button(u"width3"_ustr, 
FieldUnit::CM),
                     m_xBuilder->weld_metric_spin_button(u"width4"_ustr, 
FieldUnit::CM),
                     m_xBuilder->weld_metric_spin_button(u"width5"_ustr, 
FieldUnit::CM)}
-    , m_aTextArr { m_xBuilder->weld_label(u"1"_ustr),
-                   m_xBuilder->weld_label(u"2"_ustr),
-                   m_xBuilder->weld_label(u"3"_ustr),
-                   m_xBuilder->weld_label(u"4"_ustr),
-                   m_xBuilder->weld_label(u"5"_ustr)}
+    , m_aTextArr { m_xBuilder->weld_label(u"column1"_ustr),
+                   m_xBuilder->weld_label(u"column2"_ustr),
+                   m_xBuilder->weld_label(u"column3"_ustr),
+                   m_xBuilder->weld_label(u"column4"_ustr),
+                   m_xBuilder->weld_label(u"column5"_ustr)}
     , m_xColumnWidthsGrid(m_xBuilder->weld_grid(u"columnwidthsgrid"_ustr))
     , m_xModifyTableCB(m_xBuilder->weld_check_button(u"adaptwidth"_ustr))
     , m_xProportionalCB(m_xBuilder->weld_check_button(u"adaptcolumns"_ustr))
diff --git a/sw/uiconfig/swriter/ui/tablecolumnpage.ui 
b/sw/uiconfig/swriter/ui/tablecolumnpage.ui
index 8803bb1f8d9f..d488e367bc1b 100644
--- a/sw/uiconfig/swriter/ui/tablecolumnpage.ui
+++ b/sw/uiconfig/swriter/ui/tablecolumnpage.ui
@@ -120,7 +120,11 @@
                 <property name="can-focus">False</property>
                 <property name="label" translatable="yes" 
context="tablecolumnpage|spaceft">Remaining space:</property>
                 <property name="use-underline">True</property>
-                <property name="mnemonic-widget">space</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="spaceft-atkobject">
+                    <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">0</property>
@@ -300,7 +304,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="6">
+                  <object class="GtkLabel" id="column6">
                     <property name="sensitive">False</property>
                     <property name="can-focus">False</property>
                     <property name="hexpand">True</property>
@@ -314,7 +318,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="1">
+                  <object class="GtkLabel" id="column1">
                     <property name="sensitive">False</property>
                     <property name="can-focus">False</property>
                     <property name="hexpand">True</property>
@@ -328,7 +332,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="2">
+                  <object class="GtkLabel" id="column2">
                     <property name="sensitive">False</property>
                     <property name="can-focus">False</property>
                     <property name="hexpand">True</property>
@@ -343,7 +347,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="3">
+                  <object class="GtkLabel" id="column3">
                     <property name="sensitive">False</property>
                     <property name="can-focus">False</property>
                     <property name="hexpand">True</property>
@@ -358,7 +362,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="5">
+                  <object class="GtkLabel" id="column5">
                     <property name="sensitive">False</property>
                     <property name="can-focus">False</property>
                     <property name="hexpand">True</property>
@@ -373,7 +377,7 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkLabel" id="4">
+                  <object class="GtkLabel" id="column4">
                     <property name="sensitive">False</property>
                     <property name="can-focus">False</property>
                     <property name="hexpand">True</property>
diff --git a/sw/uiconfig/swriter/ui/wordcount.ui 
b/sw/uiconfig/swriter/ui/wordcount.ui
index f039ced95b74..d3ae9fd8f4d9 100644
--- a/sw/uiconfig/swriter/ui/wordcount.ui
+++ b/sw/uiconfig/swriter/ui/wordcount.ui
@@ -75,6 +75,11 @@
                 <property name="can-focus">False</property>
                 <property name="label" translatable="yes" 
context="wordcount|label1">Words</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="label1-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">0</property>
@@ -87,6 +92,11 @@
                 <property name="can-focus">False</property>
                 <property name="label" translatable="yes" 
context="wordcount|label2">Characters including spaces</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="label2-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">0</property>
@@ -99,6 +109,11 @@
                 <property name="can-focus">False</property>
                 <property name="label" translatable="yes" 
context="wordcount|label3">Characters excluding spaces</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="label3-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">0</property>
@@ -114,6 +129,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="selectwords-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">1</property>
@@ -129,6 +149,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="selectchars-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">1</property>
@@ -144,6 +169,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="selectcharsnospaces-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">1</property>
@@ -159,6 +189,11 @@
                 <attributes>
                   <attribute name="weight" value="bold"/>
                 </attributes>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="label9-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">1</property>
@@ -174,6 +209,11 @@
                 <attributes>
                   <attribute name="weight" value="bold"/>
                 </attributes>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="label10-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>
@@ -189,6 +229,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="docwords-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>
@@ -204,6 +249,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="docchars-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>
@@ -219,6 +269,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="doccharsnospaces-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>
@@ -231,6 +286,11 @@
                 <property name="no-show-all">True</property>
                 <property name="label" translatable="yes" 
context="wordcount|cjkcharsft">Asian characters and Korean words</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="cjkcharsft-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">0</property>
@@ -246,6 +306,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="selectcjkchars-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">1</property>
@@ -261,6 +326,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="doccjkchars-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>
@@ -273,6 +343,11 @@
                 <property name="no-show-all">True</property>
                 <property name="label" translatable="yes" 
context="wordcount|standardizedpages">Standardized pages</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="standardizedpages-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">0</property>
@@ -288,6 +363,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" 
id="selectstandardizedpages-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">1</property>
@@ -303,6 +383,11 @@
                 <property name="label">            0</property>
                 <property name="justify">right</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" 
id="docstandardizedpages-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>
@@ -315,6 +400,11 @@
                 <property name="can-focus">False</property>
                 <property name="label" translatable="yes" 
context="wordcount|lbComments">Comments</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="lbComments-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">0</property>
@@ -329,6 +419,11 @@
                 <property name="hexpand">True</property>
                 <property name="label">            0</property>
                 <property name="xalign">1</property>
+                <child internal-child="accessible">
+                  <object class="AtkObject" id="docComments-atkobject">
+                      <property 
name="AtkObject::accessible-role">static</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left-attach">2</property>

Reply via email to