0

アプリケーションにアクセシビリティを追加しようとしています。Spark コンポーネントでアクセシビリティがどのように機能するのか、まだ正確にはわかりません。
ナレーター機能が有効になっているウィンドウのプラットフォームを使用しています。私がやりたいことは、アクセシビリティのために 3 つのフィールドに別の名前を付けて、ユーザーが何をすべきかを理解できるようにすることだけです。宣言を使用してアクセシビリティ プロパティを定義しようとしましたが、常にボタンの 1 つの名前だけを話すようです。したがって、別のアプローチを取り、作成が完了したときにアクセシビリティ プロパティを作成しようとしました。ナレーターが最初にアクセシビリティの正しい名前を拾っているように見えますが、すぐにボタンに移動すると、すべての名前が置き換えられて「検索ボタン」と呼ばれるようになります。理由はわかりますか?!?! とても困惑しています。どんな助けでも大歓迎です。

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       xmlns:accessbility="flash.accessibility.*" initialize="onInit()" creationComplete="onComplete()">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->

    </fx:Declarations>

    <fx:Script>
        <![CDATA[

        import com.modernista.swffocus.SWFFocus;

        private function onComplete():void {
            var ap1:AccessibilityProperties = new AccessibilityProperties();
            ap1.name = "search";
            searchInput.accessibilityProperties = ap1;
            var ap2:AccessibilityProperties = new AccessibilityProperties();
            ap2.name = "name input";
            nameInput.accessibilityProperties = ap2;
            var sb:AccessibilityProperties = new AccessibilityProperties();
            sb.name = "search button";
            searchSubmit.accessibilityProperties = sb;
            Accessibility.updateProperties();
        }
        // this helps Firefox capture and release keyboard focus
        private function onInit():void {
        SWFFocus.init(systemManager.stage as Stage);

        }

        ]]>
    </fx:Script>
    <mx:Form defaultButton="{searchSubmit}">
        <mx:HBox width="100%" height="100%" horizontalAlign="center" verticalAlign="middle" > 
            <mx:TextInput id="searchInput" width="540">
            </mx:TextInput>
            <mx:TextInput id="nameInput" width="540">
            </mx:TextInput>
            <mx:Button id="searchSubmit" label="search" />
        </mx:HBox>
    </mx:Form>
</s:WindowedApplication>
4

1 に答える 1

1

私がやりたいことは、アクセシビリティのために 3 つのフィールドに別の名前を付けて、ユーザーが何をすべきかを理解できるようにすることだけです。宣言を使用してアクセシビリティ プロパティを定義しようとしましたが、常にボタンの 1 つの名前だけを話すようです。

MS ナレーターは、他に選択肢がない場合にのみ使用するツールの 1 つです。あなたがどこにもいないときの不気味な古いガソリンスタンドを考えてみてください。JAWS と同じくらい優れた無料のスクリーン リーダーである NVDAを使用して、アプリケーションをテストします(NVDAMS ナレーター)。

したがって、別のアプローチを取り、作成が完了したときにアクセシビリティ プロパティを作成しようとしました。ナレーターが最初にアクセシビリティの正しい名前を拾っているように見えることがありますが、すぐにボタンに移動すると、すべての名前が置き換えられて「検索ボタン」と呼ばれます

これは、ナレーターの気まぐれのせいだと思います。

また、アクセシビリティ ライブラリが含まれていないように見えますが、私は Flex 開発者ではないため、Flash のように必要かどうかはわかりません。

あなたのコード

  var sb:AccessibilityProperties = new AccessibilityProperties();
        sb.name = "search button";

ここでボタンを取り出します。ほとんどの支援技術は要素の種類を要素に追加するため、このボタンは検索ボタン ボタンとしてアナウンスされます。

参考文献:

于 2013-05-24T16:55:49.487 に答える