vcl/source/window/builder.cxx |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit f8e16f26a037a71349dc1a197b5ace204acb123b
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Fri Oct 6 17:27:40 2023 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Sat Oct 7 00:05:43 2023 +0200

    tdf#157639 a11y: Set proper role for status bar
    
    Set `css::accessibility::AccessibleRole::STATUS_BAR`
    as role for the `VclHBox`/`VclVBox` instances created
    for `GtkStatusBar` nodes in .ui files, so that they
    are properly exposed to the accessibility layer.
    
    This is e.g. required to make NVDA's feature to announce
    the status bar content (when pressing NVDA+End) work.
    
    An additional change on NVDA side is needed to make the
    announcement work. Pending PR:
    https://github.com/nvaccess/nvda/pull/15592
    
    Change-Id: Iac587be96ec941afd7625ee363949f5da0cbc873
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157659
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 6974cdce9ccd..3825c9674fb1 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -1679,6 +1679,9 @@ VclPtr<vcl::Window> VclBuilder::makeObject(vcl::Window 
*pParent, const OUString
             xWindow = VclPtr<VclVBox>::Create(pParent);
         else
             xWindow = VclPtr<VclHBox>::Create(pParent);
+
+        if (name == "GtkStatusbar")
+            
xWindow->SetAccessibleRole(css::accessibility::AccessibleRole::STATUS_BAR);
     }
     else if (name == "GtkPaned")
     {

Reply via email to