2014-04-14 7 views
2

JAWS 스크린 리더를 사용하는 동안 브라우저에서 스페이스 바를 누를 때마다 현재 시간을 캡처해야합니다. JAWS를 사용하지 않으면 스페이스 바를 캡처 할 수 있지만 JAWS가 켜지면 시스템은 스페이스 바를 캡처 할 수 없습니다. 나는 그래서 현재 시간에게 스페이스 바를 누를 때마다 캡처 할 수있는 무엇을 알고 싶습니다JAWS를 사용하여 키 이벤트 받기

$(document).keypress(function(event) { 
     var chCode = ('charCode' in event) ? event.charCode : event.keyCode; 
     if (chCode == 32){ //32 is keyCode for spacebar 
    addTime = addTime + Number(new Date()) + ","; 
    var x = document.getElementById("spacebar"); 
    alert("spacebars!!!"); 
    } 
}); 

:

여기 내 코드입니다.

재미있게도 스페이스 바를 누를 때마다 JAWS는 "공간"을 읽지 만 이벤트는 코드 레벨에서 캡처되지 않습니다.

또는 - 스페이스 바를 누르면 JAWS가 "스페이스"를 읽으므로 JAWS 이벤트를 캡처하는 방법을 알고있는 사람이 있습니까? 스페이스 바를 누를 때 그것을 인식하므로 JAWS에서 직접 이벤트를 캡처 할 수 있는지 궁금합니다. 이견있는 사람?

+0

가능한 [Javascript 키 이벤트 및 JAWS 화면 판독기] (http://stackoverflow.com/questions/23064334/javascript-keyevent-and-jaws-screen-reader) –

답변

2

이것은 대부분의 화면 판독기 및 JAWS가 브라우저에서 소위 가상 커서를 제공하기 때문에 발생합니다. 이 기능은 웹 페이지와 유사한 문서를 빠르게 탐색하는 데 필요합니다.
JAWS가 켜져있는 동안 웹 페이지에서 문자를 눌러보십시오. 예를 들어, b을 누르면 b이있는 경우 다음 버튼으로 이동하기 때문에 JAWS는 "버튼 없음"이라고 말합니다. 텍스트를 입력하려면 양식 모드로 들어가야합니다.
다른 쪽의 스페이스 바는 클릭 가능한 요소 (링크, 버튼, 확인란 또는 onClick 이벤트가 첨부 된 요소)에있는 경우에만 작동하며 요소를 활성화합니다. 또는 양식 모드 일 때 편집 필드에 공간을 입력합니다. 당신이 원하는 것을 달성하기 위하여
, 당신은 (이 here에 더) role="application"로 웹 페이지의 일부를 선언해야합니다

사용자가 응용 프로그램의 역할이 할당 요소를 탐색 할 때, 보조 일반적으로 표준 키보드 이벤트를 인터셉트하는 기술은 응용 프로그램 탐색 모드로 전환하고 키보드 이벤트를 웹 응용 프로그램으로 전달해야합니다 (SHOULD).
일반 탐색 모드에서 웹 응용 프로그램과 상호 작용하기에 더 적합한 모드로 전환하기위한 특정 보조 기술에 대한 의도입니다. 일부 사용자 에이전트에는 위쪽 및 아래쪽 화살표와 같은 키를 사용하여 문서를 탐색하는 탐색 탐색 모드가 있으며이 기본 동작으로 웹 응용 프로그램에서 이러한 키를 사용할 수 없습니다.

그래서, 단지 role="application"으로 부모 div를 선언하고 스페이스 바를 응용 프로그램에 직접 전달하고 JAWS에 의해 차단되지는 않습니다, 당신의 시간을 계산 할 수 있도록하기 위해서이다.

+0

고마워요. 이것은 매우 통찰력이 있습니다. 여기에 내가 사용하고있는 컨텍스트가 있습니다. 컨트롤을 폼 페이지에 배치 한 오디오 captcha를 개발했습니다. 사용자가 재생을 클릭하면 오디오 챌린지가 시작됩니다. 사용자는 스페이스 바를 눌러 챌린지에 응답합니다. JAWS를 사용하지 않을 때는 Mac VoiceOver 및 Windows 내레이터와 함께 모든 것이 제대로 작동합니다. 그러나 JAWS가 시작되면 스페이스 바를 누를 때 더 이상 현재 시간을 캡처 할 수 없습니다. 귀하의 설명이 도움이됩니다. 이제 body 태그에 role = "application"을 추가했지만 작동하지 않았습니다. 어디에서 (어떤 태그) 역할 = 응용 프로그램을 배치 할 수 있습니까? – bdfios

+0

body 태그에 role = "application"을 넣으려고했지만 페이지 내 다른 태그도 있지만 아무 것도 작동하지 않았습니다. – bdfios

+0

플레이어 컨트롤이 포함 된 태그에 role = "application"을 추가했으나 작동하지 않았습니다. – bdfios