From 8d3319be0011c2dd72a91b388661a480a0d31218 Mon Sep 17 00:00:00 2001 From: Hartmnt Date: Fri, 5 Jan 2024 16:50:43 +0000 Subject: [PATCH] FIX(a11y): Make search result tree accessible --- src/mumble/SearchDialog.cpp | 27 +++++++++++++++++++++++++++ src/mumble/SearchDialog.ui | 6 ++++++ 2 files changed, 33 insertions(+) diff --git a/src/mumble/SearchDialog.cpp b/src/mumble/SearchDialog.cpp index dd1ac8a67c0..aed80a6538f 100644 --- a/src/mumble/SearchDialog.cpp +++ b/src/mumble/SearchDialog.cpp @@ -3,6 +3,7 @@ // that can be found in the LICENSE file at the root of the // Mumble source tree or at . +#include "Accessibility.h" #include "SearchDialog.h" #include "Channel.h" #include "ClientUser.h" @@ -26,6 +27,8 @@ #include +#include + namespace Search { QString SearchDialog::toString(UserAction action) { @@ -226,6 +229,18 @@ void SearchDialog::on_searchResultTree_currentItemChanged(QTreeWidgetItem *c, QT if (user) { // Only try to select the user if (s)he still exists Global::get().mw->pmModel->setSelectedUser(user->uiSession); + item.setData(0, Qt::AccessibleTextRole, Mumble::Accessibility::userToText(user)); + item.setData(1, Qt::AccessibleTextRole, Mumble::Accessibility::userToText(user)); + item.setData(0, Qt::AccessibleDescriptionRole, Mumble::Accessibility::userToText(user)); + item.setData(1, Qt::AccessibleDescriptionRole, Mumble::Accessibility::userToText(user)); + item.setToolTip(0, Mumble::Accessibility::userToText(user)); + item.setToolTip(1, Mumble::Accessibility::userToText(user)); + qDebug() << Mumble::Accessibility::userToText(user); + qDebug() << searchResultTree->allColumnsShowFocus(); // false + qDebug() << searchResultTree->focusPolicy(); // strong focus + qDebug() << searchResultTree->hasFocus(); // true + qDebug() << searchResultTree->tabKeyNavigation(); // false + // searchResultTree->updateMicroFocus } } else { const Channel *channel = Channel::get(static_cast< int >(item.getID())); @@ -233,6 +248,18 @@ void SearchDialog::on_searchResultTree_currentItemChanged(QTreeWidgetItem *c, QT if (channel) { // Only try to select the channel if it still exists Global::get().mw->pmModel->setSelectedChannel(channel->iId); + item.setData(0, Qt::AccessibleTextRole, Mumble::Accessibility::channelToText(channel)); + item.setData(1, Qt::AccessibleTextRole, Mumble::Accessibility::channelToText(channel)); + item.setData(0, Qt::AccessibleDescriptionRole, Mumble::Accessibility::channelToText(channel)); + item.setData(1, Qt::AccessibleDescriptionRole, Mumble::Accessibility::channelToText(channel)); + item.setToolTip(0, Mumble::Accessibility::channelToText(channel)); + item.setToolTip(1, Mumble::Accessibility::channelToText(channel)); + qDebug() << Mumble::Accessibility::channelToText(channel); + qDebug() << searchResultTree->allColumnsShowFocus(); + qDebug() << searchResultTree->focusPolicy(); + qDebug() << searchResultTree->hasFocus(); + qDebug() << searchResultTree->tabKeyNavigation(); + // searchResultTree->updateMicroFocus } } } diff --git a/src/mumble/SearchDialog.ui b/src/mumble/SearchDialog.ui index 4885fddda53..d420cd51e0b 100644 --- a/src/mumble/SearchDialog.ui +++ b/src/mumble/SearchDialog.ui @@ -58,9 +58,15 @@ + + Qt::TabFocus + Search results + + true +