Repository navigation
fix: 남은 입력 안내와 창 접근성을 점검하고 보완한다 - #232
Open
OnlyReadOneBook wants to merge 4 commits into
Open
OnlyReadOneBook wants to merge 4 commits into
OnlyReadOneBook wants to merge 4 commits into
Conversation
출시 전 감사에서 남아 있던 입력 안내·창 생명주기·스토어 소재 항목을 실제로 렌더하고 돌려 본 뒤 확인된 결함만 고쳤다. C29/C39 일정 입력 - 시작 시간을 다 지우면 저장 버튼만 잠기고 화면에 이유가 없었다. 시작 시간은 비어 있어도 범위 안내를 내도록 TimeInputFeedback 에 required 를 둔다. 종료 시간은 선택이라 그대로다. - 되읽기와 오류 안내가 칸의 형제 Text 라 화면 낭독기가 칸에 머무는 동안 읽지 않았다. liveRegion(Polite)을 주고, 네 칸에 isError 를 붙여 Material3 의 오류 시맨틱과 색을 받는다. - 제목 칸의 안내가 첫 글자를 넣는 순간 사라져 아래 칸들이 딸려 올라왔다(큰 글자에서 100dp 이상). 안내를 늘 띄우는 규칙 문장으로 바꾸고, label 을 빼 빈 칸에서 "무엇을 할까요?" 가 다시 보이게 했다. C36/R51 테마와 첫 프레임 - 시작 창이 앱에서 고른 테마를 따르지 않아 어두운 테마에서 밝은 창이 한 번 번쩍였다. UiModeManager.setApplicationNightMode 로 앱별 야간 모드를 심고 windowBackground 를 맞춘다. minSdk 32 라 API 31 요구를 이미 넘는다. https://developer.android.com/develop/ui/views/theming/darktheme - MainActivity 가 테마 Flow 를 재구성마다 새로 만들어 SharedPreferences 리스너를 다시 달았다. remember 로 한 번만 만들고, 첫 값도 저장된 값으로 시작해 첫 프레임이 어긋나지 않게 한다. C37/S04/S05 알람·목록·색 - 알람 시계를 초 단위 갱신에서 분 경계 갱신으로 바꾸고 12시간제로 읽게 한다. - 알람 화면에 전용 테마를 줘 밝은 기기에서 흰 창이 번쩍인 뒤 어두운 화면이 그려지던 것을 없앤다. - 일정 칸 경계가 outlineVariant 라 배경 대비 2.02:1(어두운 모드)이었다. 어두운 모드는 surface 와 background 가 같은 값이라 이 선이 칸을 가르는 유일한 표시다. outline 으로 바꿔 5.84:1(어두운 모드)·4.13:1(밝은 모드)로 올려 WCAG 1.4.11 의 3:1 을 넘긴다. https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast.html - 로그아웃이 error 색 버튼이라 바로 아래 계정 삭제와 함께 붉은 버튼 두 개로 보였다. 되돌릴 수 있는 로그아웃은 기본 색으로 두고 error 는 계정 삭제에만 남긴다. R28 날짜 선택 - DatePickerDialog 를 Activity 컨텍스트로 직접 띄워 화면이 사라져도 창이 남았다. Composable 이 소유하고 DisposableEffect 로 정리한다. selectedDate 를 키로 두지 않는 이유는 확인을 누르면 상태가 바뀌어 창이 다시 열리기 때문이다. R52/R53/R54 스토어 소재 - 스크린샷이 1080x2400(9:20)이라 긴 변이 짧은 변의 2배를 넘어 Play 요건을 어겼다. 미리보기를 360dp x 640dp 로 바꿔 1080x1920(9:16)으로 낸다. - 아이콘이 24비트라 Play 가 요구하는 32비트(알파 포함)가 아니었다. RGB 픽셀을 그대로 두고 다시 인코딩했다. https://support.google.com/googleplay/android-developer/answer/9866151 - 기기 규격이 바뀌어 baseline 이름의 해시가 바뀐다. 옛 baseline 넷을 지운다. 남겨 두면 내보내기 스크립트가 한 화면에서 파일 둘을 보고 멈춘다. - 추천 목록에 의료 안내가 아니라는 문구를 넣고, 「학생」 묶음 문구를 18세 이상 선언과 대조한 결과를 출시 문서에 적는다. 검증 - ktlintCheck · testDebugUnitTest · lintDebug · :app:processDebugMainManifest · :app:compileDebugAndroidTestKotlin · :app:assembleDebug 통과. - node --test .github/scripts/*.test.mjs 302건, verify-android-manifest.mjs, verify-markdown-links.mjs 통과. - 미리보기는 모두 렌더된다. baseline 은 호스트에서 만들지 않고 CI 컨테이너가 만든다. - 실기기 확인(알람 큰 글자, 시작 창 번쩍임)은 남는다. Closes #220
Contributor
|
📸 CI 표준 환경에서 screenshot baseline 14개를 생성·검증해 |
CI 컨테이너가 1080x1920 으로 그린 baseline 을 scripts/export-play-screenshots.sh 로 옮겼다. RGB 픽셀은 baseline 과 한 점도 다르지 않고 알파만 떼어 Play 가 요구하는 24비트 불투명 PNG 로 만든다. --check 도 통과한다. 아이콘은 32비트(알파 포함), 그래픽 이미지와 스크린샷은 24비트(알파 없음)라는 서로 다른 요구를 이제 셋 다 만족한다. https://support.google.com/googleplay/android-developer/answer/9866151 Refs #220
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📌𝘐𝘴𝘴𝘶𝘦𝘴
📎𝘞𝘰𝘳𝘬 𝘋𝘦𝘴𝘤𝘳𝘪𝘱𝘵𝘪𝘰𝘯
이슈의 여섯 항목을 실제로 렌더하고 돌려 본 뒤, 확인된 결함만 고쳤다.
C29/C39 입력 안내
TimeInputFeedback에required를 둬 시작 시간은 비어 있어도 범위 안내를 낸다. 종료 시간은 선택이라 그대로다.Text라 화면 낭독기가 칸에 머무는 동안 읽지 않았다.liveRegion(Polite)을 주고 네 칸에isError를 붙여 Material3 의 오류 시맨틱과 색을 받는다.label을 두면 Material3 가 빈 칸에서 placeholder 를 감춰 "무엇을 할까요?" 가 사라지므로, 필수 표시는 머리글이 지고label은 뺐다.C36/R51 테마와 첫 프레임
UiModeManager.setApplicationNightMode로 앱별 야간 모드를 심고windowBackground를 Compose 토큰과 같은 값으로 맞췄다. minSdk 32 라 API 31 요구를 이미 넘어 분기가 필요 없다.MainActivity가 테마 Flow 를 재구성마다 새로 만들어SharedPreferences리스너를 매번 다시 달았다.remember로 한 번만 만들고 첫 값도 저장된 값에서 시작한다.C37/S04/S05 알람·목록·색
outlineVariant라 배경 대비 2.02:1(어두운 모드)이었다. 어두운 모드는surface와background가 같은 값이라 이 선이 칸을 가르는 유일한 표시다.outline으로 바꿔 5.84:1(어두운 모드)·4.13:1(밝은 모드)이 되어 WCAG 1.4.11 의 3:1 을 넘긴다.R28 날짜 선택
DatePickerDialog를 Activity 컨텍스트로 직접 띄워 화면이 사라져도 창이 남았다. Composable 이 소유하고DisposableEffect로 정리한다.selectedDate를 키로 두지 않는 이유는 확인을 누르면 상태가 바뀌어 창이 다시 열리기 때문이다.R52/R53/R54 스토어 소재
근거 문서
📷𝘚𝘤𝘳𝘦𝘦𝘯𝘴𝘩𝘰𝘵
화면 증빙은 이 PR 의 diff 자체에 들어온다.
screenshot-baseline라벨로 CI 컨테이너가 baseline 을 새로 그려 커밋하므로, Files changed 에서 실제 렌더를 그대로 볼 수 있다.새로 굳히는 미리보기
ScheduleInputScreenshotTest— 입력 안내를 글자 배율 2배의 밝은·어두운 두 벌로 굳힌다. 유효한 시작 시간의 되읽기("입력한 시간: 오후 2:30")와 잘못된 종료 시간(25시)의 붉은isError테두리·범위 안내가 한 장에 함께 들어간다.RecommendationHealthNoticeScreenshot— 추천 화면의 의료 안내 문구를 360dp 와 글자 배율 2배 320dp 로 굳힌다.StoreScreenshotTest네 장 — 1080×1920 으로 다시 그린다.💬𝘛𝘰 𝘙𝘦𝘷𝘪𝘦𝘸𝘦𝘳𝘴
스토어 소재 순서는 이 PR 안에서 끝냈다.
screenshot-baseline라벨로 CI 컨테이너가 1080×1920 baseline 을 그려 커밋했다(dc45e4e). 파일 이름의 해시 넷이 문서의 대응표와 그대로 맞는다.scripts/export-play-screenshots.sh를 돌려docs/play/screenshots/넉 장을 다시 냈다(7d7a342).--check통과. 넉 장 모두 1080×1920, 알파 없는 24비트, CI baseline 과 RGB 픽셀이 한 점도 다르지 않다.옛 baseline 넷은 커밋 전에 지웠기 때문에 CI 가 만든 결과도 화면당 한 장씩이다. 지우지 않았으면 내보내기 스크립트가 한 화면에서 파일 둘을 보고 멈췄다.
소재 현황: 아이콘 512×512 32비트(알파 포함), 그래픽 이미지 1024×500 24비트(알파 없음), 스크린샷 1080×1920 24비트(알파 없음). 서로 다른 세 요구를 이제 다 만족한다.
판단이 갈릴 수 있는 곳
core/ui의ScheduleRow는 이 브랜치가 원래 건드리지 않던 파일이다. S04(일정 행 경계)가 이슈 범위라 한 토큰만 바꿨다. 대비값은 직접 계산해 위에 적었다. 범위 밖이라고 보면 되돌리면 된다.docs/play-release.md의 타겟층 행에 남겼다.확인하지 못한 것
ThemeAndAlarmAccessibilityTest는 글자 배율을 기기 전역 설정에서 바꾸지 않으므로 기본 배율만 본다(이름도 그렇게 고쳤다).:app:compileDebugAndroidTestKotlin컴파일 가드만 있다). 에뮬레이터에서 돌려 본 것이 아니라 플랫폼 소스를 따라 정합성만 확인했다.