diff options
-rw-r--r-- | src/widgets/accessible/qaccessiblewidget.cpp | 6 | ||||
-rw-r--r-- | tests/auto/qaccessibility/tst_qaccessibility.cpp | 5 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp index 76b6cf300a..7b8135f836 100644 --- a/src/widgets/accessible/qaccessiblewidget.cpp +++ b/src/widgets/accessible/qaccessiblewidget.cpp @@ -467,8 +467,12 @@ int QAccessibleWidget::navigate(RelationFlag relation, int entry, break; case Child: if (complexWidget) { - if (entry > 0 && entry <= childCount()) + if (entry > 0 && entry <= childList.size()) { + targetObject = childList.at(entry - 1); + break; + } else if (entry > childList.size() && entry <= childCount()) { return entry; + } return -1; }else { if (entry > 0 && childList.size() >= entry) diff --git a/tests/auto/qaccessibility/tst_qaccessibility.cpp b/tests/auto/qaccessibility/tst_qaccessibility.cpp index ac4e34a564..82e3b06a6f 100644 --- a/tests/auto/qaccessibility/tst_qaccessibility.cpp +++ b/tests/auto/qaccessibility/tst_qaccessibility.cpp @@ -1379,8 +1379,9 @@ void tst_QAccessibility::tabWidgetTest() QCOMPARE(tabBarInterface->role(0), QAccessible::PageTabList); QAccessibleInterface* tabButton1Interface = 0; - QCOMPARE(tabBarInterface->navigate(QAccessible::Child, 1 , &tabButton1Interface), 1); - QVERIFY(tabButton1Interface == 0); + QCOMPARE(tabBarInterface->navigate(QAccessible::Child, 1 , &tabButton1Interface), 0); + QVERIFY(tabButton1Interface); + delete tabButton1Interface; QCOMPARE(tabBarInterface->role(1), QAccessible::PageTab); QCOMPARE(tabBarInterface->text(QAccessible::Name, 1), QLatin1String("Tab 1")); |