npm @a11ychk/mcpstdioAGPL-3.0updated 8d ago
WCAG 2.2 + KWCAG 2.2๋ฅผ ์ด์ค ๋งคํํ ํ๊ตญ์ด ์ฐ์ ์น ์ ๊ทผ์ฑ ์๋ ์ ๊ฒ ์์ง
What can you do with A11y Check?
A11y Check ยท ์๋ฆฌ์ฒต
WCAG 2.2 + KWCAG 2.2๋ฅผ ์ด์ค ๋งคํํ ํ๊ตญ์ด ์ฐ์ ์น ์ ๊ทผ์ฑ ์๋ ์ ๊ฒ ์์ง
URL ํ๋๋ก ๋ํ ํ์ด์ง๋ฅผ ์์งํด ์ ๊ทผ์ฑ์ ์ ๊ฒํ๊ณ , ํ๊ตญ์ด ๊ฐ์ ๊ฐ์ด๋์ AI ์ฝ๋ฉ ๋๊ตฌ์ฉ ์์ ์์ฒญ ๋ฌธ์๊น์ง ์์ฑํ๋ ์คํ์์ค ์๋น์ค์ ๋๋ค.
๐ ๋ผ์ด๋ธ ๋ฐ๋ชจ a11ychk.com ยท ํฌ๋กฌ ํ์ฅ ์ค์น ยท ์ ๊ฒ ์ฌ์ดํธ ๋ชฉ๋ก ยท ํ์ฉ ์งํ ยท English README
Open-source web accessibility auditing that dual-maps every finding to WCAG 2.2 and KWCAG 2.2 (Korea's national accessibility guidelines), with Korean-language remediation guides for all 33 KWCAG 2.2 checkpoints.
์ A11y Check์ธ๊ฐ
๋๋ถ๋ถ์ ์๋ ๊ฒ์ฌ ๋๊ตฌ๋ ์๋ฐ ๋ชฉ๋ก์ ์์ด๋ก ๋์ดํ๋ ๋ฐ ๊ทธ์นฉ๋๋ค. A11y Check๋ ์ง๋จ์์ ๋ฉ์ถ์ง ์๊ณ ๊ฐ์ ์์ ์ผ๋ก ์ด์ด์ง๋ ์ฐ์ถ๋ฌผ์ ๋ง๋ญ๋๋ค.
- ๐ฐ๐ท KWCAG 2.2 ํ๊ตญ์ด ๊ท์น ์นดํ๋ก๊ทธ โ
packages/core/src/catalog์ 111๊ฐ ๊ท์น์ WCAG 2.2 ์ฑ๊ณต๊ธฐ์ค๊ณผ KWCAG 2.2 ๊ฒ์ฌํญ๋ชฉ(33๊ฐ)์ ์ด์ค ๋งคํํ๊ณ , ๊ท์น๋ง๋ค ํ๊ตญ์ด ๊ฐ์ ๊ฐ์ด๋๋ฅผ ๋ด์์ต๋๋ค. ์ด ์นดํ๋ก๊ทธ ์์ฒด๊ฐ ์ ๊ทผ์ฑ ์ค๋ฌด์ยท๊ฐ๋ฐ์์๊ฒ ๋ ๋ฆฝ์ ์ผ๋ก ์ ์ฉํ ์์ฐ์ ๋๋ค. - ๐ง ์ง๋จ โ ์์ ์ฐ๊ฒฐ โ ์๋ฐ๋ง๋ค ํ๊ตญ์ด ๊ฐ์ ๋ฐฉ๋ฒ + AI ์ฝ๋ฉ ๋๊ตฌ(CursorยทCopilot ๋ฑ)์ ๊ทธ๋๋ก ํฌ์ ๊ฐ๋ฅํ **์์ ์์ฒญ ๋ฌธ์(MarkdownยทJSON)**๋ฅผ ์๋ ์์ฑํฉ๋๋ค.
- ๐งญ WCAG-EM 2.0 ๋ฐฉ๋ฒ๋ก ์ค์ โ ๋ํ ํ์ด์ง ํ๋ณธ ์ ์ โ ์๋ ์ ๊ฒ โ ์ ๊ฒ์ ํ์ โ ํตํฉ ์ค์์จ๊น์ง ๊ตฌ์กฐํ๋ ํ๊ฐ ์ ์ฐจ๋ฅผ ๋ฐ๋ฅด๊ณ , EARL ๋ฆฌํฌํธ๋ก ๋ด๋ณด๋ผ ์ ์์ต๋๋ค.
- ๐ ์ ์งํ ์๋ํ โ ์๋ ๊ฒ์ฌ๊ฐ ํ์ ํ ์ ์๋ ํญ๋ชฉ์ ๊ฐ์ถ์ง ์๊ณ ์๋ ๊ฒ์ฌ ๋ฐฉ๋ฒ๊ณผ ํจ๊ป ์๋ดํฉ๋๋ค. "100% ์๋ ํต๊ณผ"๋ฅผ ์ฃผ์ฅํ์ง ์์ต๋๋ค.
- ๐งฉ ํฌ๋กฌ ํ์ฅ โ ์ฌ์ด๋ ํจ๋์์ ํ์ฌ ํ์ด์ง๋ฅผ ์ค์๊ฐ ์ ๊ฒํ๊ณ , ์๋ฐ์ ํ์ด์ง ์์ ์ง์ ํ์ํฉ๋๋ค.
์๋ ๊ฒ์ฌ ๋๊ตฌ๋ ์ ๊ทผ์ฑ ๋ฌธ์ ์ ์ผ๋ถ๋ง ์ฐพ์ ์ ์์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ ๊ทธ ํ๊ณ๋ฅผ ๋ช ์ํ๊ณ , ์ฌ๋์ด ํ์ธํด์ผ ํ๋ ํญ๋ชฉ์ ๊ฒ์ฌ ๋ฐฉ๋ฒ๊ณผ ํจ๊ป ์ ๊ณตํ๋ ๊ฒ์ ์์น์ผ๋ก ํฉ๋๋ค.
๋ฌด์์ ํ๋
| ๊ธฐ๋ฅ | |
|---|---|
| ์ ๊ฒ | axe-core + ์์ฒด ๊ท์น(๋ฆฌํ๋ก์ฐยทํ ์คํธ ๊ฐ๊ฒฉยท์ด์ ยทํค๋ณด๋ยท๋ฏธ๋์ด ๋ฑ) + ์ฌ์ดํธ ์์ค ๊ฒ์ฌ(์ ๋ชฉ ์ ์ผ์ฑยท์ผ๊ด๋ ๋ด๋นยท์ฌ๋ฌ ๋ฐฉ๋ฒ) |
| ๋งคํ | ๋ชจ๋ ์๋ฐ์ WCAG 2.2 ์ฑ๊ณต๊ธฐ์ค ยท KWCAG 2.2 ๊ฒ์ฌํญ๋ชฉ์ ๋์ ๋์ |
| ๋ณด๊ณ ์ | ์๋/์๋/ํตํฉ ์ค์์จ, KWCAG 33ํญ๋ชฉ ๋งคํธ๋ฆญ์ค, ์ธ์ฆ ์ค๋น ์์ฝ, ์ ํ ๋น๊ต, PDFยทCSVยทEARL ๋ด๋ณด๋ด๊ธฐ |
| ๊ฐ์ | ๊ท์น๋ณ ํ๊ตญ์ด ๊ฐ์ด๋ + AI ์์ ์์ฒญ ๋ฌธ์(MD/JSON) |
| ํ์ฅ | ํฌ๋กฌ MV3 ์ฌ์ด๋ ํจ๋ โ ์ค์๊ฐ ์ ๊ฒยท๊ตฌ์กฐ ์๊ฐํยท์ฅ์ ์๋ฎฌ๋ ์ด์ ยท๋ช ๋๋๋น ์คํฌ์ด๋ยท์ ๋ฌธ๊ฐ ํ์ |
| ๋ง๋ณด๊ธฐ | ๋ก๊ทธ์ธ ์์ด URL 1๊ฐ๋ฅผ ์ฆ์ ๊ฒ์ฌ(1ํ์ด์ง) โ ๋๋ฉ์์ ๋ฐ๋ก ์ฒดํ, ๋ด ๋ฐฉ์งยทํ์ ์ ํ |
| ์ด์ | ๋๋ฉ์ธ ์์ ํ์ธ, ์ ๊ธฐ ์๋ ์ ๊ฒ, ํ๊ท ์๋ฆผ, ์๋ฒ ๋ ๋ฐฐ์ง, ๊ณต๊ฐ ์ ๊ฒ ๋ชฉ๋ก, ์น๊ตฌ ์ด๋ ๋ฑ๊ธ |
| CI | GitHub Action์ผ๋ก PRยท๋ฐฐํฌ ์ ์๋ ๊ฒ์ฌ ๊ฒ์ดํธ โ ์ฌ์ฉ๋ฒ |
| MCP | Claude CodeยทCursor ๋ฑ AI ์ฝ๋ฉ ๋๊ตฌ๊ฐ ๊ฒ์ฌยทํ๊ตญ์ด ๊ฐ์ด๋๋ฅผ ์ง์ ํธ์ถ โ ์ฌ์ฉ๋ฒ |
CI์์ ๋ฐ๋ก ์ฐ๊ธฐ
PR๋ง๋ค ์ง์ ํ์ด์ง๋ฅผ ๊ฒ์ฌํ๊ณ , ์ฌ๊ฐ ์ด์ ์๋ฐ์ด ์์ผ๋ฉด ์ก์ ์คํจ์ํต๋๋ค. ๊ฒฐ๊ณผ๋ ์ก ์์ฝ์ Markdown ํ๋ก ๋จ์ต๋๋ค.
- uses: IsaacEryn/a11ychk@v1
with:
urls: |
https://example.com/
https://example.com/login
fail-on: serious
์ ๋ ฅยท์ถ๋ ฅ๊ณผ ๋ฒ์ ๊ณ ์ ๋ฐฉ๋ฒ์ docs/github-action.md์ ์์ต๋๋ค.
AI ์ฝ๋ฉ ๋๊ตฌ์์ ๋ฐ๋ก ์ฐ๊ธฐ (ํ๋ฌ๊ทธ์ธ ยท MCP)
Claude Code์์๋ ํ๋ฌ๊ทธ์ธ ํ๋๋ก ๊ฐ์ฌ ์คํฌ 2์ข ๊ณผ ๊ฒ์ฌ ์์ง(MCP ์๋ฒ)์ด ํจ๊ป ์ค์น๋ฉ๋๋ค. ๊ฐ๋ฐ ์ค์ธ localhost ํ์ด์ง๋ฅผ ๊ทธ ์๋ฆฌ์์ ๊ฒ์ฌํ๊ณ , ์๋ฐ๋ง๋ค ํ๊ตญ์ด ๊ฐ์ ๊ฐ์ด๋๋ฅผ ๋ฐ์ ์์ ํ๊ณ , ์ฌ๊ฒ์ฌ๊น์ง ํ ๋ํ์์ ๋๋๋ค.
/plugin marketplace add IsaacEryn/a11ychk
/plugin install a11ychk@a11ychk
/a11ychk:a11y-auditโ ๊ฒ์ฌ โ ์์ โ ์ฌ๊ฒ์ฌ ๋ฃจํ (๋ฐฐํฌ ์ ์ ๊ฒ)/a11ychk:kwcag-auditโ KWCAG 2.2 33๊ฐ ๊ฒ์ฌํญ๋ชฉ ๊ด์ ์ ๊ฒ
MCP ์๋ฒ๋ง ์ฐ๋ ค๋ฉด (Cursor ๋ฑ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ ํฌํจ):
claude mcp add a11ychk -- npx -y @a11ychk/mcp
{
"mcpServers": {
"a11ychk": { "command": "npx", "args": ["-y", "@a11ychk/mcp"] }
}
}
๋๊ตฌ ๊ตฌ์ฑ๊ณผ ์ค์น ์๋ด๋ docs/mcp.md์ ์์ต๋๋ค.
๊ตฌ์กฐ (npm workspaces ๋ชจ๋ ธ๋ ํฌ)
packages/core @a11ychk/core โ ๊ฒ์ฌ ์์ง (์คํ์์ค์ ์ฌ์ฅ)
src/crawler/ ๋ํ ํ์ด์ง ์์ง (sitemap โ ๋ด๋ถ ๋งํฌ, robots.txt ์กด์ค)
src/scanner/ axe-core ์คํยท๊ฒฐ๊ณผ ์ ๊ทํ (Playwright Page ์ฃผ์
ํ) + 2-ํจ์ค ์์ ์ฑ ํํฐ
src/catalog/ 111๊ฐ ๊ท์น โ WCAG 2.2 ยท KWCAG 2.2 ์ด์ค ๋งคํ + ํ๊ตญ์ด ๊ฐ์ ๊ฐ์ด๋
src/manual/ ์๋ ๊ฒ์ฌ ํญ๋ชฉ ์ ์ (KWCAG 33๊ฐ ์ค ์๋ ํ์ ๋ถ๊ฐ ํญ๋ชฉ)
src/report/ ๋ณด๊ณ ์ ์ง๊ณ (์ค์์จ, KWCAG ๋งคํธ๋ฆญ์ค, ์ฌ์ดํธ ์์ค ๊ฒ์ฌ)
src/security/ SSRF ๊ฐ๋ (์ฌ์ค IPยทDNS ๋ฆฌ๋ฐ์ธ๋ฉยทredirect ์ฐจ๋จ), robots.txt ํ์
packages/mcp @a11ychk/mcp โ AI ์ฝ๋ฉ ๋๊ตฌ์ฉ MCP ์๋ฒ (npm)
apps/web Next.js 16 ์๋น์ค ์ฑ (a11ychk.com)
apps/extension ํฌ๋กฌ ํ์ฅ (MV3 Side Panel)
action GitHub Action ๋ฌ๋ (์ํฌ์คํ์ด์ค ๋ฐ ๋
๋ฆฝ ํจํค์ง โ ์๋น์ CI๊ฐ ์ง์ ์ค์น)
supabase DB ๋ง์ด๊ทธ๋ ์ด์
+ RLS ์ ์ฑ
docs ์ํคํ
์ฒ ยท ๋ก๋๋งต ยท ์ด์ ์ค์
์์ํ๊ธฐ
npm install
cp apps/web/.env.example apps/web/.env.local # Supabase ํค ๋ฑ ์
๋ ฅ
npx playwright install chromium # ๋ก์ปฌ ์ค์บ์ฉ ๋ธ๋ผ์ฐ์
npm run dev # http://localhost:3000
ํฌ๋กฌ ํ์ฅ์ **ํฌ๋กฌ ์น์คํ ์ด**์์
๋ฐ๋ก ์ค์นํ ์ ์์ต๋๋ค. ์์ค์์ ๋น๋ํ๋ ค๋ฉด npm run build -w @a11ychk/extension โ
apps/extension/dist๋ฅผ chrome://extensions์์ ์์ถ ํด์ ๋ก๋. Supabase ์ค์ ์ docs/SETUP.md ์ฐธ๊ณ .
๊ธฐ์ ์คํ
Next.js 16 (App Router) ยท TypeScript ยท Tailwind CSS v4 ยท next-intl(ko/en) ยท Supabase (Auth + PostgreSQL/RLS) ยท playwright-core + @sparticuz/chromium ยท axe-core 4.12 ยท Zod ยท Vercel
ํ ์คํธ
npm run test # core ์ ๋ ํ
์คํธ + ์น ํ
์คํธ
npm run test:e2e -w @a11ychk/core # ์ค์ ํฌ๋ก๋ฏธ์์ผ๋ก fixture ์ค์บ E2E
npm run typecheck && npm run lint
๋ณด์ ์์น
- ๋ชจ๋ ์ํฌ๋ฆฟ์ ํ๊ฒฝ๋ณ์๋ก๋ง ๊ด๋ฆฌ โ ์ ์ฅ์์๋
.env.example๋ง ์กด์ฌ - ์ฌ์ฉ์ ์ ๋ ฅ URL์ SSRF ๊ฐ๋(์คํด ๊ฒ์ฆ โ DNS resolve โ ์ฌ์ค ๋์ญ ์ฐจ๋จ โ ๋ธ๋ผ์ฐ์ DNS ํ โ redirect ์ฌ๊ฒ์ฆ)๋ฅผ ํต๊ณผ
- Supabase RLS๋ก ์ฌ์ฉ์ ๋ฐ์ดํฐ ๊ฒฉ๋ฆฌ, service role์ ์๋ฒ์์ ๊ถํ ๊ฒ์ฆ ํ์๋ง ์ฌ์ฉ
- ๊ฒ์ฌ ํ์ ์ ํ(์ผ/์ฃผ/์) + robots.txt ์กด์ค, CSP nonceยทํ์ค ๋ณด์ ํค๋ ์ ์ฉ
๊ธฐ์ฌ
๊ท์น ์นดํ๋ก๊ทธ(packages/core/src/catalog)์ ํ๊ตญ์ด ๊ฐ์ ๊ฐ์ด๋ ๋ณด๊ฐยท๋งคํ
๊ต์ ยท์ ๊ท์น ์ ์ PR์ ๊ฐ์ฅ ํ์ํฉ๋๋ค. ์ฝ๋๊ฐ ์๋์ด๋ ๊ธฐ์ฌ์
๋๋ค โ CONTRIBUTING.md ์ฐธ๊ณ .
๋์์ด ๋์๋ค๋ฉด โญ๏ธ Star๋ก ํ๋ก์ ํธ๋ฅผ ์์ํด ์ฃผ์ธ์. ํ๊ตญ์ด ์ ๊ทผ์ฑ ๋๊ตฌ ์ํ๊ณ๋ฅผ ํจ๊ป ํค์๋๋ค.
๋ผ์ด์ ์ค
๋ถํ ๋ผ์ด์ ์ฑ โ ์์ธํ ๋ด์ฉ์ LICENSING.md ์ฐธ๊ณ .
- ๊ฒ์ฌ ์์งยท๊ท์น ์นดํ๋ก๊ทธ (
packages/core) ยท MCP ์๋ฒ (packages/mcp) ยท ํฌ๋กฌ ํ์ฅ (apps/extension) ยท GitHub Action (action/) โ Apache-2.0: ์์ ๋กญ๊ฒ ์ฌ์ฉยท์์ ยท์ฌ๋ฐฐํฌยทํตํฉํ ์ ์์ต๋๋ค. - ์๋น์ค ์ฑ (
apps/web) โ AGPL-3.0-only: ์ด๋ ค ์์ง๋ง, ์ด ์ฑ์ ์์ ํด ๋คํธ์ํฌ ์๋น์ค๋ก ์ด์ํ๋ฉด ์์ ์์ค๋ฅผ ๊ณต๊ฐํด์ผ ํฉ๋๋ค.
Install
Add A11y Check to your client. Pick the one you use.
claude mcp add mcp -- npx -y @a11ychk/mcpcodex mcp add mcp -- npx -y @a11ychk/mcpamp mcp add mcp -- npx -y @a11ychk/mcp{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@a11ychk/mcp"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@a11ychk/mcp"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"mcp","command":"npx","args":["-y","@a11ychk/mcp"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@a11ychk/mcp"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@a11ychk/mcp"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"mcp": {
"command": "npx",
"args": [
"-y",
"@a11ychk/mcp"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"mcp": {
"type": "local",
"command": "npx",
"args": [
"-y",
"@a11ychk/mcp"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"mcp": {
"command": {
"path": "npx",
"args": [
"-y",
"@a11ychk/mcp"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y @a11ychk/mcpRun `goose configure`, choose **Add Extension โ Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance25/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 1 days ago
- Has a release history
- Repository is not archived
- Licensed AGPL-3.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.1.4Latest | Aug 31, 2026 |
| 0.1.2 | Aug 3, 2026 |
| 0.1.1 | Aug 2, 2026 |