문자 단축키 - by. UXKM

요약 설명

관련 지침 : 문자 단축키는 오동작으로 인한 오류를 방지하여야 한다.
문자 단축키 검사항목은 키보드나 음성 명령을 사용하는 사용자들이 의도하지 않게 단축키가 실행되는 문제를 예방하는 것을 목적으로 합니다.
특히 음성 입력 사용자의 발음을 잘못 인식하거나 운동 장애가 있는 사용자의 키보드 오입력으로 인한 의도하지 않은 기능 실행을 방지하여 웹 콘텐츠를 안전하게 이용할 수 있도록 보장하는 것에 중점을 둡니다.

관련 WCAG 2.2 성공 기준

단일 문자 단축키(예: 대/소문자, 구두점, 기호 등 글자키나 숫자키 또는 특수문자키)를 제공하는 경우, 오류를 방지하기 위하여 다음 중 하나 이상을 충족해야 합니다.

  • 비활성화

    단축키를 끌 수 있는 방법을 제공해야 합니다.

  • 재설정

    한 개 이상의 기능키(예: Ctrl, Alt, Shift, Option, Command 등)를 조합하여 단축키를 재설정할 수 있어야 합니다.

  • 초점을 받은 경우에만 활성화

    사용자 인터페이스 구성요소(예: 폼 콘트롤, 링크, 콘텐츠 에디터 등)가 초점을 받은 경우에만 단축키가 활성화되어야 합니다.

2.1.4 문자 단축키 (Character Key Shortcuts) (Level A) WAI - Understanding Character Key Shortcuts MDN - KeyboardEvent.key

기대효과

  • 음성명령 사용자가 입력을 위해 음성을 사용하는 것만으로도 의도하지 않게 단일 문자 단축키를 실행시키는 오작동을 방지할 수 있습니다.
  • 손 사용이 원활하지 않은 사용자의 단일 문자 단축키 사용 오류를 방지할 수 있습니다.
  • 단일 문자 단축키 재설정 기능을 활용하여 익숙한 단축키로 변경할 수 있습니다.

단축키 용어

단일 문자 단축키

하나의 문자, 숫자, 기호 키를 입력하는 것만으로 특정 기능을 수행하는 단축키를 의미합니다.

[출처 : 웹 접근성을 고려한 콘텐츠 제작기법 개정판]

수식키

Ctrl, Alt, Shift, Option, Command와 같이 다른 키와 조합하여 기능을 변경하거나 활성화하는 특수 키를 의미합니다. 이 키들은 단독으로 사용할 때는 별도의 기능을 수행하지 않습니다.
반면, 기능키(예: F1)는 단독으로 실행되므로 수식키에 포함되지 않습니다.

필요성

문자 단축키는 빠른 탐색에 유용하지만, 음성 입력 사용자나 운동 기능 제약이 있는 사용자에게는 문제가 될 수 있습니다. 예를 들어, 음성 명령 중 발음한 문자가 단축키로 실행되어 작업 흐름을 방해할 수 있습니다. 또한, 키보드 입력이 어려운 사용자도 우발적인 키 입력으로 원치 않는 기능이 활성화될 수 있습니다. 이러한 문제를 해결하려면 단축키를 끄거나 보조키(Ctrl, Alt, Shift, Option, Command)와 조합해 사용하거나, 사용자가 단축키를 자유롭게 설정할 수 있도록 하는 방법이 유용합니다.

  • 스크린 리더는 문자 키를 사용해 명령을 수행하기 때문에 단축키 충돌 발생 가능성이 있습니다.
  • 키보드 실수로 중요한 기능이 실행될 수 있습니다.
  • 오작동 방지를 위한 키 조합 요구 또는 끄기 기능이 필요합니다.

대상

  • 사용자 유형
  • 이유
  • 스크린 리더 사용자

    단축키 충돌 방지 필요 (예: NVDA는 문자 키 사용)

  • 지체장애 사용자

    비의도적인 키 입력으로 오류 발생 가능

  • 비장애 사용자

    실수 입력에 따른 동작 최소화

체크리스트

  • 문자 하나만으로 실행되는 단축키가 있는가?
  • 단축키를 비활성화하거나 키 조합으로 대체할 수 있는가?
  • 사용자 설정을 통해 단축키를 변경할 수 있는가?

테스트 방법

  • 문자 키 하나를 눌렀을 때 기능이 실행되는지 확인합니다.
  • 단축키를 끌 수 있는 설정이 존재하는지 확인합니다.
  • Alt, Ctrl 등의 조합 없이 문자 단독 입력으로 동작이 일어나는지 확인합니다.

QA 지표

  • 단일 문자 단축키 기능 수
  • 단축키 충돌 방지 옵션 제공률
  • 사용자 설정 가능 여부

개발방법

html 예시 + JavaScript 예시 – 단축키 옵션 비활성화

Vue 예시 – 단축키 비활성화 및 조합 필요

React 예시

점검 기준

  • 단일 문자 입력만으로 기능이 실행되지 않는가?
  • 단축키를 비활성화할 수 있는가?
  • 사용자 설정 또는 조합 키 필요 설정이 있는가?

점검 방법

  • 키보드로 문자 키만 눌렀을 때 기능이 작동하는지 확인합니다.
  • 해당 기능을 끌 수 있는 UI 옵션 또는 설정이 있는지 확인합니다.

준수/미준수 사례

미준수 사례

문자 단축키 기능을 사용자가 끄거나 재설정할 수 없고, 현재 초점과 무관하게 실행
다음은 단일 문자 단축키 기능을 제공하는 달력 서비스 사례입니다.
달력 서비스에서 이전/다음 달 이동, 일정 생성 등 다양한 기능에 대한 단축키를 제공하는데 다음과 같은 문제점을 가지고 있습니다.

  1. 달력 외 영역에 초점이 있을 때에도 단축키 기능이 실행됩니다.
  2. 단축키를 켜거나 끌 수 있는 설정이 제공되어 있지 않습니다.
  3. 단축키를 보조키를 조합하여 재설정할 수 없습니다.
    이로 인해 음성 명령 또는 키보드 사용자가 의도하지 않은 단축키를 실행하게 되기 쉽습니다.
[출처 : 웹 접근성을 고려한 콘텐츠 제작기법 개정판]
개선 방안 : 다음 중 하나 이상의 방법을 적용합니다.
문자 단축키 기능을 끌 수 있는 설정을 제공합니다.
문자 단축키를 수식키 조합으로 재설정할 수 있게 합니다.
달력 영역에 초점을 받을 때만 단축키가 작동하도록 합니다.

준수 사례

단일 문자 단축키를 끄는 설정 제공

메일 서비스 설정 화면에서 단축키 기능을 끌 수 있는 옵션을 제공하여 의도치 않은 단축키 실행을 방지합니다.

[출처 : 웹 접근성을 고려한 콘텐츠 제작기법 개정판]

단일 문자 단축키 재설정 기능 제공

문자 단축키를 수식키와 조합하여 재설정할 수 있는 기능을 제공합니다. 이를 통해 단순 문자 입력만으로 동작하지 않도록 하여, 의도치 않은 실행을 예방합니다.

[출처 : 웹 접근성을 고려한 콘텐츠 제작기법 개정판]

초점을 받은 상태에서만 단일 문자 단축키 실행

지도 영역에 초점을 둔 상태일 때만 + / - 키로 확대·축소 기능을 수행하도록 하고, 초점이 다른 곳에 있으면 단축키가 동작하지 않게 합니다.


[출처 : 웹 접근성을 고려한 콘텐츠 제작기법 개정판]

관련 영상

출처 : 리베하얀


접근성 테스트 도구 활용 점검방법

결론

접근성은 시작은 있지만 끝이 없는 작업입니다.
오류 항목을 정기적으로 점검하여 접근성 개선을 한다면 점차 검사를 할 항목이 줄어들게 될 것입니다. 모두가 차별 없이 서비스를 이용할 수 있도록 접근성 유지를 위한 모두의 노력이 필요합니다. 무엇보다 접근성 작업은 서비스를 제공한다면 선택이 아닌 필수로 지켜야하는 항목임을 잊지 말아야 합니다.

접근성 작업 시 점검 필수사항

  • 접근성 가이드(WCAG, KWCAG, WAI-ARIA) 내용 숙지
  • 접근성 체크리스트 작성
  • 접근성 자동 및 수동 검사(스크린리더) 진행
  • 접근성 검사 툴(Lighthouse Accessibility 등) 활용 오류 항목 개선 및 내용 정리
  • 접근성 사용자 테스트
  • 접근성 정기적인 모니터링