0

フラッシュを使用して支援技術の存在を検出しようとしています。フレーム1で以下のアクションスクリプトを保持しているFlashムービーが読み込まれると(MSAAを介してIEまたはFirefoxとチャットするスクリーンリーダーがアクティブな場合(JAWSまたはNVDA))、Accessibility.isActive()ムービーがフォーカスされるまで「true」を返しません。まあ、実際には何らかの「イベント」が発生するまではありません。映画は、右クリックしてFlash Playerのコンテキストメニューを表示するまでそこにとどまります...その後、Accessibility.isActive()trueが返されるようです。右クリックは、私が映画を「目覚めさせる」ことができる唯一の方法です。

映画をそれ自体で反応させ、MSAAを検出するにはどうすればよいですか?Javascriptでフォーカスを送ってみました...javascriptまたはactionscriptを右クリックして偽造することはできますか?または、フラッシュムービーで右クリックが発生しているイベントを知っていますか?プログラムでそのイベントを発生させることができますか?

私のActionscript:

var x = 0;  
//check if Microsoft Active Accessibility (MSAA) is active.  
//Setting takes 1-2 seconds to detect -- hence the setTimeout loop.  
function check508(){  
    if ( Accessibility.isActive() ) {  
       //remove this later... just visual for testing  
       logo.glogo.logotext.nextFrame();  
       //tell the page's javascript this is a 508 user  
       getURL("javascript:setAccessible();")  
    } else if (x<100) {  
       trace ("There is currently no active accessibility aid. Attempt " + x);  
       x++;  
       setTimeout(check508,200);  
    }  
}  
/*  
//FYI: only checks if browser is MSAA compliant, not that A.T. is actually running. Sigh.  
//This returns true immediately though.  
if (System.capabilities.hasAccessibility) {  
    logo.glogo.logotext.nextFrame();  
    getURL("javascript:setAccessible();")  
};  
*/  
check508();  
stop();  

私のHTML:

<embed id="detector" width="220" height="100" quality="high" wmode="window" type="application/x-shockwave-flash" src="/images/detect.swf" pluginspage="http://www.adobe.com/go/getflashplayer" flashvars="">
4

1 に答える 1

0

このstackoverflowの回答に基づいて、解決策を見つけました:

var fl = document.getElementById("detector"); 
    if (fl) { 
        fl.focus();
    }

上記のように、イベントに添付された純粋なJavaScriptである必要がありましたwindow.load。jQuery セレクターを試すか$("#detector").focus()、if ステートメントを省略してdocument.getElementById("detector").focus() ...両方を使用するだけではうまくいきませんでした

次に、HTML ページの Javascript 内の関数内でページの上部にフォーカスを戻して、setAccessible()AT ユーザーがページの読み込み時にフラッシュ ムービーに集中できないようにします。

于 2010-05-30T00:09:08.937 に答える