フラッシュを使用して支援技術の存在を検出しようとしています。フレーム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="">