접근성
최종 수정:
NoCheck는 차량을 관리하는 모든 분이 쓸 수 있어야 합니다. 이 페이지는 앱이 지금 무엇을 하는지, 아직 무엇을 하지 못하는지, 그리고 불편한 점이 있을 때 어떻게 연락하면 되는지 알려드립니다.
안심시키기보다 구체적이기를 택합니다. 아래의 모든 내용은 앱이 그렇게 만들어졌고 테스트로 확인된 것들입니다. 확인하지 못한 것은 빼놓지 않고 아직 말씀드릴 수 없는 것에 적어 두었습니다. 규칙에 예외가 있으면 그 예외를 측정값과 함께 규칙 옆에 적어 둡니다. 올려서 적은 규칙이야말로 접근성 페이지를 무의미하게 만드는 것이니까요.
NoCheck가 지금 지원하는 것
더 큰 글자
NoCheck는 가장 큰 설정까지 포함해 시스템 글자 크기를 따릅니다. 화면은 잘라내지 않고 다시 배치됩니다. 행은 높아지고 레이블은 줄바꿈되며, 앱의 모든 구성 요소는 글자 크기 **200 %**에서 자동 테스트를 거칩니다. 넘침이 하나라도 있으면 그 테스트는 실패합니다. 여기에 더해, 커질 수 없는 컨트롤에 대해서는 번역마다 길이 예산을 둡니다. 영어는 저희가 내놓는 언어 중 가장 짧아서, 영어만 기준으로 맞춘 버튼은 다른 언어의 절반에서 넘치게 됩니다.
설정은 기기의 시스템 설정에서 하시면 됩니다. iOS는 손쉬운 사용, Android는 디스플레이 아래에 있습니다. NoCheck는 그 값을 그대로 따르며, 어긋날 수 있는 자체 글자 크기 설정을 일부러 두지 않았습니다.
어두운 모드
밝은 테마 위에 필터를 씌운 것이 아니라 완전한 다크 테마입니다. 모든 색이 자기 배경에 맞게 그려져 있습니다. 기본적으로 시스템 설정을 따르며, 앱의 설정 → 환경설정 → 테마가 양방향으로 이를 덮어씁니다.
결코 색만으로는 아닙니다
차량의 정비 상태를 색만으로 알리는 일은 없습니다. 모든 상태에는 글자 레이블 (기한 초과, 곧 도래, 정상)과 고유한 아이콘이 함께 있습니다. 색은 그 메시지를 되풀이할 뿐, 혼자 의미를 지지 않습니다. 같은 규칙이 대시보드, 차량 화면, 그 사이의 모든 목록에 적용됩니다.
동작 줄이기
시스템이 동작 줄이기를 요청하면 NoCheck는 이를 지킵니다. 불러오는 중 표시는 반짝임을 완전히 멈춥니다. 행의 스와이프 동작은 여전히 움직이지만, 미끄러짐이 스프링이 붙은 220 ms에서 일정한 속도의 100 ms로 줄고, 동작 막대가 있다는 것을 알려 주는 힌트 애니메이션은 통째로 생략됩니다. “애니메이션 없음”이 아니라 이렇게 적는 이유는 그것이 아무것도 아닌 것은 아니기 때문입니다. 그 100 ms의 미끄러짐이 그래도 불편하시다면 알려 주십시오.
터치 영역
컨트롤은 원칙적으로 48 × 48 dp입니다. 보이는 것이 더 작더라도 마찬가지여서, 7 dp짜리 상태 점도, 작은 아이콘 버튼도, 텍스트 링크도 그 뒤에는 손가락 크기의 영역이 있습니다.
네 가지 요소는 의도적으로 더 작으며, 규칙을 올려 적기보다 그 넷을 적어 두기로 했습니다. 설계상 작게 만든 것이고, 같은 동작에는 더 큰 경로가 함께 있으며, 자동 테스트가 각각을 실측 크기에 고정해 두어 모르는 사이에 더 작아지는 일은 없습니다.
| 요소 | 그려진 크기 | 같은 동작으로 가는 다른 경로 |
|---|---|---|
| 단위 · 모드 전환 | 26 × 47.6 dp | 구획이 넓고 서로 붙어 있어, 빗나가도 빈 곳이 아니라 옆 구획에 들어갑니다 |
| 머리글의 “정비 기록” | 22 × 113.7 dp | 정비 화면에서는 같은 동작이 막대 위의 48 × 48 버튼입니다. 차량 화면에서는 아래의 각 정비 행이 같은 곳을 엽니다 |
| “주행거리 갱신” 버튼 | 높이 38 dp | 카드의 다른 곳을 누르면 차량이 열리고, 거기서는 같은 동작이 한 행 거리에 있습니다 |
| 백업을 권하는 바닥글 | 높이 42 dp | 같은 화면이 이를 일반 행으로도 제안합니다 |
Flutter는 그려진 영역 밖의 누름을 받지 않으므로, 이것들은 여백으로 부풀린 영역이 아니라 실제 영역입니다. 그중 하나가 손이 닿지 않는 곳에 있다면 알려 주실 만합니다. 크기는 설계상의 판단이지 법이 아닙니다.
스크린 리더
상호작용 컨트롤에는 VoiceOver와 TalkBack을 위한 레이블이 있으며, NoCheck에서 스와이프로만 닿을 수 있는 동작은 없습니다. 스와이프로 드러나는 동작은 모두 이름이 붙은 행 동작으로 스크린 리더에 제공되므로, VoiceOver와 TalkBack은 이 제스처를 쓸 일이 없습니다.
🚨 스크린 리더를 쓰지 않을 때는 제스처 하나에만 대응이 없습니다. 대부분의 목록에서 길게 누르기는 스와이프와 같은 메뉴를 엽니다. 정비 행에서는 다른 일을 합니다. 여러 작업을 한 번에 완료로 표시하도록 다중 선택을 시작합니다. 거기서 정비 항목을 지우는 길은 스와이프, 또는 스크린 리더가 받는 행 동작입니다. 길게 누를 수는 있지만 스와이프는 어렵고 스크린 리더도 쓰지 않으신다면, 이 하나의 삭제만은 당분간 닿지 않습니다. 저희 목록에 있습니다.
가장 중요한 곳의 명도 대비
본문 글자는 밝은 테마에서 17.4:1, 어두운 테마에서 15.1:1로, 둘 다 가장 엄격한 WCAG 수준을 넘습니다. 상태 레이블(기한 지남, 곧, 일정대로)은 밝은 테마에서 10:1 이상입니다. 어두운 테마에서는 같은 레이블이 4.7:1에서 6.4:1이 되어 WCAG AA는 통과하지만 밝은 테마만큼의 여유는 없으며, 유리한 숫자 하나가 아니라 둘 다 적어 둡니다.
이 수치는 팔레트 자체에서 계산하는 테스트가 쥐고 있고, 그중 하나라도 움직이면 빌드가 실패합니다. 그래서 이 페이지가 조용히 낡을 수는 없습니다. 눈대중이 아닙니다.
아직 말씀드릴 수 없는 것
전체로서의 충분한 명도 대비
App Store에서 충분한 명도 대비를 일부러 선언하지 않습니다. 아직 모든 곳에서 사실이 아니기 때문입니다. NoCheck가 힌트, 캡션, 보조 행에 쓰는 보조 회색은 밝은 테마에서 3.25:1로, WCAG AA가 작은 글자에 요구하는 4.5:1보다 낮습니다. 읽을 수 있고, 어떤 정보가 오직 그곳에만 나타나는 일은 없으며, 저희 목록에 올라 있습니다. 어두운 테마에는 이 문제가 없습니다.
스크린 리더로 처음부터 끝까지 점검
레이블은 갖춰져 있지만, VoiceOver나 TalkBack을 매일 쓰는 분이 처음부터 끝까지 점검한 적은 아직 없습니다. 그 전까지는 이 문제가 끝난 것처럼 앱이 “VoiceOver를 지원한다”고 말하지 않겠습니다.
점자 디스플레이, 스위치 제어, 음성 제어
시험하지 않았습니다. 망가졌다고 볼 근거도, 작동한다는 증거도 없습니다.
저희가 기준으로 삼는 것
- 목표로서의 WCAG 2.2 AA 등급. 웹을 위해 쓰인 기준이라 일부는 네이티브 앱에 느슨하게만 옮겨집니다. 저희는 이를 넘어야 할 기준으로 여기며, 받은 인증으로 여기지 않습니다.
- Apple의 Accessibility Nutrition Labels — 코드와 테스트가 뒷받침하는 기능만 선언합니다. 저희 App Store 페이지의 목록이 그럴 수 있는 것보다 짧은 이유입니다.
- 터치 영역, 레이블, 글자 크기 조정에 관한 Android 접근성 지침.
이 웹사이트
이 사이트의 모든 페이지는 지속적 통합에서 Lighthouse 접근성 만점을 유지하도록 검사받습니다. 그 아래로 떨어지는 빌드는 배포되지 않습니다. 자동 검사이므로 사람의 점검을 대신하지는 않지만, 어떤 배포도 조용히 나빠지지 않는다는 뜻입니다.
불편한 점을 알려주세요
**support@nocheck.app**으로 보내주세요. 다음을 적어주시면 도움이 됩니다.
- 어느 화면이었는지,
- 어떤 기기와 OS 버전인지,
- 어떤 보조 기술을 쓰고 계셨는지(쓰셨다면),
- 그리고 대신 무엇을 기대하셨는지.
모든 메시지를 읽습니다. 이 페이지의 내용이 오래되었거나 틀렸다면 그것도 메일로 알려주세요. 이 페이지는 정직할 때만 쓸모가 있습니다.