ChromeOS의 키오스크 모드는 사용자가 로그인하지 않아도 애플리케이션을 실행하고 전체 화면으로 잠급니다. 키오스크 모드는 사용자가 통제되고 집중된 방식으로 정보와 서비스에 액세스할 수 있는 편리하고 효율적인 방법을 제공합니다. 하지만 키오스크 모드의 환경은 매우 엄격하게 관리되므로 키오스크 앱이 모든 사용자에게 제공되는지 확인하는 것이 중요합니다. 키오스크 접근성을 개선하면 정보 액세스에 대한 장벽을 줄여 도달범위를 넓히고 포용성을 높여 고객 만족도를 개선할 수 있습니다.
키오스크 모드에서 실행되는 앱은 웹 앱이므로 웹 접근성 권장사항이 적용됩니다.
- 웹 콘텐츠 접근성 가이드라인 (WCAG 2)을 따릅니다. 키오스크 앱을 내부적으로 배포하는 경우에도 스크린 리더 사용성과 같은 접근성을 보장하는 가장 좋은 방법은 WCAG 2를 따르는 것입니다. 접근성 분야에 종사하는 사람들의 다른 유용한 디자인 및 개발 리소스를 활용하여 키오스크 앱을 개선할 수도 있습니다.
- 영국 정부는 저시력 및 청각 장애인 사용자를 포함하여 접근성 기능이 필요한 사용자를 위한 설계에 관한 일반적인 권장사항과 금지사항을 제공합니다.
- Web.dev에서는 웹 개발에서 접근성이란 무엇이며 왜 중요한지에 관한 정보를 제공합니다.
- Material Design에서는 디자인의 접근성 권장사항을 공유합니다.
- 여러 입력 방법을 제공합니다. 동작 기반 탐색을 사용하지 마세요. 사용자는 앱과 상호작용하기 위해 키보드, 마우스 또는 스위치가 필요할 수 있습니다.
- 다양한 형태의 출력을 제공합니다. 오디오와 같은 단일 유형의 출력에 의존하지 마세요. 사용자는 소리 없이 또는 시각적 신호 없이 앱과 완전히 상호작용해야 할 수 있습니다.
- 다양한 잠재고객을 대상으로 앱과 하드웨어를 테스트합니다. 권장사항을 준수하는 것만으로는 충분하지 않습니다. 테스트를 진행하세요. 사용자는 키오스크 앱과 물리적으로 그리고 디지털 방식으로 모두 상호작용해야 합니다. 경험 테스트를 통해 개선이 필요한 영역을 파악할 수 있습니다.
- 다양한 테스트 사용자 그룹을 포함하여 잠재적인 접근성 문제를 파악하세요.
- 키오스크 앱을 사용할 환경과 하드웨어에서 키오스크 앱을 테스트합니다.
키오스크 앱은 관리 환경에서 실행되므로 사용자가 일반적으로 사용하는 ChromeOS 접근성 기능이나 하드웨어 옵션에 액세스하지 못할 수 있습니다. ChromeOS 키오스크 접근성과 관련하여 고려해야 할 세 가지 수준의 제어가 있습니다.
- 정책: 관리자는 필수 키오스크 접근성 설정에 대한 액세스를 비롯한 관리 기기의 정책을 제어합니다.
- API: 개발자는 chrome.accessibilityFeatures API를 호출하는 동반 확장 프로그램을 사용하여 사용자가 키오스크 앱과 상호작용하는 방식을 제어할 수 있습니다.
- 하드웨어 기기: 기기 유형과 연결된 주변기기는 입력 장치, 화면 크기, 플랫폼 등 사용자가 키오스크와 물리적으로 상호작용하는 방식을 제어합니다.
이러한 수준은 매우 상호 의존적이므로 진정으로 접근 가능한 키오스크 앱 환경을 제공하려면 함께 작동해야 합니다. 관리자는 키오스크 앱을 배포할 때 접근성을 고려해야 하며, 개발자는 배포 후 관리 설정이 앱에 미칠 수 있는 영향을 알고 있어야 합니다.
키오스크 관리자를 위한 정책 제어
일반 사용자 세션의 ChromeOS 기기에서 사용자는 설정 앱의 접근성 섹션으로 이동하여 접근성 설정을 관리할 수 있습니다. 키오스크 모드에서는 기본적으로 사용자가 설정 앱에 액세스할 수 없습니다. 대신 관리자는 키오스크 모드에서 사용자가 접근성 설정에 액세스할 수 있도록 접근성 설정을 사용 설정해야 합니다.
관리자는 Google 관리 콘솔에서 기기 > Chrome > 설정 > 기기 설정 탭으로 이동하여 '키오스크 접근성' 설정을 찾을 수 있습니다.
다음 두 가지 주요 설정을 확인해야 합니다.
- 키오스크 플로팅 접근성 메뉴: 키오스크 모드에서는 설정 앱을 쉽게 사용할 수 없으므로 이 옵션을 사용 설정하면 사용자가 플로팅 접근성 메뉴를 통해 접근성 설정을 전환할 수 있습니다. 이 설정을 구성하지 않으면 플로팅 접근성 메뉴가 표시되지 않는 것이 기본 동작입니다.
- 키오스크 접근성 단축키: 이 기능을 사용 설정하면 사용자가 단축키를 사용하여 접근성 기능을 사용 설정할 수 있습니다. 하지만 일부 기능에는 해당하는 단축키가 없습니다. 이 설정을 구성하지 않으면 단축키가 사용 설정되는 것이 기본 동작입니다.
접근성 기능을 개별적으로 구성할 수도 있습니다. 기본적으로 '사용자가 결정하도록 허용'으로 구성되어 있어 사용자가 적절하다고 판단되는 대로 접근성 기능을 사용 설정하거나 사용 중지할 수 있습니다.
참고: 각 설정의 동작에 관해 자세히 알아보려면 ChromeOS 접근성 기능의 전체 목록을 확인하세요.
Chrome 확장 프로그램 chrome.accessibilityFeatures API
키오스크 모드에서 사용자는 키오스크 플로팅 접근성 메뉴를 사용하거나 해당 키보드 단축키를 사용하여 접근성 기능을 전환할 수 있습니다. 하지만 이 방법은 관리자가 메뉴를 사용 설정한 경우에만 가능하며 모든 기능에 단축키가 있는 것은 아닙니다. 따라서 개발자는 적절한 경우 접근성 설정을 키오스크 앱에 직접 통합해야 합니다. 예를 들어 텍스트 입력이 표시될 때 사용자가 음성 지원을 사용할 수 있는 옵션을 제공합니다.
ChromeOS 접근성 기능의 상태는 chrome.accessibilityFeatures API를 통해 액세스할 수 있습니다. 관리 콘솔에서 '사용자가 결정하도록 허용'으로 구성된 경우 이 API를 통해 접근성 기능을 제어할 수도 있습니다. Chrome 확장 프로그램 API이므로 키오스크 앱과 함께 실행되는 동반 확장 프로그램에서 호출해야 합니다. 개발자는 이 API를 사용하여 각 설정을 제어할 수 있는지 확인하고 해당 기본 제공 ChromeOS 접근성 기능과 상호작용할 수 있습니다.
chrome.accessibilityFeatures API에는 각 접근성 기능에 해당하는 속성이 있습니다. 각 속성은 다음 메서드가 있는 type.ChromeSetting 프로토타입입니다.
get(): 설정 값을 가져옵니다.set(): 설정 값을 설정합니다.onChange(): 설정이 변경될 때 리스너를 추가합니다.clear(): 설정을 지우고 기본값을 복원합니다.
속성의 상태를 가져오려면 다음 관련 필드가 있는 콜백을 통해 세부정보 객체를 반환하는 onChange() 또는 get()를 호출합니다.
levelOfControl: 설정의 제어 수준입니다.set()를 호출하여 설정 값을 변경하기 전에 확장 프로그램에서 설정을 제어할 수 있는지 확인하세요. 관리자가 설정을 사용 중지하거나 사용 설정하는 명시적 정책을 보유하는 경우levelOfControl은not_controllable이 되며 API로 구성할 수 없습니다.value: 설정 값입니다. 모든 접근성 기능 속성은animationPolicy를 제외하고 부울 유형입니다.animationPolicy는allowed,once또는none로 구성된 열거형입니다.
예를 들어 먼저 이 확장 프로그램에서 속성을 구성할 수 있는지 확인하여 가상 키보드 기능을 전환해 보겠습니다.
const virtualKeyboard = chrome.accessibilityFeatures.virtualKeyboard; virtualKeyboard.get({}, (details) => { // check the level of control for virtual keyboard if (details.levelOfControl == 'controllable_by_this_extension' || details.levelOfControl == 'controlled_by_this_extension') { // disable if virtualKeyboard is currently on if (details.value) { virtualKeyboard.set({value: false}, () => console.log('Virtual keyboard has been disabled'); } else { // enable if virtualKeyboard is currently off virtualKeyboard.set({value: true}, () => console.log('Virtual keyboard has been enabled'); } } else { // the setting is not controllable by this extension because it cannot be controlled by any extension or it's being controlled by an extension with higher precedence console.log('Virtual keyboard setting cannot be changed.'); }
먼저 virtualKeyboard 속성에서 get()를 호출하여 사용 가능한 제어 수준과 속성의 현재 값을 읽습니다. 이 확장 프로그램으로 제어할 수 있거나 이미 이 확장 프로그램으로 제어되고 있다면 set()를 호출하고 virtualKeyboard 속성 값을 전환해도 안전합니다. 속성을 제어할 수 없는 경우 사용자에게 이 설정을 전환할 수 없다고 알리고 적절한 경우 시스템 관리자에게 문의하도록 안내합니다.
chrome.accessibilityFeatures API로 구성할 수 있는 속성은 텍스트 음성 변환, 디스플레이 및 확대, 키보드 및 텍스트 입력, 커서 및 터치패드의 다음 카테고리로 그룹화됩니다.
텍스트 음성 변환
텍스트 음성 변환 기능을 사용하면 ChromeOS 내장 스크린 리더로 화면의 텍스트를 소리 내어 읽을 수 있습니다. 시각 장애가 있거나, 읽을 수 없거나, 텍스트를 읽는 대신 듣는 것을 선호하는 사용자는 이러한 기능을 통해 기기와 상호작용할 수 있습니다.
selectToSpeak: 사용자가 화면에서 텍스트를 선택하여 소리 내어 읽어줄 수 있는 텍스트 읽어주기 기능을 제어합니다.spokenFeedback: 화면의 텍스트와 버튼, 링크, 기타 요소의 이름을 소리 내어 읽어주는 스크린 리더인 ChromeVox 기능을 제어합니다.
디스플레이 및 확대
디스플레이 및 확대 기능은 디스플레이 색상을 변경하고 확대 옵션을 제공하여 화면을 더 쉽게 읽고 객체를 더 쉽게 찾을 수 있도록 합니다.
highContrast: 색 구성표를 대비가 높은 구성표로 변경하는 색상 반전 기능을 제어합니다.screenMagnifier: 화면의 항목을 더 크게 확대하는 전체 화면 돋보기 기능을 제어합니다.dockedMagnifier: 화면 분할 뷰에서 화면의 포커스가 맞춰진 영역을 확대하는 고정 돋보기 기능을 제어합니다.
키보드 및 텍스트 입력
키보드 및 텍스트 입력 기능을 통해 사용자는 화면의 콘텐츠와 입력 항목과 다양한 방식으로 상호작용할 수 있습니다.
virtualKeyboard: 이 속성은 사용자가 실제 키보드를 사용하지 않고도 입력할 수 있는 터치 키보드 기능을 제어합니다.dictation: 이 속성은 사용자가 마이크에 말하여 텍스트를 입력하고 음성으로 입력을 제어할 수 있는 음성기록 기능을 제어합니다.switchAccess: 이 속성은 사용자가 스위치 (키보드 키, 게임패드 버튼, 기타 전용 스위치 기기)로 기기를 제어할 수 있는 스위치 제어 기능을 제어합니다.stickyKeys: 이 속성은 사용자가 단축키를 위해 여러 키를 한 번에 누르지 않고 한 번에 하나의 키를 누를 수 있도록 하는 고정키 기능을 제어합니다.focusHighlight: 이 속성은 키보드 포커스가 있는 객체를 강조 표시하는 키보드 포커스 강조 표시 기능을 제어합니다. 사용자는 탭 키를 사용하여 객체를 탐색하거나 마우스 커서로 선택합니다.caretHighlight: 이 속성은 텍스트 커서가 나타나거나 이동할 때 텍스트 커서 주위에 포커스 링을 표시하는 텍스트 커서 (캐럿) 강조 표시 기능을 제어합니다.
커서
커서 기능을 사용하면 커서를 맞춤설정하여 화면에서 더 쉽게 찾고 더 쉽게 사용할 수 있습니다.
autoclick: 이 속성은 마우스 커서가 멈추는 부분을 자동으로 클릭할 수 있는 자동 클릭 기능을 제어합니다.largeCursor: 이 속성은 마우스 커서 크기를 늘려 더 잘 보이게 하는 큰 커서 기능을 제어합니다.cursorColor: 이 속성은 커서 색상 기능을 제어합니다.cursorColor속성 값은 기능이 사용 설정되었는지 여부만 나타냅니다. 커서 색상을 나타내지 않습니다.cursorHighlight: 이 속성은 마우스 커서가 이동할 때 마우스 커서 주위에 포커스 링을 표시하는 커서 강조 표시 기능을 제어합니다.
하드웨어 수준 키오스크 접근성
다른 앱과 마찬가지로 키오스크 앱의 접근성도 배포된 기기에 따라 달라집니다. 개발자는 하드웨어 팀과 협력하여 하드웨어 수준에서 키오스크 앱에 액세스할 수 있는지 확인해야 합니다.
키오스크 앱은 비대화형 디스플레이부터 대화형 플랫폼에 이르기까지 모든 ChromeOS 시스템에 설치할 수 있습니다. 사용자가 키오스크 앱과 상호작용할 것으로 예상되는 경우 특정 하드웨어 수준 접근성 표준이 권장됩니다.
- 키오스크 앱은 휠체어나 유사한 이동 보조 기구를 사용하는 사용자가 도달하고 액세스할 수 있어야 합니다.
- 키오스크 하드웨어에는 실제 키보드와 마우스 옵션이 포함되어야 합니다.
- 키오스크 앱에는 헤드폰 잭과 마이크 지원이 있어야 합니다.
- 키오스크 하드웨어에는 텍스트와 이미지가 선명하게 표시될 수 있도록 충분한 크기와 해상도의 화면이 있어야 합니다.
키오스크 접근성은 정책 제어, API, 하드웨어 등 여러 요소에 의존합니다. 하지만 키오스크 접근성은 기본적으로 웹 접근성입니다. 키오스크 앱의 접근성을 개선하려면 위의 권장사항과 권장사항을 따르고, 철저한 사용자 테스트를 진행하고, WCAG 2 가이드라인을 검토하세요.