vcl/source/window/accessibility.cxx |  147 ++++++++++++++++++++++++++----------
 1 file changed, 107 insertions(+), 40 deletions(-)

New commits:
commit 520722210d9ffcf57b08e4bd7dd8803c5190937c
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Thu Apr 11 09:39:08 2024 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Thu Apr 11 23:53:52 2024 +0200

    a11y: Assign a11y role for WindowType::PROGRESSBAR
    
    `WindowType::PROGRESSBAR` was recently added in
    
        commit 460a7103664ac8dc60e260c56e5113d689b8072f
        Author: Hubert Figuière <h...@collabora.com>
        Date:   Fri Mar 22 09:59:54 2024 -0400
    
            vcl: Implement JSLevelBar
    
            This fixes the JSDialog layout of the sheet protection dialog.
            This was introduced for 24.02 to provide password strength 
indication
            of the sheet password.
    
            Defined a new WindowType of PROGRESSBAR.
            The type property in JSDialog JSON will be "progressbar".
    
    Map it to the corresponding a11y role,
    `accessibility::AccessibleRole::PROGRESS_BAR`, so
    it's reported as such on the a11y level.
    
    The role can e.g. be seen in Accerciser for the password strength
    indicator (progress bar) in the dialog to set a document password
    (shown when checking the "Save with password" checkbox in the Save
    dialog in Writer).
    
    Before:
    
        In [2]: acc.role
        Out[2]: <enum ATSPI_ROLE_PANEL of type Atspi.Role>
    
    With this commit in place:
    
        In [8]: acc.role
        Out[8]: <enum ATSPI_ROLE_PROGRESS_BAR of type Atspi.Role>
    
    Change-Id: Idfd7798641e30632a9ffd2ea07a79d42d159a51f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165989
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/source/window/accessibility.cxx 
b/vcl/source/window/accessibility.cxx
index 47f46ee44ab7..e48d5d22dd5e 100644
--- a/vcl/source/window/accessibility.cxx
+++ b/vcl/source/window/accessibility.cxx
@@ -363,6 +363,10 @@ sal_uInt16 Window::getDefaultAccessibleRole() const
             nRole = accessibility::AccessibleRole::TOOL_TIP;
             break;
 
+        case WindowType::PROGRESSBAR:
+            nRole = accessibility::AccessibleRole::PROGRESS_BAR;
+            break;
+
         case WindowType::RULER:
             nRole = accessibility::AccessibleRole::RULER;
             break;
commit 0de33d779747d4117348daf92b08b105102968b3
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Thu Apr 11 09:17:39 2024 +0200
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Thu Apr 11 23:53:45 2024 +0200

    vcl a11y: Reformat switch-case in Window::getDefaultAccessibleRole
    
    Use more standard formatting for this switch-case in
    `Window::getDefaultAccessibleRole` (mostly done by clang-format).
    It helps at least myself see more easily what a11y role
    a window type is mapped to as the assignment and break are
    on separate, further indented lines now.
    
    Change-Id: Ic6c7588f2212055812cd32d34eccbaf27fa41eb0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165988
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/source/window/accessibility.cxx 
b/vcl/source/window/accessibility.cxx
index 72dc2797d935..47f46ee44ab7 100644
--- a/vcl/source/window/accessibility.cxx
+++ b/vcl/source/window/accessibility.cxx
@@ -215,111 +215,174 @@ void Window::SetAccessibleRole( sal_uInt16 nRole )
 sal_uInt16 Window::getDefaultAccessibleRole() const
 {
     sal_uInt16 nRole = 0xFFFF;
-    switch ( GetType() )
+    switch (GetType())
     {
-        case WindowType::MESSBOX:    // MT: Would be nice to have special 
roles!
+        case WindowType::MESSBOX: // MT: Would be nice to have special roles!
         case WindowType::INFOBOX:
         case WindowType::WARNINGBOX:
         case WindowType::ERRORBOX:
-        case WindowType::QUERYBOX: nRole = 
accessibility::AccessibleRole::ALERT; break;
+        case WindowType::QUERYBOX:
+            nRole = accessibility::AccessibleRole::ALERT;
+            break;
 
         case WindowType::MODELESSDIALOG:
         case WindowType::TABDIALOG:
         case WindowType::BUTTONDIALOG:
-        case WindowType::DIALOG: nRole = 
accessibility::AccessibleRole::DIALOG; break;
+        case WindowType::DIALOG:
+            nRole = accessibility::AccessibleRole::DIALOG;
+            break;
 
         case WindowType::PUSHBUTTON:
         case WindowType::OKBUTTON:
         case WindowType::CANCELBUTTON:
         case WindowType::HELPBUTTON:
         case WindowType::IMAGEBUTTON:
-        case WindowType::MOREBUTTON: nRole = 
accessibility::AccessibleRole::PUSH_BUTTON; break;
-        case WindowType::MENUBUTTON: nRole = 
accessibility::AccessibleRole::BUTTON_MENU; break;
+        case WindowType::MOREBUTTON:
+            nRole = accessibility::AccessibleRole::PUSH_BUTTON;
+            break;
+        case WindowType::MENUBUTTON:
+            nRole = accessibility::AccessibleRole::BUTTON_MENU;
+            break;
 
-        case WindowType::RADIOBUTTON: nRole = 
accessibility::AccessibleRole::RADIO_BUTTON; break;
+        case WindowType::RADIOBUTTON:
+            nRole = accessibility::AccessibleRole::RADIO_BUTTON;
+            break;
         case WindowType::TRISTATEBOX:
-        case WindowType::CHECKBOX: nRole = 
accessibility::AccessibleRole::CHECK_BOX; break;
+        case WindowType::CHECKBOX:
+            nRole = accessibility::AccessibleRole::CHECK_BOX;
+            break;
 
-        case WindowType::MULTILINEEDIT: nRole = 
accessibility::AccessibleRole::SCROLL_PANE; break;
+        case WindowType::MULTILINEEDIT:
+            nRole = accessibility::AccessibleRole::SCROLL_PANE;
+            break;
 
         case WindowType::PATTERNFIELD:
-        case WindowType::EDIT: nRole = static_cast<Edit const 
*>(this)->IsPassword() ? accessibility::AccessibleRole::PASSWORD_TEXT : 
accessibility::AccessibleRole::TEXT; break;
+        case WindowType::EDIT:
+            nRole = static_cast<Edit const*>(this)->IsPassword()
+                        ? accessibility::AccessibleRole::PASSWORD_TEXT
+                        : accessibility::AccessibleRole::TEXT;
+            break;
 
         case WindowType::PATTERNBOX:
         case WindowType::NUMERICBOX:
         case WindowType::METRICBOX:
         case WindowType::CURRENCYBOX:
         case WindowType::LONGCURRENCYBOX:
-        case WindowType::COMBOBOX: nRole = 
accessibility::AccessibleRole::COMBO_BOX; break;
+        case WindowType::COMBOBOX:
+            nRole = accessibility::AccessibleRole::COMBO_BOX;
+            break;
 
         case WindowType::LISTBOX:
-        case WindowType::MULTILISTBOX: nRole = 
accessibility::AccessibleRole::LIST; break;
+        case WindowType::MULTILISTBOX:
+            nRole = accessibility::AccessibleRole::LIST;
+            break;
 
-        case WindowType::TREELISTBOX: nRole = 
accessibility::AccessibleRole::TREE; break;
+        case WindowType::TREELISTBOX:
+            nRole = accessibility::AccessibleRole::TREE;
+            break;
 
-        case WindowType::FIXEDTEXT: nRole = 
accessibility::AccessibleRole::LABEL; break;
+        case WindowType::FIXEDTEXT:
+            nRole = accessibility::AccessibleRole::LABEL;
+            break;
         case WindowType::FIXEDLINE:
-            if( !GetText().isEmpty() )
+            if (!GetText().isEmpty())
                 nRole = accessibility::AccessibleRole::LABEL;
             else
                 nRole = accessibility::AccessibleRole::SEPARATOR;
             break;
 
         case WindowType::FIXEDBITMAP:
-        case WindowType::FIXEDIMAGE: nRole = 
accessibility::AccessibleRole::ICON; break;
-        case WindowType::GROUPBOX: nRole = 
accessibility::AccessibleRole::GROUP_BOX; break;
-        case WindowType::SCROLLBAR: nRole = 
accessibility::AccessibleRole::SCROLL_BAR; break;
+        case WindowType::FIXEDIMAGE:
+            nRole = accessibility::AccessibleRole::ICON;
+            break;
+        case WindowType::GROUPBOX:
+            nRole = accessibility::AccessibleRole::GROUP_BOX;
+            break;
+        case WindowType::SCROLLBAR:
+            nRole = accessibility::AccessibleRole::SCROLL_BAR;
+            break;
 
         case WindowType::SLIDER:
         case WindowType::SPLITTER:
-        case WindowType::SPLITWINDOW: nRole = 
accessibility::AccessibleRole::SPLIT_PANE; break;
+        case WindowType::SPLITWINDOW:
+            nRole = accessibility::AccessibleRole::SPLIT_PANE;
+            break;
 
         case WindowType::DATEBOX:
         case WindowType::TIMEBOX:
         case WindowType::DATEFIELD:
-        case WindowType::TIMEFIELD: nRole = 
accessibility::AccessibleRole::DATE_EDITOR; break;
+        case WindowType::TIMEFIELD:
+            nRole = accessibility::AccessibleRole::DATE_EDITOR;
+            break;
 
         case WindowType::METRICFIELD:
         case WindowType::CURRENCYFIELD:
         case WindowType::SPINBUTTON:
         case WindowType::SPINFIELD:
-        case WindowType::FORMATTEDFIELD: nRole = 
accessibility::AccessibleRole::SPIN_BOX; break;
+        case WindowType::FORMATTEDFIELD:
+            nRole = accessibility::AccessibleRole::SPIN_BOX;
+            break;
 
-        case WindowType::TOOLBOX: nRole = 
accessibility::AccessibleRole::TOOL_BAR; break;
-        case WindowType::STATUSBAR: nRole = 
accessibility::AccessibleRole::STATUS_BAR; break;
+        case WindowType::TOOLBOX:
+            nRole = accessibility::AccessibleRole::TOOL_BAR;
+            break;
+        case WindowType::STATUSBAR:
+            nRole = accessibility::AccessibleRole::STATUS_BAR;
+            break;
 
-        case WindowType::TABPAGE: nRole = 
accessibility::AccessibleRole::PANEL; break;
-        case WindowType::TABCONTROL: nRole = 
accessibility::AccessibleRole::PAGE_TAB_LIST; break;
+        case WindowType::TABPAGE:
+            nRole = accessibility::AccessibleRole::PANEL;
+            break;
+        case WindowType::TABCONTROL:
+            nRole = accessibility::AccessibleRole::PAGE_TAB_LIST;
+            break;
 
-        case WindowType::DOCKINGWINDOW: nRole = (mpWindowImpl->mbFrame) ? 
accessibility::AccessibleRole::FRAME :
-                                                                      
accessibility::AccessibleRole::PANEL; break;
+        case WindowType::DOCKINGWINDOW:
+            nRole = (mpWindowImpl->mbFrame) ? 
accessibility::AccessibleRole::FRAME
+                                            : 
accessibility::AccessibleRole::PANEL;
+            break;
 
-        case WindowType::FLOATINGWINDOW: nRole = ( mpWindowImpl->mbFrame ||
-                                             (mpWindowImpl->mpBorderWindow && 
mpWindowImpl->mpBorderWindow->mpWindowImpl->mbFrame) ||
-                                             (GetStyle() & 
WB_OWNERDRAWDECORATION) ) ? accessibility::AccessibleRole::FRAME :
-                                                                               
        accessibility::AccessibleRole::WINDOW; break;
+        case WindowType::FLOATINGWINDOW:
+            nRole = (mpWindowImpl->mbFrame
+                     || (mpWindowImpl->mpBorderWindow
+                         && 
mpWindowImpl->mpBorderWindow->mpWindowImpl->mbFrame)
+                     || (GetStyle() & WB_OWNERDRAWDECORATION))
+                        ? accessibility::AccessibleRole::FRAME
+                        : accessibility::AccessibleRole::WINDOW;
+            break;
 
-        case WindowType::WORKWINDOW: nRole = 
accessibility::AccessibleRole::ROOT_PANE; break;
+        case WindowType::WORKWINDOW:
+            nRole = accessibility::AccessibleRole::ROOT_PANE;
+            break;
 
-        case WindowType::SCROLLBARBOX: nRole = 
accessibility::AccessibleRole::FILLER; break;
+        case WindowType::SCROLLBARBOX:
+            nRole = accessibility::AccessibleRole::FILLER;
+            break;
 
-        case WindowType::HELPTEXTWINDOW: nRole = 
accessibility::AccessibleRole::TOOL_TIP; break;
+        case WindowType::HELPTEXTWINDOW:
+            nRole = accessibility::AccessibleRole::TOOL_TIP;
+            break;
 
-        case WindowType::RULER: nRole = accessibility::AccessibleRole::RULER; 
break;
+        case WindowType::RULER:
+            nRole = accessibility::AccessibleRole::RULER;
+            break;
 
-        case WindowType::SCROLLWINDOW: nRole = 
accessibility::AccessibleRole::SCROLL_PANE; break;
+        case WindowType::SCROLLWINDOW:
+            nRole = accessibility::AccessibleRole::SCROLL_PANE;
+            break;
 
         case WindowType::WINDOW:
         case WindowType::CONTROL:
         case WindowType::BORDERWINDOW:
         case WindowType::SYSTEMCHILDWINDOW:
         default:
-            if (IsNativeFrame() )
+            if (IsNativeFrame())
                 nRole = accessibility::AccessibleRole::FRAME;
-            else if( IsScrollable() )
+            else if (IsScrollable())
                 nRole = accessibility::AccessibleRole::SCROLL_PANE;
-            else if( this->ImplGetWindow()->IsMenuFloatingWindow() )
-                nRole = accessibility::AccessibleRole::WINDOW;      // 
#106002#, contextmenus are windows (i.e. toplevel)
+            else if (this->ImplGetWindow()->IsMenuFloatingWindow())
+                // #106002#, contextmenus are windows (i.e. toplevel)
+                nRole = accessibility::AccessibleRole::WINDOW;
             else
                 // #104051# WINDOW seems to be a bad default role, use 
LAYEREDPANE instead
                 // a WINDOW is interpreted as a top-level window, which is 
typically not the case

Reply via email to