0

Flex アプリケーションでテキストのカスタム読み取り順序を設定できないという問題があります。各テキスト要素にプロパティを設定していtabIndexます。これは、スクリーン リーダーの読み上げ順序を設定する適切な方法だと理解しています。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
            xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute">

  <mx:Label x="10" y="10" text="1" tabIndex="2" />
  <mx:Label x="10" y="36" text="2" tabIndex="1" />
  <mx:Label x="10" y="62" text="3" tabIndex="3" />

</mx:Application>

この小さなテスト アプリケーションでは、スクリーン リーダー (JAWS 12) は "2 1 3" ではなく "1 2 3" を読み取ります。

いくつかのテストでは、これは私の特定の構成のみの問題であることが示されているようです。Flex SDK 4.1 でアプリケーションをコンパイルしていますが、MX コンポーネント セットと Halo テーマのみを使用しています。Flex 4 が登場する前に開始されたかなり複雑なアプリがあるため、最新の SDK でコンパイルするためにジャンプしましたが、Spark コンポーネント セットを使用するためにまだ何もアップグレードしていません。

4.1 SDK と Spark コンポーネント + テーマを使用して同様のテスト アプリを作成すると、読み取り順序が正しく設定されます。テスト アプリを作成し、3.5 SDK を使用してコンパイルすると、同じ結果になります。すべてが機能します。

Spark コンポーネントの使用に切り替えることができることはわかっていますが、現在取り組んでいるプロジェクトでタイムラインを変更する必要があることを意味するため、可能であれば回避しようとしています。

誰かが同様の問題に遭遇したことがありますか、またはこれを機能させる可能性のある提案はありますか?

4

2 に答える 2

0

Label の代わりに Text を使用する必要があります。ドキュメンテーション:

Label コントロールは、他のコントロールに関連付けられている場合、またはフォーム モードが非アクティブの場合に、スクリーン リーダーによって読み上げられます。Label コントロールは、フォーム モードまたはキーボードではフォーカスできません。

...

テキスト コントロールはフォーカス可能ではなく、フォーム モードが非アクティブな場合にのみスクリーン リーダーによって読み取られます。

また、これがより良い解決策である可能性があることもわかりました。この例は Flex 4 にありますが、Flex 3 の Label でも同じことができます。IFocusManagerComponent インターフェイスを実装する必要があるだけです。

于 2011-04-13T22:01:41.123 に答える
0

現在、Flex 3 で JAWS 11 を使用しているため、まだその問題が発生していません。しかし、コンポーネントのコピーを舞台裏に置き、私たちのニーズには複雑すぎて、スクリーン リーダーにこれらのコンポーネントを順番に読み取らせるという 1 つのオプションについて読みました。

http://www.adobe.com/accessibility/products/flash/reading.html#off_stage

また、私が見たトリックは、TabIndex を 10 の増分で設定することでした。JAW はその順序のみを気にし、コンポーネントを追加する必要がある場合は、すべての番号を付け直す必要はありません。つまり、10、20、30 の場合、必要に応じて、すべての番号を付け直すのではなく、11 を追加できます。

ブライアン

于 2011-04-14T14:24:15.270 に答える