# 탭메뉴 (tab)

| 항목 | 경로 |
|------|------|
| 데모 | `tab.html` |
| CSS | `css/tab.css` |
| JS | `js/jquery` + `js/sectionDisplay.js` |
| 이미지 | 없음 |

---

## 마크업 (권장)

```html
<div class="tab-box" id="demoTabs">
  <div class="tab-list" role="tablist" aria-label="이용 안내">
    <button type="button" class="tab-btn" role="tab"
      id="tab-1" aria-controls="panel-1" aria-selected="true">탭1</button>
    <button type="button" class="tab-btn" role="tab"
      id="tab-2" aria-controls="panel-2" aria-selected="false" tabindex="-1">탭2</button>
  </div>
  <div class="tab-panels">
    <div class="tab-panel" role="tabpanel" id="panel-1" aria-labelledby="tab-1">내용1</div>
    <div class="tab-panel" role="tabpanel" id="panel-2" aria-labelledby="tab-2" hidden>내용2</div>
  </div>
</div>
```

- 탭: `button` + `role="tab"` (링크 `<a>`보다 버튼 권장)
- 목록: `role="tablist"` + `aria-label`
- 패널: `role="tabpanel"` + `aria-labelledby` + 비활성 시 `hidden`

---

## 초기화

```js
$('#demoTabs').sectionDisplay({
  act: 'click',   // 탭은 click 권장 (hover 비권장)
  start: 0,
  nav: $('#demoTabs .tab-list'),
  auto: false
});
```

`nav`를 생략하면 root 안의 `[role=tablist]` / `.tab-list`를 자동으로 찾습니다.

---

## 키보드

| 키 | 동작 |
|----|------|
| Tab | 선택된 탭 ↔ 패널 내용으로 이동 |
| ← → / ↑ ↓ | 이전·다음 탭 선택 |
| Home / End | 첫·마지막 탭 |
| Enter / Space | 현재 탭 활성화 |

---

## 스타일 변형

| 클래스 | 설명 |
|--------|------|
| `.tab-box` | 기본 (박스형 탭) · ≤640px 가로 스크롤 |
| `.tab-box.tab-line` | 하단 라인형 |
| `.tab-box.tab-scroll` | **탭 다수** — 한 줄 + 가로 스크롤 (PC·모바일) |

CSS 변수: `--tab-border`, `--tab-border-active`, `--tab-bg` 등 (`tab.css` 참고)

### 탭이 많을 때 (반응형)

- **권장:** `.tab-scroll` — 줄바꿈 대신 가로 스크롤. 키보드 ←→ 유지, 선택 탭은 `scrollIntoView`로 보이게 처리
- **비권장:** 탭을 `<select>`로 바꾸기 (패턴·스크린리더 동작이 달라짐)
- 기본 `.tab-box`도 좁은 화면(≤640px)에서는 가로 스크롤됩니다

---

## 접근성 체크

- [ ] hover만으로 전환하지 않음
- [ ] 숨긴 패널에 `hidden` 적용
- [ ] 선택 탭 `aria-selected="true"`, 나머지 `false`
- [ ] 선택 탭만 `tabindex="0"`
- [ ] `:focus-visible` 윤곽선 확인
- [ ] 탭 다수 시 가로 스크롤로 선택 탭이 가려지지 않는지 확인
