diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-21 15:11:35 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-09-01 17:39:56 +0200 |
commit | c6c1da2f4c71e523213aa8ee961d8fec779f62e2 (patch) | |
tree | 897aeedf27454e94d0dd7602207fbae55349dbac /tests | |
parent | b88a0e84dddbaa978eaed0ed8eb09ec39b6283bc (diff) |
Try harder to return accessible names
Always check if there is another accessible set as title for the one
queried. For text fields also return the placeholder property if nothing
else is set.
Change-Id: I3f10ff04338a405ad8de00e75e15dded4aaeed3b
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp | 70 |
1 files changed, 52 insertions, 18 deletions
diff --git a/tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp b/tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp index 7668a12ab..c61b5eff7 100644 --- a/tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp +++ b/tests/auto/widgets/qwebengineaccessibility/tst_qwebengineaccessibility.cpp @@ -144,33 +144,67 @@ void tst_QWebEngineView::text() QWebEngineView webView; webView.setHtml("<html><body>" \ "<input type='text' value='Good morning!'></input>" \ + "<p id='labelName'>Enter your name here:</p>" \ + "<input type='text' value='my name' aria-labelledby='labelName' aria-describedby='explanation'></input>" \ + "<p id='explanation'>Provide both first and last name.</p>" \ + "<input type='text' value='Good day!' placeholder='day'></input>" \ "</body></html>"); webView.show(); ::waitForSignal(&webView, SIGNAL(loadFinished(bool))); QAccessibleInterface *view = QAccessible::queryAccessibleInterface(&webView); // Wait for accessibility to be fully initialized - QTRY_VERIFY(view->child(0)->childCount() == 1); - QAccessibleInterface *document = view->child(0); - QAccessibleInterface *grouping = document->child(0); - QVERIFY(grouping); - QAccessibleInterface *input = grouping->child(0); - QCOMPARE(input->role(), QAccessible::EditableText); - QCOMPARE(input->text(QAccessible::Name), QString()); - QCOMPARE(input->text(QAccessible::Description), QString()); - QCOMPARE(input->text(QAccessible::Value), QStringLiteral("Good morning!")); - - QAccessibleTextInterface *textInterface = input->textInterface(); - QVERIFY(textInterface); - QCOMPARE(textInterface->characterCount(), 13); - QCOMPARE(textInterface->selectionCount(), 0); - QCOMPARE(textInterface->text(2, 9), QStringLiteral("od morn")); + QTRY_VERIFY(view->child(0)->childCount() == 5); + QAccessibleInterface *document = view->child(0); + QVERIFY(document); + + // Good morning! [edit] + QAccessibleInterface *grouping1 = document->child(0); + QAccessibleInterface *input1 = grouping1->child(0); + QCOMPARE(input1->role(), QAccessible::EditableText); + QCOMPARE(input1->text(QAccessible::Name), QString()); + QCOMPARE(input1->text(QAccessible::Description), QString()); + QCOMPARE(input1->text(QAccessible::Value), QStringLiteral("Good morning!")); + + QAccessibleTextInterface *textInterface1 = input1->textInterface(); + QVERIFY(textInterface1); + QCOMPARE(textInterface1->characterCount(), 13); + QCOMPARE(textInterface1->selectionCount(), 0); + QCOMPARE(textInterface1->text(2, 9), QStringLiteral("od morn")); int start = -1; int end = -1; - QCOMPARE(textInterface->textAtOffset(8, QAccessible::WordBoundary, &start, &end), QStringLiteral("morning")); - textInterface->setCursorPosition(3); - QTRY_COMPARE(textInterface->cursorPosition(), 3); + QCOMPARE(textInterface1->textAtOffset(8, QAccessible::WordBoundary, &start, &end), QStringLiteral("morning")); + + // Enter your name here: + // my name [edit] + // Provide both first and last name here. + QAccessibleInterface *grouping2 = document->child(1); + QAccessibleInterface *label1 = grouping2->child(0); + QCOMPARE(label1->role(), QAccessible::StaticText); + QCOMPARE(label1->text(QAccessible::Name), QString()); + QCOMPARE(label1->text(QAccessible::Description), QString()); + QCOMPARE(label1->text(QAccessible::Value), QStringLiteral("Enter your name here:")); + QAccessibleInterface *grouping3 = document->child(2); + QAccessibleInterface *input2 = grouping3->child(0); + QCOMPARE(input2->role(), QAccessible::EditableText); + QCOMPARE(input2->text(QAccessible::Name), QStringLiteral("Enter your name here:")); + QCOMPARE(input2->text(QAccessible::Description), QStringLiteral("Provide both first and last name.")); + QCOMPARE(input2->text(QAccessible::Value), QStringLiteral("my name")); + QAccessibleInterface *grouping4 = document->child(3); + QAccessibleInterface *label2 = grouping4->child(0); + QCOMPARE(label2->role(), QAccessible::StaticText); + QCOMPARE(label2->text(QAccessible::Name), QString()); + QCOMPARE(label2->text(QAccessible::Description), QString()); + QCOMPARE(label2->text(QAccessible::Value), QStringLiteral("Provide both first and last name.")); + + // Good day! [edit] + QAccessibleInterface *grouping5 = document->child(4); + QAccessibleInterface *input3 = grouping5->child(0); + QCOMPARE(input3->role(), QAccessible::EditableText); + QCOMPARE(input3->text(QAccessible::Name), QStringLiteral("day")); + QCOMPARE(input3->text(QAccessible::Description), QString()); + QCOMPARE(input3->text(QAccessible::Value), QStringLiteral("Good day!")); } void tst_QWebEngineView::value() |