PROBLEM 01
ENGINEERING / BARRIER-FREE ACCESSIBILITY
RULES THAT MAKE ACCESS USABLE02
인증 항목을 화면 옵션이 아니라, 조작과 안내의 규칙으로 만들었습니다.
BF 인증에는 낮은 화면, 고대비, 음성 안내, 포커스 이동 같은 기준이 있습니다. 키패드 탐색과 TTS가 같은 기준으로 동작하도록 규칙을 정리하고, 안내 음성은 키오스크 로컬 파일로 남겨 네트워크가 없어도 재생되게 했습니다.
- 01낮은 화면
휠체어 사용 높이에 맞춘 조작 영역
- 02고대비 화면
저시력 사용자를 위한 명도 대비
- MY CONTRIBUTION03음성 안내
현재 위치와 조작 결과를 TTS로 전달
- MY CONTRIBUTION04포커스 이동
키패드로 영역과 버튼을 순서대로 탐색
PROBLEM 02
안내를 들을 때마다 원격 TTS에 의존할 수 없었습니다.
키오스크는 네트워크가 끊기거나 지연되는 환경이 있어, 같은 문구를 매번 API로 합성하면 재생이 늦거나 실패했습니다.01 / FOCUS & TTS RULES
영역 포커스와 버튼 포커스를 하나의 이동 규칙으로 고정했습니다.
PROBLEM
첫 인증에서 포커스 이동 방식이 화면마다 달라졌습니다.
영역을 먼저 안내한 뒤 버튼을 말할지, 영역 안 첫 버튼까지 한 번에 안내할지 기준이 없었습니다. 영역 사이 이동도 화면마다 달라 시각장애인 사용자가 현재 위치를 파악하기 어려웠고, 기획·개발·QA가 검수할 공통 문서도 없었습니다.
SOLUTION
키패드 규칙과 요소별 음성 안내 규칙을 만들어 공유했습니다.
같은 영역 안에서는 버튼만, 영역을 넘을 때는 영역 안내와 포커스 요소를 함께 말하도록 나눴습니다. 이 규칙을 사내 문서로 정리해 관계 담당자와 공유했고, 키오스크 포커스 엔진과 TTS 문구의 구현 기준으로 사용했습니다.
영역 안
← / → 는 이전·다음 버튼만 이동합니다.TTS는 포커스된 요소 이름만 재생합니다.영역 전환
영역 끝에서 ← / →, 또는 ↑ / ↓ 로 영역을 바꿉니다.TTS는 영역 안내 뒤에 첫 포커스 요소를 이어서 말합니다.항목 경계
영역 안 첫·마지막 항목에서는 이동을 막습니다.“첫번째/마지막 항목입니다.” 뒤에 현재 항목을 다시 말합니다.키패드 포커스 이동 규칙
| 조작 | 이동 결과 | 음성 안내 |
|---|---|---|
| ← / → 같은 영역 | 이전·다음 버튼으로 이동 | {포커스 요소} |
| ← / → 영역 끝 | 이전·다음 영역으로 전환 | {영역 안내} + {포커스 요소} |
| ← / → 화면의 첫·마지막 영역 | 이동을 막고 현재 포커스 유지 | 첫번째/마지막 요소입니다. |
| ↑ / ↓ | 대상 영역의 첫 활성 버튼으로 진입 | {영역 안내} + {첫 포커스 요소} |
화면 안내숨김 포커스
{페이지명}입니다. {페이지 설명}. 다시듣기는 샵 버튼. 사용법은 별 버튼.일반 리스트단일 동작
{영역명}입니다. 좌우키로 항목을 이동하고 확인 버튼을 눌러 선택하세요.일반 리스트내부 설명
{영역명}입니다. {내부 요소 설명}. 좌우키로 버튼을 선택하세요.주요 콘텐츠노출 개수
{영역명}입니다. 총 {n}개의 메뉴가 있습니다. {선택 결과}.사진 영역단수 / 복수
한 개면 영역만, 여러 장이면 총 n개 중 현재 순번을 안내합니다.요소 1개영역 안내 생략
그룹과 버튼이 같으면 영역 안내를 중복하지 않고 요소 음성만 재생합니다.02 / LOCAL TTS CACHE
같은 안내는 원격 합성을 반복하지 않고, 로컬 MP3로 남겼습니다.
PROBLEM
안내를 들을 때마다 TTS API를 호출하면 현장 재생이 불안정했습니다.
포커스가 움직일 때마다 같은 문구를 원격으로 합성하면 응답이 늦고, 네트워크가 없는 키오스크에서는 음성 안내 자체가 끊겼습니다. 인증과 실제 운영 모두 오프라인 재생이 필요했습니다.
SOLUTION
문구 해시로 파일명을 만들고, PHP로 키오스크에 저장했습니다.
안내 문구를 해시해 TTS_{hash}.mp3로 조회합니다. 로컬 파일이 있으면 바로 재생하고, 없을 때만 TTS API로 합성한 뒤 upload.php가 /TTS_FILE에 저장합니다. 한 번 받은 안내는 이후 네트워크 없이 재생됩니다.
- 01안내 문구
포커스·페이지 TTS 텍스트
심볼 정리 · 층 코드 변환 - MY CONTRIBUTION02로컬 파일 조회
TTS_{hash}.mp3
/TTS_FILE HEAD 요청 - 03원격 합성
파일이 없을 때만
Tovair TTS API - MY CONTRIBUTION04PHP 저장
upload.php
MP3를 키오스크에 캐시
저장 규칙
- 파일명: 안내 문구 해시값 기준 TTS_{hash}.mp3
- 조회: /TTS_FILE 경로에서 HEAD로 로컬 파일 확인
- 합성: 파일이 없을 때만 원격 TTS API 호출
- 저장: upload.php가 업로드 파일을 TTS_FILE 폴더로 이동
- 권한: Windows 키오스크에서 읽기 권한을 부여해 재생
RESULT
인증을 통과하는 기능이 아니라, 같은 기준으로 검수할 수 있는 경험이 되었습니다.
포커스와 음성 안내는 화면마다 다르게 구현하지 않고 공통 규칙으로 고정했고, 안내 음성은 한 번 합성한 파일을 키오스크에 남겨 오프라인에서도 재생되게 했습니다. 기획·개발·QA가 같은 문서를 보고 구현과 인증 검수를 진행할 수 있게 되었습니다.