aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/accessible/qaccessiblequickitem.cpp
diff options
context:
space:
mode:
authorAndre de la Rocha <andre.rocha@qt.io>2020-04-30 07:17:18 +0200
committerAndré de la Rocha <andre.rocha@qt.io>2020-05-04 11:53:13 +0000
commit788a3a183f8c49c1a88270c1456c3d47423df240 (patch)
treefeeb3a978215d6caeb790bf084475b3245c38e7d /src/quick/accessible/qaccessiblequickitem.cpp
parentd857160431412ccdf2791bb4543f70d56ff2f8d0 (diff)
Fix Narrator spelling password characters in Quick TextInput
Quick was not setting the "passwordEdit" accessible state for TextInput controls set with a password-editing echo mode. Thus the platform accessibility layer would not let the accessibility client (Microsoft Narrator, in the reported case) know that the text being edited was a password, making it spell the letters instead of something like "hidden". Fixes: QTBUG-82433 Pick-to: 5.15 Change-Id: Ic659f031f6bad2ae3d7e500333dc8e2f27797a08 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Diffstat (limited to 'src/quick/accessible/qaccessiblequickitem.cpp')
-rw-r--r--src/quick/accessible/qaccessiblequickitem.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/quick/accessible/qaccessiblequickitem.cpp b/src/quick/accessible/qaccessiblequickitem.cpp
index b87203c3ef..5e1ae25c38 100644
--- a/src/quick/accessible/qaccessiblequickitem.cpp
+++ b/src/quick/accessible/qaccessiblequickitem.cpp
@@ -43,6 +43,7 @@
#include "QtQuick/private/qquickitem_p.h"
#include "QtQuick/private/qquicktext_p.h"
+#include "QtQuick/private/qquicktextinput_p.h"
#include "QtQuick/private/qquickaccessibleattached_p.h"
#include "QtQuick/qquicktextdocument.h"
QT_BEGIN_NAMESPACE
@@ -197,6 +198,9 @@ QAccessible::State QAccessibleQuickItem::state() const
state.focusable = true;
if (item()->hasActiveFocus())
state.focused = true;
+ if (role() == QAccessible::EditableText)
+ if (auto ti = qobject_cast<QQuickTextInput *>(item()))
+ state.passwordEdit = ti->echoMode() != QQuickTextInput::Normal;
return state;
}