[Designer] #545 해외 식당 예약 버튼 접근성/명확성 다듬기
기능(isKoreaRestaurant 게이트)은 QA 통과 상태 그대로 유지, 표현/접점만 보완. - 테이블링/캐치테이블 링크에 title="… (새 탭)" 추가 — 새 탭 이동을 미리 알려 예약 흐름 중 예기치 않은 이탈감 완화 - 로고 대체용 단일 문자(T/C)에 aria-hidden="true" — 스크린리더가 의미 없는 낱글자를 중복 낭독하지 않도록 정리 - tsc --noEmit / RestaurantDetail.test.tsx 5/5 통과 (회귀 없음) Refs #545
This commit is contained in:
@@ -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) &&` 게이트 적용됨 (지도 링크 분기와 동일 판정 기준 재사용)
|
||||
|
||||
@@ -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 통과.
|
||||
|
||||
@@ -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"
|
||||
>
|
||||
<span>T</span>
|
||||
<span aria-hidden="true">T</span>
|
||||
<span>테이블링에서 줄서기</span>
|
||||
</a>
|
||||
)}
|
||||
@@ -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"
|
||||
>
|
||||
<span>C</span>
|
||||
<span aria-hidden="true">C</span>
|
||||
<span>캐치테이블에서 예약하기</span>
|
||||
</a>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user