Javascript 如何在不聚焦flash电影的情况下检测屏幕阅读器/MSAA?
我正在努力。当加载第1帧上包含以下actionscript的Flash电影,并且screenreader通过MSAA与IE或Firefox聊天处于活动状态(JAWS或NVDA)时,Accessibility.isActive在电影聚焦之前不会返回true。事实上,除非有什么事情发生。这部电影将一直放在那里,直到我右键单击它并显示FlashPlayer的上下文菜单。。。似乎只有到那时,Accessibility.isActive才会返回true。右键点击是我唯一能让电影醒过来的方法 如何让电影自己做出反应并检测MSAA?我尝试用Javascript将焦点发送到它。。。伪用户可以在javascript或actionscript中单击鼠标右键吗?或者你知道flash电影中右键点击触发的事件吗?也许我可以通过编程使该事件发生 我的行动脚本: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。右键点击是我唯一能让电影醒过来的方法 如何让电影自己
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,它只是我在网上找到最多的解决方案。如果您已经成功地检测到了辅助技术,请通过嗅探浏览器标题或其他信息进入其他位置。谢谢