/rams - Design Engineer for Claude Code, Cursor, and OpenCode
Service

/rams - Design Engineer for Claude Code, Cursor, and OpenCode

2026.01.19
·Web·by 이호민
#Accessibility#Design#WCAG#Frontend#Code Review

핵심 포인트

  • 1이 문서는 웹 애플리케이션의 WCAG 2.1 접근성 및 시각적 디자인 문제를 식별하고 개선 사항을 제안하는 RAMS DESIGN REVIEW 보고서입니다.
  • 2보고서는 Critical, Serious, Moderate 수준으로 문제를 분류하며, `alt` text 누락, `aria-label` 부재, focus outline 제거, 낮은 대비율 등 구체적인 사례를 제시합니다.
  • 3각 문제에 대해 코드 라인 번호, 코드 스니펫, 수정 제안 및 관련 WCAG 참조를 제공하며, 최종적으로 발견된 문제점과 점수를 요약합니다.

이 문서는 웹 애플리케이션의 접근성 (WCAG 2.1) 및 시각적 디자인 품질을 평가하는 RAMS라는 도구의 검토 보고서입니다. RAMS는 코드 베이스에 대한 자동화된 디자인 및 접근성 감사 기능을 제공하며, 문제점을 심각도 (Critical, Serious, Moderate)별로 분류하여 보고합니다.

핵심 방법론 (Core Methodology):
RAMS는 지정된 파일 또는 전체 프로젝트에 대해 정적 코드 분석 및 잠재적인 런타임 검사를 수행하여 WCAG 2.1 가이드라인과 일반적인 UI/UX 디자인 원칙에 위배되는 요소를 식별합니다. 각 발견된 문제에 대해 보고서는 다음과 같은 상세 정보를 제공합니다.

  1. Line Number: 문제가 발견된 코드의 줄 번호.
  2. Code Snippet: 문제가 있는 코드 조각.
  3. Fix Suggestion: 제안되는 해결 방안.
  4. WCAG Reference: 해당 문제가 위배하는 WCAG(Web Content Accessibility Guidelines)의 특정 성공 기준 (Success Criterion) 번호.
또한, 검토된 전체 파일에 대한 종합 점수를 100점 만점으로 산출하여 품질을 수치화합니다. 사용자는 /rams 명령으로 전체 프로젝트를 검토하거나 /rams<filepath>/rams <file_path> 명령으로 특정 파일을 지정하여 검토할 수 있습니다.

문제 카테고리 및 상세 내용:
보고서는 Accessibility (WCAG 2.1)Visual Design이라는 두 가지 주요 영역에서 문제를 분류합니다.

1. Accessibility (WCAG 2.1):

  • Critical:
    • alt text가 없는 이미지 (Critical Images without alt text).
    • aria-labels가 누락된 아이콘 전용 버튼 (Icon-only buttons missing aria-labels).
    • 레이블이 없는 폼 입력란 (Form inputs without labels).
    • div onClick과 같은 비의미론적 클릭 핸들러 (Non-semantic click handlers).
    • href 속성이 없는 링크 (Links without href).
  • Serious:
    • 대체 요소 없이 제거된 포커스 아웃라인 (Focus outline removed without replacement).
    • 누락된 키보드 핸들러 (Missing keyboard handlers).
    • 색상으로만 정보를 제공하는 경우 (Color-only information).
    • 44x44px 미만의 터치 타겟 (Touch targets under 44×44px).
  • Moderate:
    • 건너뛴 제목 레벨 (Skipped heading levels).
    • 양의 tabIndex 값 사용 (Positive tabIndex values).
    • 필수 속성이 없는 role (Role without required attributes).

2. Visual Design:

  • Layout & Spacing:
    • 일관성 없는 스페이싱 값 (Inconsistent spacing values).
    • 오버플로우 및 정렬 문제 (Overflow and alignment issues).
    • Z-index 충돌 (Z-index conflicts).
  • Typography:
    • 혼합된 폰트 패밀리 및 굵기 (Mixed font families and weights).
    • 라인 높이 문제 (Line height issues).
    • 누락된 폰트 폴백 (Missing font fallbacks).
  • Color & Contrast:
    • 4.5:1 미만의 대비율 (Contrast ratio below 4.5:1).
    • 누락된 hover/focus states (Missing hover/focus states).
    • 다크 모드 불일치 (Dark mode inconsistencies).
  • Components:
    • 누락된 버튼 상태 (Missing button states).
    • 누락된 폼 필드 상태 (Missing form field states).
    • 일관성 없는 테두리 및 그림자 (Inconsistent borders and shadows).

app/page.tsx 파일 검토 결과:
현재 보고서는 app/page.tsx 파일에 대한 검토 결과를 요약합니다.

  • Critical (2 Issues):
    • Line 24: <button><CloseIcon/></button><button><CloseIcon /></button> 버튼에 접근 가능한 이름이 누락되었습니다.
      • 수정 제안: arialabel="Close"aria-label="Close"를 추가합니다.
      • WCAG 참조: 4.1.2 (Name, Role, Value).
  • Serious (1 Issue):
    • Line 48: className="outlinenone"className="outline-none"으로 포커스 아웃라인이 제거되었습니다.
      • 수정 제안: focus-visible:ring-2를 추가하여 포커스 가시성을 보장합니다.
      • WCAG 참조: 2.4.7 (Focus Visible).

요약 및 점수:
총 2개의 Critical, 1개의 Serious, 0개의 Moderate 문제가 발견되었으며, 종합 점수는 100점 만점에 68점입니다.