3

視覚障害者がスクリーン リーダーを介してアクセスできる動的 Web アプリケーションの作成に取り組んでいますが、厄介な問題が発生しています。コード (以下を参照) を JAWS でテストすると、問題なく動作します。しかし、NVDA を使用すると、動的に追加されたコンテンツが Firefox のこのリーダーによって 2 回読み取られ、IE9 ではまったく読み取られません。

誰もこの種の行動を見たことがありますか?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <HEAD>
    <TITLE>Mike's Alert Test Page</TITLE>       
</HEAD>
<BODY>  
        <script type="text/javascript">
            function simulateErrors()
            {
                var elem = document.getElementById("inlineErrors");  

                if (elem != null && elem != undefined) {
                    elem.innerHTML = '<DIV role="alert">I am some alert text.</DIV>';
                }
            }
    </script>       
    <H1>Test Page</H1>
    <DIV ID="inlineErrors"  role="none"></DIV>
    <DIV ID="buttons">
        <!--<BUTTON onClick="simulateErrors()" type="button">Simulate Errors</BUTTON>-->
        <input type="submit" value="Simulate Errors" onClick="simulateErrors()"/>
    </DIV>
</BODY>

4

1 に答える 1

1

role="log"およびaria-live="assertive"inlineErrorsdivに設定します。次に、エラーのためにそのdivに他のDIVを挿入するだけで、一度だけ読み取られるはずです。

さまざまなブラウザーで機能するコードについては、このassertiveAnnouncejQuery ライブラリーの関数を参照してください。

于 2014-12-15T00:50:39.467 に答える