From: Felix Ernst Date: Thu, 3 Oct 2024 09:18:59 +0000 (+0200) Subject: Accessibility: Fix message boxes not being announced X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/f3b4d53720e2b8ab9c20eb9fb9e05fcc2386b5cf Accessibility: Fix message boxes not being announced This commit moves the focus to the message of newly shown passive messages when accessibility software is used. Moving focus to an object generally means that it will be announced, so this makes sure that users of accessibility software know when they are being notified of a change. --- diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index c89621dbd..62c29a1fc 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -33,6 +33,9 @@ #include #include +#ifndef QT_NO_ACCESSIBILITY +#include +#endif #include #include #include @@ -436,6 +439,14 @@ void DolphinViewContainer::showMessage(const QString &message, KMessageWidget::M m_messageWidget->hide(); } m_messageWidget->animatedShow(); + +#ifndef QT_NO_ACCESSIBILITY + if (QAccessible::isActive() && isActive()) { + // To announce the new message keyboard focus must be moved to the message label. However, we do not have direct access to the label that is internal + // to the KMessageWidget. Instead we setFocus() on the KMessageWidget and trust that it has set correct focus handling. + m_messageWidget->setFocus(); + } +#endif } void DolphinViewContainer::readSettings()