Files
HMDesign/docs/reports/publisher-a11y-guard-2026-10-10.md
T

57 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 퍼블리셔·접근성·Guard 선택 개선 — 2026-10-10
RESULT: 요청한 수정과 선택 검증 PASS. 교차 모델 미완료 실험, 전체 접근성 인증은 NOT VERIFIED. 기준 HEAD는 `f78cc206a5a9af6b61c42cfb989ed26fbe9da948`. 기존 READ-ONLY 보고서·검증 JSON은 수정 전에 별도로 보존하고 변경 후 SHA256 일치를 확인했다.
## 실제 수정
| 파일 | 변경 |
|---|---|
| `.storybook/manager.css` | 기존 펼침 그룹 selector의 배경만 검정 20% → 8%. 선택 면의 20% inset, hover/focus·메뉴 JS·공통 Token 보존 |
| `packages/ui/src/theme/lnb.css`, `docs/patterns/lnb.md` | 오른쪽 Green LNB의 기존 8% 유지. 오래된 20% 주석 수정, Manager/Component 적용 범위 설명 |
| `packages/ui/src/theme/combobox.css`, `date-picker.css` | 흰 Trigger의 빈 값 안내를 기존 보조 텍스트 Semantic에 연결. 기본 #999/흰색 2.85:1 → #6e6759/흰색 5.60:1. 공통 Theme·Token 값, 선택값·아이콘·disabled opacity 보존 |
| `docs/components/combobox.md`, `date-picker.md` | 현재 mapping 설명. 과거 실측 기록은 당시 기록으로 보존 |
| `scripts/guard-requirements.mjs`, `guard-requirements.test.mjs` | 명시한 액션 이름 허용 목록을 검사하는 별도 도구와 5개 회귀 테스트. 미요청 정적 CSV/다운로드 액션 FAIL; 동적 이름/불완전 정책/오래된 fingerprint는 NOT VERIFIED |
| `docs/guidelines/ai-generation-guard.md`, `navigation-single-mode.md` | 보조 검사 사용법·한계, T04 정상 혼합 거부 응답과 별도 평가 기준 |
원본 Guard status/issues 및 기존 회귀 테스트 본문은 변경하지 않았다. 정책 예외·새 공통 Token·Story ID·업무 화면 생성은 추가하지 않았다.
## 실제 실행한 검사
- 변경 전/후 실제 Storybook: 왼쪽 펼침 그룹 rgba(0,0,0,0.08), 오른쪽 Green LNB color(srgb 0 0 0 / 0.08), opacity 1. CSSOM에서 그룹 selector의 적용 규칙·priority 확인. 펼침 면의 20% 잔여 적용 없음. 선택 inset의 20%는 요청 범위 밖의 기존 효과다.
- 선택·hover·focus computed style 변경 전/후 일치. 선택/펼침/접힘, 검색 결과 및 tag filter 열기 통과. 변경 전/후와 최종 빌드 화면 PNG 직접 확인.
- 최종 Storybook Combobox/DatePicker 각각 390/768/1280/1440: 안내 문구 대비 5.60395679:1, 가로 overflow·중복 ID 없음, Enter로 popup 열기·Escape 닫기·trigger focus 복귀 통과. 선택값/disabled opacity/배경/아이콘은 변경 전후 일치.
- 신규 요구사항 검사 5/5 PASS. Theme 연결에 영향받는 기존 Guard 테스트 8/8 PASS(55개는 선택 실행에서 skip). 기존 전체 80개를 다시 실행한 결과로 표현하지 않는다.
- 최종 통합 상태 UI package build(선언 Typecheck 포함), root Vite build, Storybook build 각 1회 PASS. root의 기존 chunk size 경고는 잔여 경고다. Story ID 292 → 292, 추가/삭제 0.
- Git diff whitespace 검사, 공통 Guard/검사 소스·package-lock hash 일치 및 보존 자료 hash 일치 확인.
## 재사용한 검사
기존 별도 교차 모델 실험의 `logs/baseline-regression.log`는 동일 기준 SHA에서 Guard63/Evidence5/Component9/Theme3 총 80/80 PASS다. 검증 ledger·검사 소스·의존성 hash를 확인해 변경과 관계없는 범위의 회귀 증거로 재사용했다. CSS mapping 변경 영역은 새 브라우저 검사와 선택 Guard 8개로 보완했다. 최종 소스 전체에 80개를 다시 실행했다고 보고하지 않는다.
READ-ONLY 단계의 root/UI/CENTER/publisher Typecheck, 기능 C2~C5/PT1~PT2/R1~R3, 나머지 퍼블리셔 대표 Story·운영 화면 검증은 변경된 메뉴·안내 문구와 관계없는 범위에서 재사용했다. TSX/API/tsconfig·의존성은 변경하지 않았다. UI 선언 검사는 최종 package build에서 수행했다. 전체 Typecheck·모든 앱/292개 Story Runtime은 반복하지 않았다.
## 교차 모델 작업표 복원
원본 `D:\디자인시스템\HMDesign-AI-CrossModel-Test`의 requirements·reports·evaluation·모델별 산출물을 읽어 다음 매핑을 복원했다. requirements frozen hash와 성공 화면 4개의 source/contract fingerprint는 각 원본 실험 사본에서 일치한다.
| 모델/요청 effort | 테스트 | Typecheck/Build/4폭 Runtime | 원본 Guard 연결 |
|---|---|---|---|
| claude-sonnet-5 medium | T01 | PASS | NOT VERIFIED(CSS intent) |
| claude-sonnet-5 medium | T03 | PASS | PASS |
| claude-sonnet-5 high | T01 | PASS | NOT VERIFIED(CSS intent) |
| claude-sonnet-5 high | T02 | PASS | PASS |
high T01은 실제 평가 가능한 산출물이 있으나 원래 세션의 정상 완료로 세지 않는다. 이 4개를 다시 생성하지 않았다. 원본 실험 사본의 유효한 증거를 현재 수정된 HM 계약 전체의 인증으로 일반화하지 않는다. 기존 점수·원본 판정을 덮어쓰지 않았다.
나머지 20개 조합(운영 화면 16개 + 정책 T04 4개)은 NOT VERIFIED 작업표로 별도 보존했다. 모든 T05/T06, GPT 두 effort의 모든 항목, Claude medium T02/high T03 및 T04가 포함된다. T04는 생성 성공률·평균 디자인 점수에서 제외한다. 기존 24개 세션 한도는 소진됐으며 이번 추가 외부 모델 세션은 0개다. 새 승인 전 실행하지 않는다.
## 미검증·한계
전체 WCAG/스크린리더 발화/실기기 touch/전체 Theme·상태의 대비, 전체 292 Story Runtime은 NOT VERIFIED. 현재 대비 PASS는 기본 Theme의 활성 빈 값 Trigger에 한정한다. Input 등 공통 placeholder Token은 변경하지 않았으며 전체 placeholder 대비를 해결했다고 주장하지 않는다.
요구사항 도구는 명시적 정책과 static literal Button/button/link 이름만 검사한다. wrapper/namespace/동적 액션/API 호출의 의미와 자유 형식 요구사항은 별도 검토가 필요하다. 보조 PASS는 원본 Guard의 CSS intent·Runtime 미검증을 제거하지 않는다. 실험 환경·모델 품질·전체 디자인 점수 개선을 추정하지 않는다.
원본 READ-ONLY 보고서와 이번 PNG/JSON/log/교차 모델 작업표는 Codex 작업의 `publisher-readonly-audit/minimal-lnb-fix`에 보존한다. 공식 Gitea 접근·수정 없음. GitHub 일반 push의 최종 commit/remote SHA는 제출 응답과 별도 로컬 결과에 기록한다.
Started At: 2026-10-10 19:37:37 KST. Estimated Duration: 60–90분. 완료 시각·실제 시간·Variance는 최종 제출 응답에 기록한다.