별의 공부 블로그 🧑🏻‍💻
728x90
728x170

* 키보드 접근성을 위한 이벤트 등록법

- 키보드 접근성이란, 마우스 이벤트를 등록했을 때 만약 현재 마우스가 없더라도 제이쿼리로 만든 최소한의 기능을 키보드만으로 사용할 수 있도록 보장하는 것을 말함.

- 키보드 접근성을 고려하여 마우스 이벤트를 등록할 때는 포커스를 이동할 수 있는 요소들인 <a>와 <button> 태그, 또는 입력 요소인 <input>, <select>, <textarea> 태그에 이벤트를 등록해야 함.

 

[마우스에 대응하는 키보드 이벤트]

- 마우스 이벤트를 등록할 때는 마우스에 대응하는 키보드 이벤트도 함께 등록해야 함.

- 그래야 마우스가 없는 방문객이 사이트를 방문했을 때 키보드만으로도 접근할 수 있어 방문자가 불편함을 느끼지 않을 수 있음.

- 마우스 이벤트에 대응하는 키보드 이벤트

 마우스 이벤트

마우스 이벤트에 대응하는 키보드 이벤트 

 mouseover()

 마우스 커서가 선택한 요소에 올라갔을 때 이벤트가 발생

 focus()

 선택한 요소에 포커스가 이동했을 때 이벤트가 발생

 mouseout()

 마우스 커서가 선택한 요소에 벗어났을 때 이벤트가 발생

 blur()

 선택한 요소에 포커스가 다른 요소로 이동되어 사라졌을 때 이벤트가 발생

 

- 예제1) 키보드 접근성을 배려하지 않은 이벤트 예제 - 비추천

 <button id="btn">노출 버튼</button>
 <p style="display"none">내용1</p>

 

 &("#btn").mouseover(function(){

    $(this).next().css("display","block");

 });

-> 이렇게 2개의 이벤트를 따로 작성하여 등록하면 문장이 많이 길어진다는 단점이 있음.

 

- 예제2) 키보드 접근성을 배려한 이벤트 적용 예시 - 방법(1)

 <button id="btn">노출 버튼</button>
 <p style="display"none">내용1</p>

 

 &("#btn").mouseover(function(){

    $(this).next().css("display","block");

 });

 

 &("#btn").focus(function(){

    $(this).next().css("display","block");

 });

 

- 예제3) 키보드 접근성을 배려한 이벤트 적용 예시 - 추천/방법(2)

 <button id="btn">노출 버튼</button>
 <p style="display"none">내용1</p>

 

 &("#btn").on("mouseover focus", function(){

    $(this).next().css("display", "blcok");

 });

-> on() 메서드 : 여러 이벤트 메서드를 한번에 등록할 수 있게하는 메서드

- 기본형

 $(요소 선택).on("이벤트 종류 1 이벤트 종류 2 이벤트 종류 3 ... 이벤트 종류 n function(){...}) 

 

- 예)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- 문단 태그 영역 -->
<body>
    <a href="#" id="btn1">버튼1</a>
    <a href="#" id="btn2">버튼2</a>
</body>
 
<!-- 메서드 적용 -->
<script type="text/javascript">
    $(function() {  
        $("#btn1").mouseover(function(){        // 버튼1에 마우스를 올렸을 때
            alert("good");
        });
 
        // 버튼2에 마우스를 올리거나 포커스가 생성되었을 때
        $("#btn2").on("mouseover focus"function(){
            alert("hello");
        });
    });
</script>
cs

 

 

내용 출처 : Do It! 자바스크립트+제이쿼리 입문 (정인용 지음, 이지스퍼블리싱)

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖