6

スクリーン リーダーのアクセシビリティを Flash アプリケーションに追加しようとしていますが、問題が発生しています。要素をタブで移動する順序は、それらの要素の tabIndex プロパティによって設定されます。問題は、これらから構築されたタブ リストが永続的に見えることですが、アプリケーションのコンテンツは動的です (xml から構築され、ポップアップとダイアログ ボックスが含まれます)。タブ リストを更新/再構築する方法はありますか? 私は極端な長さに行き、これを機能させるためにいくつかのクレイジーなハックを試してみたいと思っているので、どんな提案でも良い.

4

2 に答える 2

4

設定した要素の tabIndex 値をいつでも編集できます

それらをchildIndexと同じになるように設定するなど

for (var i:int=0;i<container.numChildren;++i) {
    container.getChildAt(i).tabIndex = i; //=i or anything you want
}

以下は私のために働く

iButton1.tabIndex = 1;
iButton2.tabIndex = 2;
iButton3.tabIndex = 3;

iButton1.tabEnabled = true;
iButton2.tabEnabled = true;
iButton3.tabEnabled = true;

function fnClick (pME:MouseEvent):void {
    iButton1.tabIndex = 3;
    iButton2.tabIndex = 2;
    iButton3.tabIndex = 1;
}

iButton3.addEventListener(MouseEvent.CLICK, fnClick);

ここからサンプル fla をダウンロードできます http://matrixoft.infunity.com/agents/calvin/flash/tab.rar

3 番目のボタンをクリックすると、タブ オーダーが変更されます。fla をテストするために ctrl-enter を押したときに、「Control->Disable Keyboard Shortcuts」が必要になる場合があります。

于 2009-05-29T04:31:08.763 に答える
2

私は Flash Player 11.4 でコンパイルしています。そのために私はこれを使用しています:

private function setPanelOneTabIndices()
{
    aButton1.tabIndex = 1;
    aButton2.tabIndex = 2;
    aButton3.tabIndex = 3;

    bButton1.tabIndex = 0;
    bButton2.tabIndex = 0;
    bButton3.tabIndex = 0;
}

private function setPanelTwoTabIndices()
{
    aButton1.tabIndex = 0;
    aButton2.tabIndex = 0;
    aButton3.tabIndex = 0;

    bButton1.tabIndex = 1;
    bButton2.tabIndex = 2;
    bButton3.tabIndex = 3;
}
于 2013-12-11T06:28:42.390 に答える