From e0e9ab6936ab6f826ef24da2d9fceb6b0033a24a Mon Sep 17 00:00:00 2001 From: joungmin Date: Mon, 27 Jul 2026 13:54:03 +0900 Subject: [PATCH] =?UTF-8?q?[Designer]=20#545=20=ED=95=B4=EC=99=B8=20?= =?UTF-8?q?=EC=8B=9D=EB=8B=B9=20=EC=98=88=EC=95=BD=20=EB=B2=84=ED=8A=BC=20?= =?UTF-8?q?=EC=A0=91=EA=B7=BC=EC=84=B1/=EB=AA=85=ED=99=95=EC=84=B1=20?= =?UTF-8?q?=EB=8B=A4=EB=93=AC=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기능(isKoreaRestaurant 게이트)은 QA 통과 상태 그대로 유지, 표현/접점만 보완. - 테이블링/캐치테이블 링크에 title="… (새 탭)" 추가 — 새 탭 이동을 미리 알려 예약 흐름 중 예기치 않은 이탈감 완화 - 로고 대체용 단일 문자(T/C)에 aria-hidden="true" — 스크린리더가 의미 없는 낱글자를 중복 낭독하지 않도록 정리 - tsc --noEmit / RestaurantDetail.test.tsx 5/5 통과 (회귀 없음) Refs #545 --- CHANGELOG.md | 7 +++++++ .../545-hide-foreign-reservation-buttons/README.md | 10 ++++++++-- frontend/src/components/RestaurantDetail.tsx | 6 ++++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3245d0..4b7737c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,13 @@ ## 2026-07-27 +### 🎨 [Designer] #545 해외 식당 예약 버튼 접근성/명확성 다듬기 +- 기능 동작 변경 없음(버튼 노출 게이트는 QA 통과된 `isKoreaRestaurant()` 그대로 유지) — 표현/접점만 보완 +- 테이블링/캐치테이블 링크에 `title` 속성 추가("… (새 탭)") — 새 탭으로 이동함을 사전에 알려 예약 도중 예기치 않은 이탈감을 줄임 +- 로고 대체용 단일 문자(`T`, `C`)에 `aria-hidden="true"` 적용 — 스크린리더가 의미 없는 낱글자("T", "C")를 중복 낭독하지 않고 실제 라벨("테이블링에서 줄서기" 등)만 읽도록 정리 +- `tsc --noEmit` 통과, `RestaurantDetail.test.tsx` 5/5 통과(회귀 없음) +- 05-Designer → 06-Reviewer 로 전진 + ### ✅ [QA] #545 해외 식당 예약 버튼 숨김 — 검증 통과 - 설계서(`docs/design/545-hide-foreign-reservation-buttons/README.md`) 인수조건 대비 구현(`RestaurantDetail.tsx`) 일치 확인 - 테이블링/캐치테이블 버튼 2곳 모두 `isKoreaRestaurant(restaurant) &&` 게이트 적용됨 (지도 링크 분기와 동일 판정 기준 재사용) diff --git a/docs/design/545-hide-foreign-reservation-buttons/README.md b/docs/design/545-hide-foreign-reservation-buttons/README.md index a08a39e..6a791dc 100644 --- a/docs/design/545-hide-foreign-reservation-buttons/README.md +++ b/docs/design/545-hide-foreign-reservation-buttons/README.md @@ -1,7 +1,7 @@ # 설계서: 해외 식당 예약 버튼(테이블링/캐치테이블) 숨김 (#545) -> **상태**: Approved · QA 통과 -> **작성**: [AI] Architect (소급 작성 — Developer 구현 후 게이트 보완) · **최종수정**: 2026-07-27 ([AI] QA) +> **상태**: Approved · QA 통과 · Designer 접근성 다듬기 완료 +> **작성**: [AI] Architect (소급 작성 — Developer 구현 후 게이트 보완) · **최종수정**: 2026-07-27 ([AI] Designer) > **추적성** — Redmine: #545 · 관련 ADR: 없음 > · 구현 파일: `frontend/src/components/RestaurantDetail.tsx` · 테스트: `frontend/__tests__/RestaurantDetail.test.tsx` (5케이스, 육안 QA를 자동화 회귀 테스트로 대체) @@ -78,3 +78,9 @@ isKoreaRestaurant(r) ──false──▶ 테이블링/캐치테이블 버튼 ## 12. 미해결 질문 (Open Questions) - 백엔드 예약 URL 수집/검색 단계에서 해외 식당을 원천 제외할지 여부는 별도 이슈로 분리할 가치가 있음 (설명에 "후속(옵션)"으로 명시됨). + +## 13. Designer 다듬기 (표현/접점, 기능 변경 없음) +- 판정 로직(`isKoreaRestaurant`)과 노출 조건은 QA 통과 상태 그대로 — 변경하지 않음. +- 테이블링/캐치테이블 앵커에 `title` 속성 추가(`"… (새 탭)"`) — 새 탭 이동을 사전에 알려 예약 흐름 중 예기치 않은 이탈감 완화. +- 로고 대체용 단일 문자 배지(`T`/`C`)에 `aria-hidden="true"` 적용 — 스크린리더가 의미 없는 낱글자를 중복 낭독하지 않고 실제 라벨만 읽도록 정리. +- 회귀 확인: `tsc --noEmit` 통과, `frontend/__tests__/RestaurantDetail.test.tsx` 5/5 통과. diff --git a/frontend/src/components/RestaurantDetail.tsx b/frontend/src/components/RestaurantDetail.tsx index 52aa4cd..4215c8d 100644 --- a/frontend/src/components/RestaurantDetail.tsx +++ b/frontend/src/components/RestaurantDetail.tsx @@ -186,9 +186,10 @@ export default function RestaurantDetail({ href={restaurant.tabling_url} target="_blank" rel="noopener noreferrer" + title="테이블링에서 줄서기 (새 탭)" className="flex items-center justify-center gap-2 w-full px-4 py-2.5 bg-rose-500 hover:bg-rose-600 text-white rounded-lg text-sm font-semibold transition-colors" > - T + 테이블링에서 줄서기 )} @@ -198,9 +199,10 @@ export default function RestaurantDetail({ href={restaurant.catchtable_url} target="_blank" rel="noopener noreferrer" + title="캐치테이블에서 예약하기 (새 탭)" className="flex items-center justify-center gap-2 w-full px-4 py-2.5 bg-violet-500 hover:bg-violet-600 text-white rounded-lg text-sm font-semibold transition-colors" > - C + 캐치테이블에서 예약하기 )}