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 e54eb528c435130a1f7092535b51780ea98ac38f
Author:     Parth Raiyani <[email protected]>
AuthorDate: Wed Jan 28 15:56:44 2026 +0530
Commit:     Caolán McNamara <[email protected]>
CommitDate: Thu Jan 29 13:08:58 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]>

diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index 618249000715..ec43d7d21411 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -2352,7 +2352,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 21a97c79793d..8df5c428cd4e 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 fe9296945fa1..25746b09ad63 100644
--- a/cui/uiconfig/ui/pageformatpage.ui
+++ b/cui/uiconfig/ui/pageformatpage.ui
@@ -797,6 +797,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 47f5865d2b6f..40dc9acaecda 100644
--- a/cui/uiconfig/ui/paragalignpage.ui
+++ b/cui/uiconfig/ui/paragalignpage.ui
@@ -171,6 +171,11 @@
                         <property name="can-focus">False</property>
                         <property name="label" translatable="yes" 
context="paragalignpage|labelST_RIGHTALIGN_ASIAN">Righ_t/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>
@@ -183,6 +188,11 @@
                         <property name="can-focus">False</property>
                         <property name="label" translatable="yes" 
context="paragalignpage|labelST_LEFTALIGN_ASIAN">_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>
@@ -194,6 +204,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 c7d5eacf6ae2..863959187ac4 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 234c2e2ec17a..f51a1eb38c08 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 8b0b47d117e3..10afab09a517 100644
--- a/cui/uiconfig/ui/textflowpage.ui
+++ b/cui/uiconfig/ui/textflowpage.ui
@@ -845,6 +845,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>
@@ -857,6 +862,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 0bce3b3f4381..70f1a0c79843 100644
--- a/svx/source/dialog/hdft.cxx
+++ b/svx/source/dialog/hdft.cxx
@@ -134,7 +134,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 3da060454577..faeff6e060a1 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 577d178e92ac..cab2527a39a6 100644
--- a/sw/source/ui/table/tabledlg.cxx
+++ b/sw/source/ui/table/tabledlg.cxx
@@ -742,11 +742,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_xModifyTableCB(m_xBuilder->weld_check_button(u"adaptwidth"_ustr))
     , m_xProportionalCB(m_xBuilder->weld_check_button(u"adaptcolumns"_ustr))
     , m_xSpaceFT(m_xBuilder->weld_label(u"spaceft"_ustr))
diff --git a/sw/uiconfig/swriter/ui/tablecolumnpage.ui 
b/sw/uiconfig/swriter/ui/tablecolumnpage.ui
index d9dca74f260d..b5cd3de4b966 100644
--- a/sw/uiconfig/swriter/ui/tablecolumnpage.ui
+++ b/sw/uiconfig/swriter/ui/tablecolumnpage.ui
@@ -112,7 +112,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>
@@ -292,7 +296,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>
@@ -306,7 +310,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>
@@ -320,7 +324,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>
@@ -335,7 +339,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>
@@ -350,7 +354,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>
@@ -365,7 +369,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 5f11d31e0b7b..6fdf9718d570 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