Javascript 如何在不聚焦flash电影的情况下检测屏幕阅读器/MSAA?

Javascript 如何在不聚焦flash电影的情况下检测屏幕阅读器/MSAA?,javascript,actionscript-2,accessibility,screen-readers,section508,Javascript,Actionscript 2,Accessibility,Screen Readers,Section508,我正在努力。当加载第1帧上包含以下actionscript的Flash电影,并且screenreader通过MSAA与IE或Firefox聊天处于活动状态(JAWS或NVDA)时,Accessibility.isActive在电影聚焦之前不会返回true。事实上,除非有什么事情发生。这部电影将一直放在那里,直到我右键单击它并显示FlashPlayer的上下文菜单。。。似乎只有到那时,Accessibility.isActive才会返回true。右键点击是我唯一能让电影醒过来的方法 如何让电影自己

我正在努力。当加载第1帧上包含以下actionscript的Flash电影,并且screenreader通过MSAA与IE或Firefox聊天处于活动状态(JAWS或NVDA)时,Accessibility.isActive在电影聚焦之前不会返回true。事实上,除非有什么事情发生。这部电影将一直放在那里,直到我右键单击它并显示FlashPlayer的上下文菜单。。。似乎只有到那时,Accessibility.isActive才会返回true。右键点击是我唯一能让电影醒过来的方法

如何让电影自己做出反应并检测MSAA?我尝试用Javascript将焦点发送到它。。。伪用户可以在javascript或actionscript中单击鼠标右键吗?或者你知道flash电影中右键点击触发的事件吗?也许我可以通过编程使该事件发生

我的行动脚本:

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="">
基于此,我找到了一个解决方案:

var fl = document.getElementById("detector"); 
    if (fl) { 
        fl.focus();
    }
它必须是纯javascript,如上所述,连接到window.load事件。尝试jQuery选择器$detector.focus或省略if语句并仅使用document.getElementByIddetector.focus…这两种方法都不起作用


然后,我在HTML页面的Javascript中使用setAccessible函数将焦点发送回页面顶部,这样AT用户就不会在页面加载时专注于flash电影。

@BalusC:感谢您的代码亮点。我是新来的另外,我并不打算使用Flash,它只是我在网上找到最多的解决方案。如果您已经成功地检测到了辅助技术,请通过嗅探浏览器标题或其他信息进入其他位置。谢谢