Как определить для программы чтения с экрана / MSAA без фокусировки флэш-ролика? - PullRequest
0 голосов
/ 30 мая 2010

Я пытаюсь обнаружить наличие вспомогательных технологий с помощью вспышки . Когда загружается флэш-фильм, содержащий приведенный ниже сценарий действия в кадре 1 (и программа чтения с экрана, в чате с IE или Firefox через MSAA активна - JAWS или NVDA), Accessibility.isActive() не возвращает «true», пока фильм не сфокусирован. Ну, на самом деле, пока не произойдет какое-то «событие». Фильм будет просто сидеть, пока я не нажму на него правой кнопкой мыши и не покажу контекстное меню флеш-плеера ... кажется, только тогда Accessibility.isActive() вернет истину. Щелчок правой кнопкой мыши - это единственный способ заставить фильм «проснуться».

Как заставить фильм реагировать самостоятельно и обнаруживать 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="">

1 Ответ

0 голосов
/ 30 мая 2010

Исходя из ответа на этот стекопоток , я нашел решение:

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

Он должен быть в чистом JavaScript, как написано выше, прикреплен к вашему window.load событию. Попытка либо селекторов jQuery $("#detector").focus(), либо пропуск оператора if и просто использование document.getElementById("detector").focus() ... оба не сработали .

Затем я отправляю фокус обратно в верхнюю часть страницы в моей функции setAccessible() в Javascript HTML-страницы, чтобы пользователи AT не зацикливались на флэш-фильме при загрузке страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...