a11y: Report mixed state if QCheckBox is PartiallyChecked
Previously it only returned checked or unchecked for a tri-state checkbox. Fixes: QTBUG-84616 Change-Id: Ife72098e35f8295fd389bda232de5478ffa7e87f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit f4887aca1e5ac7b90abf862d7c9828417a74a1b6) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
d0702bef50
commit
d482d8b1b5
@ -389,6 +389,8 @@ id getValueAttribute(QAccessibleInterface *interface)
|
||||
}
|
||||
|
||||
if (interface->state().checkable) {
|
||||
if (interface->state().checkStateMixed)
|
||||
return @(2);
|
||||
return interface->state().checked ? @(1) : @(0);
|
||||
}
|
||||
|
||||
|
@ -143,7 +143,7 @@ void tst_QAccessibilityMac::checkBoxTest()
|
||||
QVERIFY(QTest::qWaitForWindowExposed(m_window));
|
||||
QCoreApplication::processEvents();
|
||||
|
||||
QVERIFY(testCheckBox());
|
||||
QVERIFY(testCheckBox(cb));
|
||||
}
|
||||
|
||||
QTEST_MAIN(tst_QAccessibilityMac)
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include <QtCore/QString>
|
||||
#include <QtCore/QPair>
|
||||
#include <QtWidgets/QWidget>
|
||||
#include <QtWidgets/QCheckBox>
|
||||
|
||||
#pragma once // Yeah, it's deprecated in general, but it's standard practice for Mac OS X.
|
||||
|
||||
@ -37,4 +38,4 @@ bool testLineEdit();
|
||||
bool testHierarchy(QWidget *w);
|
||||
bool singleWidget();
|
||||
bool notifications(QWidget *w);
|
||||
bool testCheckBox();
|
||||
bool testCheckBox(QCheckBox *ckBox);
|
||||
|
@ -565,7 +565,7 @@ bool notifications(QWidget *w)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool testCheckBox()
|
||||
bool testCheckBox(QCheckBox *ckBox)
|
||||
{
|
||||
TestAXObject *appObject = [TestAXObject getApplicationAXObject];
|
||||
EXPECT(appObject);
|
||||
@ -596,5 +596,8 @@ bool testCheckBox()
|
||||
[cb performAction:kAXPressAction];
|
||||
EXPECT([cb valueNumber] == 0);
|
||||
|
||||
ckBox->setCheckState(Qt::PartiallyChecked);
|
||||
EXPECT([cb valueNumber] == 2);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user