WCAG 2.2 · 2. 운용의 용이성 · 2.1 키보드 접근성
2.1.4 문자 단축키
Character Key Shortcuts
글자·숫자·기호 한 개 키로 동작하는 단축키는 끄거나, 다른 키로 바꾸거나, 포커스가 있을 때만 동작해야 합니다.
수준 AWCAG 2.1
한눈에 보기
- 성공 기준
- 2.1.4 문자 단축키
- 수준
- 수준 A
- 원칙
- 2. 운용의 용이성
- 지침
- 2.1 키보드 접근성
- 도입
- WCAG 2.1
요구 사항
문자(대소문자 포함), 구두점, 숫자, 기호 키만으로 구현된 키보드 단축키가 있다면 다음 중 하나 이상을 만족해야 합니다.
- 끄기: 단축키를 끌 수 있는 방법이 있습니다.
- 재지정: Ctrl, Alt 같은 인쇄되지 않는 키를 하나 이상 포함하도록 단축키를 바꿀 수 있습니다.
- 포커스가 있을 때만 활성: 해당 구성 요소에 포커스가 있을 때만 단축키가 동작합니다(예: 목록 상자 안에서 글자로 항목 찾기).
왜 필요한가요
음성 인식 사용자가 말한 단어가 글자 입력으로 들어가 의도치 않게 단축키가 실행될 수 있습니다(“삭제”라고 말하다 d 키가 눌리는 식). 키보드 사용자도 실수로 키를 눌러 기능이 실행될 수 있습니다.
도움받는 사용자
- 음성 인식 사용자
- 운동장애가 있는 사용자(손 떨림, 근력 저하 등)
- 키보드만 사용하는 사용자
- 시각장애인(화면낭독기 사용자)
적용 방법
- 한 글자 단축키 대신 Ctrl·Alt 조합을 사용합니다.
- 한 글자 단축키를 쓴다면 설정에서 끄거나 바꿀 수 있게 합니다.
- 입력 필드에 포커스가 있을 때는 단축키를 동작시키지 않습니다.
var shortcutsOn = true; // 설정 화면에서 끌 수 있게 합니다
document.addEventListener('keydown', function (e) {
if (!shortcutsOn || e.ctrlKey || e.altKey || e.metaKey) return;
if (e.target.closest('input, textarea, [contenteditable]')) return;
if (e.key === 'k') openSearch();
});자주 하는 실수
- 한 글자 단축키를 제공하면서 끄거나 바꾸는 방법이 없습니다.
- 입력 필드에 글자를 쓰는 중에도 단축키가 실행됩니다.
검사 방법
- 페이지에서 한 글자 키를 하나씩 눌러 단축키가 실행되는지 확인합니다.
- 단축키가 있다면 끄기·재지정 기능이 있는지, 또는 포커스가 있을 때만 동작하는지 확인합니다.