# Alt Text Generator

> 사용자가 이미지를 업로드하면서 대체 텍스트(alt text), alt 텍스트, 이미지 설명, 접근성 텍스트, 스크린리더용 설명 등을 요청할 때 한국어 alt 텍스트를 생성한다. "이 사진 alt 좀", "대체텍스트 만들어줘", "이미지 설명 뽑아줘", "접근성 텍스트", "스크린리더용 설명" 같은 표현은 물론, 이미지를 올리면서 "Threads에 올릴 건데 설명 좀", "블로그용 alt", "웹사이트에 쓸 건데" 같은 맥락이 보일 때도 반드시 이 스킬을 사용할 것. 사용자가 "alt"라는 단어를 명시적으로 안 써도 이미지 + "설명/캡션/접근성/스크린리더" 조합이면 트리거할 것. 출력은 항상 plain text와 `alt="..."` HTML 속성 두 가지 형태로 제공한다.

- **Type:** Skill
- **Install:** `agentstack add skill-tygb99-threads-writing-skills-alt-text-generator`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Tygb99](https://agentstack.voostack.com/s/tygb99)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Tygb99](https://github.com/Tygb99)
- **Source:** https://github.com/Tygb99/threads-writing-skills/tree/main/alt-text-generator

## Install

```sh
agentstack add skill-tygb99-threads-writing-skills-alt-text-generator
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Alt Text Generator (한국어)

업로드된 이미지를 보고 한국어 대체 텍스트를 만든다. 출력은 plain text 한 줄과 HTML `alt="..."` 속성 형태를 **항상 둘 다** 보여준다.

## 핵심 원칙

대체 텍스트는 단순한 캡션이 아니라 **이미지를 볼 수 없는 사람이 그 자리에 있는 정보를 동등하게 받을 수 있게 하는 도구**다. 그래서 다음 원칙을 따른다.

- **핵심 정보를 앞에 둔다.** 스크린리더 사용자가 첫 몇 단어로 이미지의 정체를 파악할 수 있어야 한다.
- **"사진", "이미지", "그림"이라는 단어로 시작하지 않는다.** 스크린리더가 이미 "이미지:"라고 안내한 뒤 alt를 읽기 때문에 중복이다. (단, 이미지의 *종류*가 의미 있을 때 — 예: "흑백사진", "수채화", "스크린샷" — 는 OK.)
- **간결하게.** 웹 접근성 기본은 약 125자 이내. 길어질 만한 정보는 본문에 넣을 것을 권장.
- **이미지 안의 텍스트는 그대로 옮긴다.** 포스터, 밈, 스크린샷, 인포그래픽이라면 이미지 속 글자는 alt에 반드시 포함.
- **추측하지 않는다.** 인물의 감정, 의도, 정체는 시각적으로 명백할 때만 기술한다. 모호하면 묘사만.
- **장식용 이미지는 빈 alt를 권한다.** 본문 내용을 그대로 반복하거나 순수 시각 장식이면 `alt=""`를 제안하고 그 이유를 한 줄 덧붙인다.

## 용도 판단

사용자가 용도를 명시했는지 먼저 본다. 안 했으면 이미지 종류로 추정한다. 모호하면 묻지 말고 가장 보편적인 **웹 접근성 기준**으로 만들되, 끝에 "SNS나 블로그용으로 톤을 바꿔드릴 수도 있어요"라고 한 줄 덧붙인다.

| 용도 | 톤 | 길이 | 특징 |
|---|---|---|---|
| 웹 접근성 (기본) | 객관적, 사실 위주 | ~125자 | 감정/해석 최소화. 핵심 사물·행동·맥락만. |
| Threads / SNS | 약간의 분위기/감성 허용 | ~150자 | 사진의 무드 한 단어 포함 가능. 단, 사실 묘사가 우선. |
| 블로그 / SEO | 자연스러운 키워드 | ~150자 | 글의 주제어가 명확하면 자연스럽게 녹임. 키워드 나열 금지. |

용도 추정 힌트:
- 스크린샷, 인포그래픽, 다이어그램, 차트 → 웹 접근성
- 풍경, 음식, 셀카, 일상 → SNS 가능성 높음 (사용자가 Threads/Instagram 언급했으면 확정)
- 제품 사진, 튜토리얼 캡처 → 블로그/SEO 가능성

## 출력 형식

Alt 텍스트와 HTML 둘 다 **코드 블록 안에 넣는다.** 사용자가 바로 복사할 수 있어야 한다. 코드 블록 밖에 텍스트가 있으면 복사할 때 섞여서 불편하다.

````
**Alt 텍스트:**
```
[한국어 한 줄]
```

**HTML:**
```html
alt="[같은 텍스트]"
```
````

용도가 모호해서 기본(웹 접근성)으로 갔거나, 사용자가 두 가지 맥락을 다 언급했다면 **두 가지 버전**을 나란히 보여줘도 좋다. 단, 옵션을 3개 이상 늘어놓지는 말 것 — 사용자가 고르기 피곤해진다.

장식용 이미지일 때는 이렇게:

````
**Alt 텍스트:** (빈 alt 권장)

```html
alt=""
```

이 이미지는 본문 내용과 중복되거나 장식용으로 보여서, 스크린리더가 건너뛰도록 빈 alt를 두는 게 표준 권장사항이에요.
````

## 예시

**예시 1 — 풍경 사진, 용도 미명시**

이미지: 해질녘 바다, 수평선에 작은 어선 한 척

출력:

> **Alt 텍스트:**
> ```
> 주황빛으로 물든 해질녘 바다, 수평선 위에 작은 어선 한 척이 떠 있다.
> ```
>
> **HTML:**
> ```html
> alt="주황빛으로 물든 해질녘 바다, 수평선 위에 작은 어선 한 척이 떠 있다."
> ```
>
> 웹 접근성 기준으로 만들었어요. SNS용으로 톤을 살리거나 블로그용으로 키워드를 넣은 버전도 만들어드릴 수 있어요.

**예시 2 — 텍스트가 들어간 포스터**

이미지: "2026 봄 사진전 / 4월 12일 시청 갤러리"라고 적힌 포스터

> **Alt 텍스트:**
> ```
> 2026 봄 사진전 포스터. "4월 12일, 시청 갤러리"
> ```
>
> **HTML:**
> ```html
> alt="2026 봄 사진전 포스터. &quot;4월 12일, 시청 갤러리&quot;"
> ```

포스터의 텍스트는 alt에 그대로 옮긴다. HTML 속성 안의 따옴표는 `&quot;` HTML 엔티티로 이스케이프하면 가장 안전하다 (백슬래시는 HTML에서 동작 안 함).

**예시 3 — 사용자가 "Threads에 올릴 거"라고 언급**

이미지: 카페에서 찍은 라떼 한 잔, 창밖으로 비

> **Alt 텍스트:**
> ```
> 나무 테이블 위 라떼 한 잔, 창밖으로 비가 내리는 카페 풍경.
> ```
>
> **HTML:**
> ```html
> alt="나무 테이블 위 라떼 한 잔, 창밖으로 비가 내리는 카페 풍경."
> ```

SNS 톤이지만 여전히 사실 묘사가 중심. "비 오는 날의 위로" 같은 해석은 본문 카피로 빼는 게 맞다.

**예시 4 — 차트/그래프**

이미지: 월별 매출 막대그래프

> **Alt 텍스트:**
> ```
> 1~6월 월별 매출 막대그래프. 3월에 최고점, 5월에 최저점을 기록.
> ```
>
> **HTML:**
> ```html
> alt="1~6월 월별 매출 막대그래프. 3월에 최고점, 5월에 최저점을 기록."
> ```
>
> 차트는 핵심 추세만 alt에 담고, 정확한 수치는 본문이나 표로 따로 제공하는 게 접근성 best practice예요.

## 하지 말 것

- "사진입니다", "이미지입니다"로 시작
- "아름다운", "멋진" 같은 주관적 형용사 남발
- 키워드 나열식 (`alt="강아지, 골든리트리버, 귀여운, 산책, 공원"`)
- 인물의 인종·나이·성별을 시각적으로 명백하지 않은데 단정
- 같은 정보를 두 번 반복 (본문 캡션과 alt가 똑같으면 alt는 빈 값이 더 낫다)
- 사용자가 한 장을 줬는데 옵션 5개 늘어놓기 — 한두 개로 충분

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Tygb99](https://github.com/Tygb99)
- **Source:** [Tygb99/threads-writing-skills](https://github.com/Tygb99/threads-writing-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-tygb99-threads-writing-skills-alt-text-generator
- Seller: https://agentstack.voostack.com/s/tygb99
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
