vcl/unx/gtk4/a11y.cxx |    1 +
 1 file changed, 1 insertion(+)

New commits:
commit e510da3b0379c63e6ecfefeb7358251591226701
Author:     Michael Weghorn <m.wegh...@posteo.de>
AuthorDate: Mon Nov 6 10:47:23 2023 +0100
Commit:     Michael Weghorn <m.wegh...@posteo.de>
CommitDate: Tue Nov 7 07:57:34 2023 +0100

    gtk4 a11y: Map PASSWORD_TEXT role to gtk text box role
    
    This is in line with what the `GtkPasswordEntry` doc [1]
    says:
    
    > `GtkPasswordEntry` uses the `GTK_ACCESSIBLE_ROLE_TEXT_BOX` role.
    
    Note however, that gtk's AT-SPI bridge has specific code to map
    that to AT-SPI's `ATSPI_ROLE_PASSWORD_TEXT` for `GtkPasswordEntry` [2],
    which won't apply for any custom LO widgets.
    
    Currently, LO uses `GtkEntry` for password entries for gtk4
    as well, e.g. the one in the "Tools" -> "Options" -> "Security"
    -> "Password for Web Connections" -> "Master Password" dialog,
    so those currently have an AT-SPI role of
    `ATSPI_ROLE_TEXT` for gtk4, while it is
    `ATSPI_ROLE_PASSWORD_TEXT` for gtk3.
    (That's independent of this change, since a native `GtkEntry` is
    used there. Changing this to use `GtkPasswordEntry` instead of
    `GtkEntry` for the gtk4 case should cause that to use
    `ATSPI_ROLE_PASSWORD_TEXT` as well.)
    
    [1] https://docs.gtk.org/gtk4/class.PasswordEntry.html#accessibility
    [2] 
https://gitlab.gnome.org/GNOME/gtk/-/blob/fe4b7a5159e8cc3e4918ad1829d71ff39edd5ba7/gtk/a11y/gtkatspiutils.c#L308-310
    
    Change-Id: Iec6c8685f017b565553fbc63b4403484be20ed1a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/158984
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <m.wegh...@posteo.de>

diff --git a/vcl/unx/gtk4/a11y.cxx b/vcl/unx/gtk4/a11y.cxx
index fcd9cb6fb949..2aae5bdefae6 100644
--- a/vcl/unx/gtk4/a11y.cxx
+++ b/vcl/unx/gtk4/a11y.cxx
@@ -184,6 +184,7 @@ map_accessible_role(const 
css::uno::Reference<css::accessibility::XAccessible>&
                 eRole = GTK_ACCESSIBLE_ROLE_SPIN_BUTTON;
                 break;
             case css::accessibility::AccessibleRole::TEXT:
+            case css::accessibility::AccessibleRole::PASSWORD_TEXT:
                 eRole = GTK_ACCESSIBLE_ROLE_TEXT_BOX;
                 break;
             case css::accessibility::AccessibleRole::TOOL_TIP:

Reply via email to