웹접근성 레이어팝업 tabindex
by hohoya33
HTML
<h3>[tabindex="0"]</h3>
<div tabindex="0">div같은 요소도 초점을 받을 수 있습니다. 초점은 마크업 순서에 맞게 이동 됩니다.</div>
<hr>
<h3>[tabindex="-1"]</h3>
<div tabindex="-1">키보드 탭키를 눌러서 초점을 받을 수 없습니다. 탭키를 누르면 해당 요소는 건너뜁니다. 자바스크립트 focus() 메서드 사용하여 요소에 포커스 가능 합니다.</div>
<br>
<button class="btn_focus">focus() 메서드</button>
<hr>
<h3>[tabindex="5"]</h3>
<div tabindex="5">가장 먼저 초점을 받을 수 있습니다. 그러나 자연스러운 탭 순서를 방해합니다. (0 보다 큰 tbaindex 값은 안티패턴으로 간주)</div>
CSS
body{color:#fff;background:#282c34}
:focus{outline:4px solid #FF0000}
h3{margin-bottom:0;padding-left:20px;text-align:left;color:#13daec;}
div{padding-left:20px;}
button{
margin-left: 20px;
border: none;
border-radius: 2px;
display: inline-block;
height: 36px;
line-height: 36px;
padding: 0 16px;
vertical-align: middle;
font-size: 14px;
text-decoration: none;
color: #fff;
background-color: #26a69a;
text-align: center;
letter-spacing: .5px;
cursor: pointer
}
JavaScript
// 해당요소를 선택하는 쿼리이기 때문에 해당 요소에 포커스 메서드를 호출
document.querySelector('.btn_focus').addEventListener('click', function() {
document.querySelector('[tabindex="-1"]').focus();
});