포커스는 주로 HTML에 표시된 순서대로 포커스 가능 항목 (예 : 버튼, 링크 및 입력)을 통해 이동합니다. 예외는 Javascript를 사용하여 포커스를 이동할 때입니다.
설치 프로그램에서 특히 모달에 포커스를 보내는 것처럼 보이지 않습니다. 그것은 HTML에서 다음이기 때문에 처음에 도달합니다. 그러나 두 번째 모달은 다르게 생성되므로 포커스가 HTML에 추가되지 않기 때문에 포커스를 찾을 수 없습니다 (모달 작성시 Plunker가 index.html을 업데이트하지 않을 수도 있음). 이 예제에서 CSS를 해제하면 작동하는 것이 더 쉬워집니다.
그래서 1 단계는 내용이 HTML에 있는지 확인하여 초점을 맞출 수있게하는 것입니다. 일반적으로 자바 스크립트에서 append()를 사용합니다. 다음 단계는 HTML 순서를 제어하는 대신 원하는 HTML 부분에 포커스를 보내는 것입니다.
필요한 위치로 포커스를 보내는 가장 쉬운 방법은 링크를 사용하는 것입니다.
<a href="#myModal">open popup window</a>
<a href="#my2ndModal">open me</a>
그런 다음 div가 tabindex 속성을 사용하여 포커스를받을 수 있는지 확인하십시오.
<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="#modalHeading" id="myModal">
<h4 id="modalHeading>Dialog Title</h4>
... content...
</div>
<div class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modal2Heading" id="my2ndModal">
<h4 id="modal2Heading>2nd Dialog Title</h4>
...content...
</div>
다음 단계는이 열려있는 동안 초점은 현재 모달 내부에 남아 있는지 확인하는 것입니다, 그래서 당신의 "부트 스트랩 팝업을 열고"버튼을 누르거나 할 수없는 다른 포커스 항목을 다시 루프를하지 않습니다 본. 일반적으로 keyPress handler을 사용합니다.
첫 번째 모달 div 안에 "document"라는 ARIA 역할은 필요하지 않습니다. 나는 그것이 무엇이든 깨지 않는다고 생각하지 않는다. 단지 화면 판독기 소프트웨어에게 당신이 앱 브라우징에서 페이지 브라우징으로 바뀌 었음을 알려주기 때문에 오도 된 것이다. 그리고 role = "dialog"를 사용하면 aria-labelledby 속성도 가져야합니다.
팝업 컨테이너 및 해당 컨테이너를 여는 데 사용하는 링크의 코드 샘플을 추가 할 수 있습니까? – stringy
감사합니다. Stringy, 참조 용 코드 링크를 확인하십시오 .http : //embed.plnkr.co/aJkqAlFidVkORZuLUs39/ –