diff --git a/src/widgets/accessible/simplewidgets.cpp b/src/widgets/accessible/simplewidgets.cpp index 5612aa2e75..89bda70f31 100644 --- a/src/widgets/accessible/simplewidgets.cpp +++ b/src/widgets/accessible/simplewidgets.cpp @@ -626,6 +626,8 @@ QString QAccessibleLineEdit::text(QAccessible::Text t) const case QAccessible::Value: if (lineEdit()->echoMode() == QLineEdit::Normal) str = lineEdit()->text(); + else if (lineEdit()->echoMode() != QLineEdit::NoEcho) + str = QString(lineEdit()->text().length(), QChar::fromLatin1('*')); break; default: break; diff --git a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp index 23b48212ad..078a20578d 100644 --- a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp +++ b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp @@ -2012,13 +2012,13 @@ void tst_QAccessibility::lineEditTest() QCOMPARE(iface->text(QAccessible::Value), secret); le->setEchoMode(QLineEdit::NoEcho); QVERIFY(iface->state().passwordEdit); - QVERIFY(iface->text(QAccessible::Value).isEmpty()); + QCOMPARE(iface->text(QAccessible::Value), QString()); le->setEchoMode(QLineEdit::Password); QVERIFY(iface->state().passwordEdit); - QVERIFY(iface->text(QAccessible::Value).isEmpty()); + QCOMPARE(iface->text(QAccessible::Value), QString(secret.length(), QLatin1Char('*'))); le->setEchoMode(QLineEdit::PasswordEchoOnEdit); QVERIFY(iface->state().passwordEdit); - QVERIFY(iface->text(QAccessible::Value).isEmpty()); + QCOMPARE(iface->text(QAccessible::Value), QString(secret.length(), QLatin1Char('*'))); le->setEchoMode(QLineEdit::Normal); QVERIFY(!(iface->state().passwordEdit)); QCOMPARE(iface->text(QAccessible::Value), secret);