From 9d281c0e044604eb7042105ce2ae1d9fdeca79c8 Mon Sep 17 00:00:00 2001 From: Hartmnt Date: Tue, 29 Nov 2022 16:41:08 +0000 Subject: [PATCH] FIX(a11y): Explicitly set the accessible name of "Next" and "Back" buttons in wizards For some or all screen readers the "Next >" and "Back <" buttons in wizards read out the ">" and "<" symbols which is rather annoying. This commit explicitly sets the accessible name attribute such that the buttons are read without the symbols. --- src/mumble/Accessibility.cpp | 8 ++++++++ src/mumble/Accessibility.h | 2 ++ src/mumble/AudioWizard.cpp | 2 ++ src/mumble/Cert.cpp | 3 +++ 4 files changed, 15 insertions(+) diff --git a/src/mumble/Accessibility.cpp b/src/mumble/Accessibility.cpp index d38e7f557..6c4966379 100644 --- a/src/mumble/Accessibility.cpp +++ b/src/mumble/Accessibility.cpp @@ -5,6 +5,9 @@ #include "Accessibility.h" +#include +#include + namespace Mumble { namespace Accessibility { @@ -12,5 +15,10 @@ namespace Accessibility { widget->setAccessibleDescription(label->text().remove(QRegExp("<[^>]*>"))); } + void fixWizardButtonLabels(QWizard *wizard) { + wizard->button(QWizard::NextButton)->setAccessibleName(QObject::tr("Next")); + wizard->button(QWizard::BackButton)->setAccessibleName(QObject::tr("Back")); + } + } // namespace Accessibility } // namespace Mumble diff --git a/src/mumble/Accessibility.h b/src/mumble/Accessibility.h index d2f8532ef..ab04126b2 100644 --- a/src/mumble/Accessibility.h +++ b/src/mumble/Accessibility.h @@ -8,11 +8,13 @@ #include #include +#include namespace Mumble { namespace Accessibility { void setDescriptionFromLabel(QWidget *widget, const QLabel *label); + void fixWizardButtonLabels(QWizard *wizard); } // namespace Accessibility } // namespace Mumble diff --git a/src/mumble/AudioWizard.cpp b/src/mumble/AudioWizard.cpp index e16e127d7..506937061 100644 --- a/src/mumble/AudioWizard.cpp +++ b/src/mumble/AudioWizard.cpp @@ -38,6 +38,8 @@ AudioWizard::AudioWizard(QWidget *p) : QWizard(p) { qsMaxAmp->setAccessibleName(tr("Maximum amplification")); qsVAD->setAccessibleName(tr("VAD level")); + Mumble::Accessibility::fixWizardButtonLabels(this); + Mumble::Accessibility::setDescriptionFromLabel(qrbQualityLow, qlQualityLow); Mumble::Accessibility::setDescriptionFromLabel(qrbQualityBalanced, qlQualityBalanced); Mumble::Accessibility::setDescriptionFromLabel(qrbQualityUltra, qlQualityUltra); diff --git a/src/mumble/Cert.cpp b/src/mumble/Cert.cpp index 4a7774b5b..8716124eb 100644 --- a/src/mumble/Cert.cpp +++ b/src/mumble/Cert.cpp @@ -13,6 +13,7 @@ #include "Cert.h" +#include "Accessibility.h" #include "SelfSignedCertificate.h" #include "Utils.h" #include "Global.h" @@ -131,6 +132,8 @@ CertWizard::CertWizard(QWidget *p) : QWizard(p) { qleEmail->setAccessibleName(tr("Email address")); qleName->setAccessibleName(tr("Your name")); + Mumble::Accessibility::fixWizardButtonLabels(this); + setOption(QWizard::NoCancelButton, false); qwpExport->setCommitPage(true);