0

サブリミナルを使用してアプリをテストしています。1 つの画面では、アイテムの行を持つ UITableView を使用します。サブリミナルが特定の行の詳細開示ボタンを見つけて、「tap」メソッドを呼び出せるようにしたいと思います。

私が抱えている問題は、次のような単純な呼び出しで詳細な開示ボタンが返されないことです。

NSString *label=@"More info, row label";
SLElement *e=[SLElement elementWithAccessibilityLabel:label];
SLAssertTrueWithTimeout([e isValidAndVisible],5.0f,@"Not visible");
[e tap];   //fails assertion above

「行ラベル」が UITableViewCell のラベル オブジェクトのタイトルに対応すると仮定します。

これは「isValidAndVisible」チェックに合格しません。

Accessibility Inspector を使用してラベル タイトルが正しいことを確認し、実際の VoiceOver 音声を iPad で読み上げることも確認しました。したがって、このボタンは実際にアクセス可能です。

ここに欠けている簡単なものはありますか?サブリミナルに UITableViewCell の開示アイコンを選択させるより良い方法はありますか? ここで行をタップするだけに頼ることはできません。具体的には、開示アイコンのタップをテストする必要があります。

ありがとう!

編集:@JeffreyWearにこれを追加

リクエストされたトレース出力の関連領域を出力しました。申し訳ありませんが、私はこれが初めてなので、一般的に使用されるテストケースをどのように作成して調査/使用するかわかりません。

<UITableView: 0xd268e00; frame = (0 75; 768 894); label = 'Empty list <UITableViewCellAccessibilityElement: 0xbd0a290; frame = (0 75; 768 44)> <UITableTextAccessibilityElement: 0x1292f620; frame = (0 75; 711 44); label = 'Document. PURHWE'; traits = (Static Text); accessibilityElement = YES> <UIAccessibilityElementMockView: 0x1293c060; frame = (711 86; 42 22); label = 'More info, Document. PURHWE'; accessibilityElement = YES>

したがって、このコントロールを取得するために実行している実際のコードは次のとおりです。

SLElement *btn=[SLElement elementWithAccessibilityIdentifier:@"More Info, Document. PURHWE"];
[btn logElement];
SLAssertTrueWithTimeout([btn isValidAndVisible], 5.0f, @"Not visible.");

logElement からの出力:

Unexpected exception occurred ***SLUIAElementInvalidException*** for reason: Element '<SLElement description:"More info, Document. PURHWE">' does not exist.

ログ トレースで、この要素が存在し、アクセス可能としてマークされていることがわかると思います。

<UIAccessibilityElementMockView: 0x1293c060; frame = (711 86; 42 22); label = 'More info, Document. PURHWE'; accessibilityElement = YES>

一般的なアクセシビリティの改善の一環として、「ドキュメント」という単語をラベルに追加したことに注意してください。リストにはさまざまな種類のオブジェクトを表示できるため、視覚障害のあるユーザーは、この特定の行がドキュメントを表していることがわかります ( 「フォルダ」など...)

解像度

オブジェクトを取得するために間違った方法を使用していました。「elementWithAccessibilityLabel」の代わりに「elementWithAccessibilityIdentifier」を誤って使用していました。

4

0 に答える 0