2.7 KiB
2.7 KiB
접근성 지원 범위 (UC-A01~A20)
작성: 2026-08-17. UI 복잡 버전(docs/UI_USECASES.md §G) GREEN 구현과 함께 정의한 접근성 지원 선언 문서. 무엇을 지원하고 어떻게 검증하는지 적는다.
지원 범위
| 영역 | 지원 내용 | 구현 위치 |
|---|---|---|
| 화면 낭독기(UIA) | 주요 컨트롤 30여 개에 AutomationProperties.Name/HelpText 부여 |
MainWindow.xaml 툴바·카드·팝업 |
| 라이브 영역 | 상태바 텍스트·다운로드 상태·대기 현황 LiveSetting="Polite", 오류는 Assertive |
상태바, 카드 템플릿 |
| 커스텀 자동화 피어 | MainWindowAutomationPeer 로 창 이름 노출 |
MainWindow.xaml.cs |
| 키보드 | Tab 이동(TabIndex 지정), 포커스 링(FocusVisual 공용 스타일), Esc 팝업 일괄 닫기 |
Shared.xaml, MainWindow |
| 접근 키 | AccessText(이동(_G)) 등 Alt 접근 키 |
툴바 이동 버튼 |
| 툴팁 | ToolTipService 표시 지연/지속 설정 + 그림자 |
MainWindow(Window 속성), Shared.xaml |
| 고대비 | Themes/HighContrast.xaml + OS 고대비 자동 감지(SystemParameters.HighContrast, UserPreferenceChanged) |
App.xaml.cs, MainWindow |
| 색 무의존 상태 | 완료 ✓ 아이콘(SuccessIcon), 미디어 종류 배지 텍스트 |
카드 템플릿 |
| 저시력 | 글자 확대 배율 최대 200%(AppConfig.UiFontScale), UI 배율(UiScale) |
설정 > 외관/접근성 |
| 동작 민감 | 애니메이션 감소(ReduceMotion → Duration 토큰 0화) |
설정 > 접근성 |
| 자막 | 영상 자막 표시 옵션(ShowCaptions) |
설정 > 접근성 |
| 콘텐츠 언어 | 리더 모드 HTML lang="ko" 선언 |
ReaderMode.cs |
| 명도 대비 | WCAG AA 텍스트 4.5:1, 비텍스트 3:1 — 자동 검증 | 테스트 UiUsecaseAccessibilityRedTests, UiUsecaseThemeRedTests |
대비 기준과 검증
- 텍스트(본문·보조·강조): 다크·라이트 모두 4.5:1 이상 (UC-T14~T18)
- 진행 트랙·버튼 테두리 등 비텍스트 구성요소: 3:1 이상 (UC-A19~A20)
- 대비율은 WCAG 2.x 상대 휘도식으로 테스트에서 실제 색값(
#RRGGBB)을 파싱해 계산한다. 테마 색을 바꿀 때마다 자동으로 재검증된다.
팝업 키보드 탐색
모든 플라이아웃(즐겨찾기·기록·다운로드·라이브러리·아카이브·단축키 도움말)에
KeyboardNavigation.TabNavigation="Cycle" 를 적용해 팝업 안에서 포커스가 순환하며,
Esc 한 번으로 열린 모든 팝업이 닫힌다(CloseAllPopups).
제약(현재 미지원)
- 완전한 UI 언어 전환(한/영)은 설정값 저장 + 일부 텍스트 적용 수준이다.
- 터치 스크린 전용 제스처(스와이프 등)는 지원하지 않는다.