ARIA 접근성 가이드

KWCAG 2.2 · 6. 운용의 용이성 · 6.1 입력장치 접근성

6.1.4 문자 단축키

문자 단축키는 오동작으로 인한 오류를 방지하여야 합니다.

KWCAG 2.2신규

한눈에 보기

검사 항목
6.1.4 문자 단축키
원칙
6. 운용의 용이성
지침
6.1 입력장치 접근성
도입
KWCAG 2.2

요구 사항

단일 문자 단축키(대·소문자, 구두점, 기호 등 글자키·숫자키·특수문자키 하나로 동작하는 단축키)를 제공한다면 오류를 막기 위해 다음 중 하나 이상을 충족해야 합니다.

  • 비활성화: 단축키를 끌 수 있는 방법을 제공합니다.
  • 재설정: 하나 이상의 기능키(Ctrl, Alt, Shift, Option, Command 등)를 조합한 단축키로 바꿀 수 있습니다.
  • 초점을 받은 경우에만 활성화: 해당 사용자 인터페이스 구성요소(폼 컨트롤, 링크, 콘텐츠 에디터 등)가 초점을 받았을 때만 단축키가 동작합니다.

KWCAG 2.2에서 새로 추가된 검사 항목입니다.

왜 필요한가요

음성 명령 사용자가 말하는 단어가 글자 입력으로 바뀌면서 의도하지 않은 단축키가 실행될 수 있고, 손 사용이 불편한 사용자는 키를 잘못 눌러 기능을 실행하기 쉽습니다. 재설정 기능이 있으면 익숙한 조합으로 바꿀 수도 있습니다.

도움받는 사용자

  • 음성 명령(음성 입력) 사용자
  • 손 사용이 원활하지 않은 사용자
  • 화면낭독기 사용자(낭독기 단축키와 충돌 방지)

적용 방법

가능하면 조합키 단축키를 사용합니다. 단일 문자 단축키가 필요하면 설정에서 끄거나 바꿀 수 있게 하고, 입력란에 초점이 있을 때는 동작하지 않게 합니다.

끌 수 있고, 입력 중에는 동작하지 않는 단축키
let shortcutsOn = loadSetting('shortcuts', true);
document.addEventListener('keydown', (e) => {
  if (!shortcutsOn) return;
  const t = e.target;
  if (t.isContentEditable || /^(INPUT|TEXTAREA|SELECT)$/.test(t.tagName)) return;
  if (e.key === 'j' && !e.ctrlKey && !e.altKey && !e.metaKey) nextArticle();
});
단축키 끄기 설정
<label><input type="checkbox" id="opt-shortcuts" checked> 한 글자 단축키 사용</label>

사례

단축키 끄기 설정 제공

권장HTML
<fieldset>
  <legend>키보드 단축키</legend>
  <label><input type="checkbox" checked> 한 글자 단축키 사용 (J: 다음 글, K: 이전 글)</label>
</fieldset>

어디서나 동작하는 한 글자 단축키

비권장JavaScript
document.onkeydown = e => { if (e.key === 'd') deleteMail(); };

자주 하는 실수

  • 페이지 전체에서 D 하나로 삭제가 실행되고 끌 방법이 없습니다.
  • 검색어 입력 중에도 한 글자 단축키가 동작합니다.

검사 방법

  • 도움말·설정에서 단일 문자 단축키가 있는지 확인하고, 문서에 없더라도 글자키를 눌러 반응이 있는지 확인합니다.
  • 단일 문자 단축키가 있다면 끄기, 조합키로 재설정, 초점 시에만 활성화 중 하나를 충족하는지 확인합니다.

관련 ARIA

다른 지침의 대응 항목