real-prototypes-skill 0.1.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/real-prototypes-skill/examples/CLAUDE.md.example +36 -16
- package/CLAUDE.md.example +93 -0
- package/bin/cli.js +12 -1
- package/package.json +2 -1
- package/.claude/skills/real-prototypes-skill/INSTALL.md +0 -259
- package/.claude/skills/real-prototypes-skill/PUBLISH.md +0 -310
- package/.claude/skills/real-prototypes-skill/references/accessibility-fixes.md +0 -298
- package/.claude/skills/real-prototypes-skill/references/accessibility-report.json +0 -253
- package/.claude/skills/real-prototypes-skill/scripts/CAPTURE-ENHANCEMENTS.md +0 -344
- package/.claude/skills/real-prototypes-skill/scripts/IMPLEMENTATION-SUMMARY.md +0 -517
- package/.claude/skills/real-prototypes-skill/scripts/QUICK-START.md +0 -229
- package/.claude/skills/real-prototypes-skill/scripts/QUICKSTART-layout-analysis.md +0 -148
- package/.claude/skills/real-prototypes-skill/scripts/README-analyze-layout.md +0 -407
|
@@ -1,310 +0,0 @@
|
|
|
1
|
-
# Publishing to GitHub - Checklist
|
|
2
|
-
|
|
3
|
-
Follow this checklist to publish the Platform Prototype Skill on GitHub.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 📋 Pre-Publish Checklist
|
|
8
|
-
|
|
9
|
-
### 1. Update Repository URLs
|
|
10
|
-
|
|
11
|
-
Replace `kaidhar` with your actual GitHub username in these files:
|
|
12
|
-
|
|
13
|
-
- [ ] `README.md` - Line 38, 51, 377, 430-432
|
|
14
|
-
- [ ] `INSTALL.md` - Line 15, 54, 61, 112, 152
|
|
15
|
-
- [ ] `QUICKSTART.md` - Line 7, 136
|
|
16
|
-
|
|
17
|
-
**Find and replace:**
|
|
18
|
-
```bash
|
|
19
|
-
cd .claude/skills/real-prototypes-skill
|
|
20
|
-
grep -r "kaidhar" . --include="*.md"
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Replace with your actual username:
|
|
24
|
-
```bash
|
|
25
|
-
# Example:
|
|
26
|
-
sed -i 's/kaidhar/yourgithub/g' README.md
|
|
27
|
-
sed -i 's/kaidhar/yourgithub/g' INSTALL.md
|
|
28
|
-
sed -i 's/kaidhar/yourgithub/g' QUICKSTART.md
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### 2. Create GitHub Repository
|
|
32
|
-
|
|
33
|
-
1. Go to https://github.com/new
|
|
34
|
-
2. Repository name: `real-prototypes-skill`
|
|
35
|
-
3. Description: `Claude Code skill for capturing platform designs and generating pixel-perfect Next.js prototypes`
|
|
36
|
-
4. ✅ Public
|
|
37
|
-
5. ❌ Don't initialize with README (we have one)
|
|
38
|
-
6. Click "Create repository"
|
|
39
|
-
|
|
40
|
-
### 3. Initialize Git (if not already)
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
cd .claude/skills/real-prototypes-skill
|
|
44
|
-
git init
|
|
45
|
-
git add .
|
|
46
|
-
git commit -m "Initial commit: Platform Prototype Skill v1.0"
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### 4. Connect to GitHub
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
# Add remote (replace USERNAME)
|
|
53
|
-
git remote add origin https://github.com/USERNAME/real-prototypes-skill.git
|
|
54
|
-
|
|
55
|
-
# Push to GitHub
|
|
56
|
-
git branch -M main
|
|
57
|
-
git push -u origin main
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### 5. Add Topics/Tags
|
|
61
|
-
|
|
62
|
-
On GitHub repository page:
|
|
63
|
-
- Click ⚙️ (Settings gear next to About)
|
|
64
|
-
- Add topics:
|
|
65
|
-
- `claude-code`
|
|
66
|
-
- `claude-skill`
|
|
67
|
-
- `nextjs`
|
|
68
|
-
- `prototype`
|
|
69
|
-
- `design-tokens`
|
|
70
|
-
- `tailwindcss`
|
|
71
|
-
- `web-automation`
|
|
72
|
-
|
|
73
|
-
### 6. Enable GitHub Pages (Optional)
|
|
74
|
-
|
|
75
|
-
For documentation hosting:
|
|
76
|
-
1. Go to Settings → Pages
|
|
77
|
-
2. Source: Deploy from branch
|
|
78
|
-
3. Branch: main, folder: / (root)
|
|
79
|
-
4. Save
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
## 📝 Repository Settings
|
|
84
|
-
|
|
85
|
-
### About Section
|
|
86
|
-
|
|
87
|
-
**Description:**
|
|
88
|
-
```
|
|
89
|
-
Claude Code skill for capturing web platform designs and generating pixel-perfect Next.js prototypes
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**Website:**
|
|
93
|
-
```
|
|
94
|
-
https://claude.ai/code
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
**Topics:**
|
|
98
|
-
```
|
|
99
|
-
claude-code, claude-skill, nextjs, prototype, design-tokens, tailwindcss, web-automation, react, typescript
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
### README Badges
|
|
103
|
-
|
|
104
|
-
Ensure these badges work:
|
|
105
|
-
- [ ] License badge links to LICENSE file
|
|
106
|
-
- [ ] Claude Code badge links to claude.ai/code
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## 📦 Release Checklist
|
|
111
|
-
|
|
112
|
-
### Create First Release (v1.0.0)
|
|
113
|
-
|
|
114
|
-
1. Go to Releases → Create new release
|
|
115
|
-
2. Tag version: `v1.0.0`
|
|
116
|
-
3. Release title: `v1.0.0 - Initial Release`
|
|
117
|
-
4. Description:
|
|
118
|
-
|
|
119
|
-
```markdown
|
|
120
|
-
# Platform Prototype Skill v1.0.0
|
|
121
|
-
|
|
122
|
-
First stable release of the Platform Prototype Skill for Claude Code.
|
|
123
|
-
|
|
124
|
-
## ✨ Features
|
|
125
|
-
|
|
126
|
-
- 🎨 Capture design tokens from any web platform
|
|
127
|
-
- 📸 Automatic screenshot and HTML extraction
|
|
128
|
-
- 🚀 Generate Next.js + TypeScript prototypes
|
|
129
|
-
- 💅 Tailwind CSS with exact color matching
|
|
130
|
-
- ♿ WCAG 2.1 AA accessibility compliance
|
|
131
|
-
- 🛠️ CLI tool for validation
|
|
132
|
-
|
|
133
|
-
## 📚 Example
|
|
134
|
-
|
|
135
|
-
- Amazon India Shopping Chatbot (fully functional)
|
|
136
|
-
|
|
137
|
-
## 🚀 Installation
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
cd ~/.claude/skills
|
|
141
|
-
git clone https://github.com/USERNAME/real-prototypes-skill.git
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
See [INSTALL.md](./INSTALL.md) for details.
|
|
145
|
-
|
|
146
|
-
## 📖 Documentation
|
|
147
|
-
|
|
148
|
-
- [Quick Start](./QUICKSTART.md)
|
|
149
|
-
- [Full Documentation](./README.md)
|
|
150
|
-
- [Skill Guide](./SKILL.md)
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
3. Click "Publish release"
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
## 🔗 Post-Publish Tasks
|
|
158
|
-
|
|
159
|
-
### 1. Test Installation
|
|
160
|
-
|
|
161
|
-
Test the installation process:
|
|
162
|
-
```bash
|
|
163
|
-
# Remove local copy
|
|
164
|
-
rm -rf ~/.claude/skills/real-prototypes-skill
|
|
165
|
-
|
|
166
|
-
# Install from GitHub
|
|
167
|
-
cd ~/.claude/skills
|
|
168
|
-
git clone https://github.com/USERNAME/real-prototypes-skill.git
|
|
169
|
-
|
|
170
|
-
# Test it works
|
|
171
|
-
claude-code
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
### 2. Update Links
|
|
175
|
-
|
|
176
|
-
Create a `links.md` file with all relevant links:
|
|
177
|
-
- [ ] GitHub repository
|
|
178
|
-
- [ ] Installation guide
|
|
179
|
-
- [ ] Quick start
|
|
180
|
-
- [ ] Example projects
|
|
181
|
-
- [ ] Issue tracker
|
|
182
|
-
|
|
183
|
-
### 3. Social Media (Optional)
|
|
184
|
-
|
|
185
|
-
Share on:
|
|
186
|
-
- [ ] Twitter/X with #ClaudeCode hashtag
|
|
187
|
-
- [ ] Reddit r/ClaudeAI
|
|
188
|
-
- [ ] Dev.to article
|
|
189
|
-
- [ ] LinkedIn post
|
|
190
|
-
|
|
191
|
-
Sample post:
|
|
192
|
-
```
|
|
193
|
-
🚀 Just published Platform Prototype Skill for Claude Code!
|
|
194
|
-
|
|
195
|
-
Capture any platform's design and generate pixel-perfect prototypes:
|
|
196
|
-
✅ Automatic design token extraction
|
|
197
|
-
✅ Next.js + TypeScript generation
|
|
198
|
-
✅ Exact color matching
|
|
199
|
-
✅ Fully functional components
|
|
200
|
-
|
|
201
|
-
Example: Built an Amazon shopping chatbot in minutes!
|
|
202
|
-
|
|
203
|
-
#ClaudeCode #WebDev #Prototyping
|
|
204
|
-
|
|
205
|
-
https://github.com/USERNAME/real-prototypes-skill
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
---
|
|
209
|
-
|
|
210
|
-
## 🎯 Marketing README Features
|
|
211
|
-
|
|
212
|
-
Ensure README has:
|
|
213
|
-
- [ ] Clear "What it does" section
|
|
214
|
-
- [ ] Quick start (5 min setup)
|
|
215
|
-
- [ ] Visual examples (screenshots)
|
|
216
|
-
- [ ] Installation options (global/local)
|
|
217
|
-
- [ ] Troubleshooting section
|
|
218
|
-
- [ ] Contributing guide link
|
|
219
|
-
- [ ] License badge
|
|
220
|
-
- [ ] Star button callout
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
## 📊 Analytics Setup (Optional)
|
|
225
|
-
|
|
226
|
-
### GitHub Insights
|
|
227
|
-
|
|
228
|
-
Monitor:
|
|
229
|
-
- Stars ⭐
|
|
230
|
-
- Forks 🍴
|
|
231
|
-
- Issues 🐛
|
|
232
|
-
- Pull requests 🔀
|
|
233
|
-
|
|
234
|
-
### Useful Commands
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
# Check repository stats
|
|
238
|
-
gh repo view USERNAME/real-prototypes-skill
|
|
239
|
-
|
|
240
|
-
# List recent stars
|
|
241
|
-
gh api repos/USERNAME/real-prototypes-skill/stargazers
|
|
242
|
-
|
|
243
|
-
# List issues
|
|
244
|
-
gh issue list
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## 🔄 Maintenance
|
|
250
|
-
|
|
251
|
-
### Regular Updates
|
|
252
|
-
|
|
253
|
-
Create a maintenance schedule:
|
|
254
|
-
- [ ] Weekly: Check issues
|
|
255
|
-
- [ ] Monthly: Update dependencies
|
|
256
|
-
- [ ] Quarterly: Major feature releases
|
|
257
|
-
|
|
258
|
-
### Version Numbering
|
|
259
|
-
|
|
260
|
-
Follow SemVer:
|
|
261
|
-
- **Major** (x.0.0): Breaking changes
|
|
262
|
-
- **Minor** (0.x.0): New features
|
|
263
|
-
- **Patch** (0.0.x): Bug fixes
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
## ✅ Final Checklist
|
|
268
|
-
|
|
269
|
-
Before announcing publicly:
|
|
270
|
-
|
|
271
|
-
- [ ] README.md is complete and clear
|
|
272
|
-
- [ ] INSTALL.md tested on clean machine
|
|
273
|
-
- [ ] QUICKSTART.md verified working
|
|
274
|
-
- [ ] All kaidhar replaced
|
|
275
|
-
- [ ] LICENSE file present
|
|
276
|
-
- [ ] Example project works
|
|
277
|
-
- [ ] No sensitive data (passwords, keys)
|
|
278
|
-
- [ ] Git history cleaned
|
|
279
|
-
- [ ] Release notes written
|
|
280
|
-
- [ ] GitHub topics added
|
|
281
|
-
- [ ] Repository description set
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## 🎉 You're Ready to Publish!
|
|
286
|
-
|
|
287
|
-
Once all checkboxes are complete, your skill is ready for the community!
|
|
288
|
-
|
|
289
|
-
**Repository URL:**
|
|
290
|
-
```
|
|
291
|
-
https://github.com/USERNAME/real-prototypes-skill
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
**Installation Command:**
|
|
295
|
-
```bash
|
|
296
|
-
cd ~/.claude/skills
|
|
297
|
-
git clone https://github.com/USERNAME/real-prototypes-skill.git
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
---
|
|
301
|
-
|
|
302
|
-
## 📞 Support
|
|
303
|
-
|
|
304
|
-
After publishing:
|
|
305
|
-
- Monitor GitHub issues
|
|
306
|
-
- Respond to questions
|
|
307
|
-
- Accept pull requests
|
|
308
|
-
- Update documentation
|
|
309
|
-
|
|
310
|
-
Good luck! 🚀
|
|
@@ -1,298 +0,0 @@
|
|
|
1
|
-
# Accessibility Fixes Documentation
|
|
2
|
-
|
|
3
|
-
**Generated:** 2026-01-26T18:27:12.020Z
|
|
4
|
-
**WCAG Level:** AA (2.1)
|
|
5
|
-
|
|
6
|
-
## Summary
|
|
7
|
-
|
|
8
|
-
- **Total Files Analyzed:** 5
|
|
9
|
-
- **Total Issues Found:** 24
|
|
10
|
-
- **Total Fixes Applied:** 5
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## 1. dashboard-widget.tsx.template
|
|
15
|
-
|
|
16
|
-
**File:** `.claude/skills/real-prototypes-skill/templates/dashboard-widget.tsx.template`
|
|
17
|
-
|
|
18
|
-
### Issues Found (4)
|
|
19
|
-
|
|
20
|
-
#### 1. MISSING ARIA LABEL
|
|
21
|
-
|
|
22
|
-
- **Severity:** error
|
|
23
|
-
- **Message:** button at line 58 missing aria-label or associated label
|
|
24
|
-
- **Element:** button
|
|
25
|
-
- **Line:** 58
|
|
26
|
-
|
|
27
|
-
#### 2. MISSING ARIA LABEL
|
|
28
|
-
|
|
29
|
-
- **Severity:** error
|
|
30
|
-
- **Message:** button at line 65 missing aria-label or associated label
|
|
31
|
-
- **Element:** button
|
|
32
|
-
- **Line:** 65
|
|
33
|
-
|
|
34
|
-
#### 3. MISSING ARIA LABEL
|
|
35
|
-
|
|
36
|
-
- **Severity:** error
|
|
37
|
-
- **Message:** button at line 83 missing aria-label or associated label
|
|
38
|
-
- **Element:** button
|
|
39
|
-
- **Line:** 83
|
|
40
|
-
|
|
41
|
-
#### 4. MISSING FOCUS INDICATOR
|
|
42
|
-
|
|
43
|
-
- **Severity:** error
|
|
44
|
-
- **Message:** No focus styles detected. Add focus:ring or focus-visible styles.
|
|
45
|
-
|
|
46
|
-
### Fixes Applied (1)
|
|
47
|
-
|
|
48
|
-
#### 1. ADD FOCUS STYLES
|
|
49
|
-
|
|
50
|
-
- **Description:** Add focus indicators to interactive elements
|
|
51
|
-
- **Implementation:** Add focus:ring-2 focus:ring-platform-primary focus:ring-offset-2 to buttons/links
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 2. data-table.tsx.template
|
|
56
|
-
|
|
57
|
-
**File:** `.claude/skills/real-prototypes-skill/templates/data-table.tsx.template`
|
|
58
|
-
|
|
59
|
-
### Issues Found (2)
|
|
60
|
-
|
|
61
|
-
#### 1. MISSING ARIA LABEL
|
|
62
|
-
|
|
63
|
-
- **Severity:** error
|
|
64
|
-
- **Message:** button at line 99 missing aria-label or associated label
|
|
65
|
-
- **Element:** button
|
|
66
|
-
- **Line:** 99
|
|
67
|
-
|
|
68
|
-
#### 2. MISSING FOCUS INDICATOR
|
|
69
|
-
|
|
70
|
-
- **Severity:** error
|
|
71
|
-
- **Message:** No focus styles detected. Add focus:ring or focus-visible styles.
|
|
72
|
-
|
|
73
|
-
### Fixes Applied (1)
|
|
74
|
-
|
|
75
|
-
#### 1. ADD FOCUS STYLES
|
|
76
|
-
|
|
77
|
-
- **Description:** Add focus indicators to interactive elements
|
|
78
|
-
- **Implementation:** Add focus:ring-2 focus:ring-platform-primary focus:ring-offset-2 to buttons/links
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## 3. form-section.tsx.template
|
|
83
|
-
|
|
84
|
-
**File:** `.claude/skills/real-prototypes-skill/templates/form-section.tsx.template`
|
|
85
|
-
|
|
86
|
-
### Issues Found (6)
|
|
87
|
-
|
|
88
|
-
#### 1. COLOR CONTRAST
|
|
89
|
-
|
|
90
|
-
- **Severity:** warning
|
|
91
|
-
- **Message:** Found 1 color utilities. Manual contrast check recommended.
|
|
92
|
-
- **Colors:** text-red-500
|
|
93
|
-
|
|
94
|
-
#### 2. MISSING ARIA LABEL
|
|
95
|
-
|
|
96
|
-
- **Severity:** error
|
|
97
|
-
- **Message:** button at line 220 missing aria-label or associated label
|
|
98
|
-
- **Element:** button
|
|
99
|
-
- **Line:** 220
|
|
100
|
-
|
|
101
|
-
#### 3. MISSING ARIA LABEL
|
|
102
|
-
|
|
103
|
-
- **Severity:** error
|
|
104
|
-
- **Message:** button at line 230 missing aria-label or associated label
|
|
105
|
-
- **Element:** button
|
|
106
|
-
- **Line:** 230
|
|
107
|
-
|
|
108
|
-
#### 4. MISSING ARIA LABEL
|
|
109
|
-
|
|
110
|
-
- **Severity:** error
|
|
111
|
-
- **Message:** input at line 92 missing aria-label or associated label
|
|
112
|
-
- **Element:** input
|
|
113
|
-
- **Line:** 92
|
|
114
|
-
|
|
115
|
-
#### 5. MISSING ARIA LABEL
|
|
116
|
-
|
|
117
|
-
- **Severity:** error
|
|
118
|
-
- **Message:** input at line 117 missing aria-label or associated label
|
|
119
|
-
- **Element:** input
|
|
120
|
-
- **Line:** 117
|
|
121
|
-
|
|
122
|
-
#### 6. KEYBOARD NAVIGATION
|
|
123
|
-
|
|
124
|
-
- **Severity:** warning
|
|
125
|
-
- **Message:** Click handlers without keyboard handlers. Ensure keyboard accessibility.
|
|
126
|
-
|
|
127
|
-
### Fixes Applied (1)
|
|
128
|
-
|
|
129
|
-
#### 1. ADD KEYBOARD HANDLERS
|
|
130
|
-
|
|
131
|
-
- **Description:** Add keyboard event handlers
|
|
132
|
-
- **Implementation:** Add onKeyDown={(e) => e.key === "Enter" && handleClick()} to clickable elements
|
|
133
|
-
|
|
134
|
-
---
|
|
135
|
-
|
|
136
|
-
## 4. modal-dialog.tsx.template
|
|
137
|
-
|
|
138
|
-
**File:** `.claude/skills/real-prototypes-skill/templates/modal-dialog.tsx.template`
|
|
139
|
-
|
|
140
|
-
### Issues Found (7)
|
|
141
|
-
|
|
142
|
-
#### 1. COLOR CONTRAST
|
|
143
|
-
|
|
144
|
-
- **Severity:** warning
|
|
145
|
-
- **Message:** Found 2 color utilities. Manual contrast check recommended.
|
|
146
|
-
- **Colors:** bg-red-600, bg-red-700
|
|
147
|
-
|
|
148
|
-
#### 2. MISSING ARIA LABEL
|
|
149
|
-
|
|
150
|
-
- **Severity:** error
|
|
151
|
-
- **Message:** button at line 99 missing aria-label or associated label
|
|
152
|
-
- **Element:** button
|
|
153
|
-
- **Line:** 99
|
|
154
|
-
|
|
155
|
-
#### 3. MISSING ARIA LABEL
|
|
156
|
-
|
|
157
|
-
- **Severity:** error
|
|
158
|
-
- **Message:** button at line 107 missing aria-label or associated label
|
|
159
|
-
- **Element:** button
|
|
160
|
-
- **Line:** 107
|
|
161
|
-
|
|
162
|
-
#### 4. MISSING ARIA LABEL
|
|
163
|
-
|
|
164
|
-
- **Severity:** error
|
|
165
|
-
- **Message:** button at line 181 missing aria-label or associated label
|
|
166
|
-
- **Element:** button
|
|
167
|
-
- **Line:** 181
|
|
168
|
-
|
|
169
|
-
#### 5. MISSING ARIA LABEL
|
|
170
|
-
|
|
171
|
-
- **Severity:** error
|
|
172
|
-
- **Message:** button at line 190 missing aria-label or associated label
|
|
173
|
-
- **Element:** button
|
|
174
|
-
- **Line:** 190
|
|
175
|
-
|
|
176
|
-
#### 6. MISSING ARIA LABEL
|
|
177
|
-
|
|
178
|
-
- **Severity:** error
|
|
179
|
-
- **Message:** button at line 211 missing aria-label or associated label
|
|
180
|
-
- **Element:** button
|
|
181
|
-
- **Line:** 211
|
|
182
|
-
|
|
183
|
-
#### 7. KEYBOARD NAVIGATION
|
|
184
|
-
|
|
185
|
-
- **Severity:** warning
|
|
186
|
-
- **Message:** Click handlers without keyboard handlers. Ensure keyboard accessibility.
|
|
187
|
-
|
|
188
|
-
### Fixes Applied (1)
|
|
189
|
-
|
|
190
|
-
#### 1. ADD KEYBOARD HANDLERS
|
|
191
|
-
|
|
192
|
-
- **Description:** Add keyboard event handlers
|
|
193
|
-
- **Implementation:** Add onKeyDown={(e) => e.key === "Enter" && handleClick()} to clickable elements
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
## 5. nav-item.tsx.template
|
|
198
|
-
|
|
199
|
-
**File:** `.claude/skills/real-prototypes-skill/templates/nav-item.tsx.template`
|
|
200
|
-
|
|
201
|
-
### Issues Found (5)
|
|
202
|
-
|
|
203
|
-
#### 1. MISSING ARIA LABEL
|
|
204
|
-
|
|
205
|
-
- **Severity:** error
|
|
206
|
-
- **Message:** button at line 87 missing aria-label or associated label
|
|
207
|
-
- **Element:** button
|
|
208
|
-
- **Line:** 87
|
|
209
|
-
|
|
210
|
-
#### 2. MISSING ARIA LABEL
|
|
211
|
-
|
|
212
|
-
- **Severity:** error
|
|
213
|
-
- **Message:** button at line 114 missing aria-label or associated label
|
|
214
|
-
- **Element:** button
|
|
215
|
-
- **Line:** 114
|
|
216
|
-
|
|
217
|
-
#### 3. MISSING ARIA LABEL
|
|
218
|
-
|
|
219
|
-
- **Severity:** error
|
|
220
|
-
- **Message:** button at line 152 missing aria-label or associated label
|
|
221
|
-
- **Element:** button
|
|
222
|
-
- **Line:** 152
|
|
223
|
-
|
|
224
|
-
#### 4. MISSING ARIA LABEL
|
|
225
|
-
|
|
226
|
-
- **Severity:** error
|
|
227
|
-
- **Message:** button at line 184 missing aria-label or associated label
|
|
228
|
-
- **Element:** button
|
|
229
|
-
- **Line:** 184
|
|
230
|
-
|
|
231
|
-
#### 5. KEYBOARD NAVIGATION
|
|
232
|
-
|
|
233
|
-
- **Severity:** warning
|
|
234
|
-
- **Message:** Click handlers without keyboard handlers. Ensure keyboard accessibility.
|
|
235
|
-
|
|
236
|
-
### Fixes Applied (1)
|
|
237
|
-
|
|
238
|
-
#### 1. ADD KEYBOARD HANDLERS
|
|
239
|
-
|
|
240
|
-
- **Description:** Add keyboard event handlers
|
|
241
|
-
- **Implementation:** Add onKeyDown={(e) => e.key === "Enter" && handleClick()} to clickable elements
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## Accessibility Best Practices
|
|
246
|
-
|
|
247
|
-
### Color Contrast
|
|
248
|
-
- Normal text (< 18pt): Minimum 4.5:1 contrast ratio
|
|
249
|
-
- Large text (≥ 18pt or ≥ 14pt bold): Minimum 3.0:1 contrast ratio
|
|
250
|
-
- Adjust lightness by maximum 5% to preserve design
|
|
251
|
-
|
|
252
|
-
### Keyboard Navigation
|
|
253
|
-
- All interactive elements must be keyboard accessible
|
|
254
|
-
- Add `onKeyDown` handlers for `onClick` elements
|
|
255
|
-
- Use `tabIndex={0}` for custom interactive elements
|
|
256
|
-
- Ensure logical tab order
|
|
257
|
-
|
|
258
|
-
### ARIA Labels
|
|
259
|
-
- All buttons must have accessible names (text, aria-label, or aria-labelledby)
|
|
260
|
-
- All links must have descriptive text
|
|
261
|
-
- Form inputs must have associated labels
|
|
262
|
-
- Use `aria-describedby` for error messages
|
|
263
|
-
|
|
264
|
-
### Focus Indicators
|
|
265
|
-
- All focusable elements must have visible focus states
|
|
266
|
-
- Use `focus:ring-2 focus:ring-platform-primary` pattern
|
|
267
|
-
- Ensure focus indicators have minimum 3:1 contrast
|
|
268
|
-
|
|
269
|
-
### Semantic HTML
|
|
270
|
-
- Use proper HTML elements (`<button>` not `<div onClick>`)
|
|
271
|
-
- Maintain heading hierarchy (h1 → h2 → h3, no skipping)
|
|
272
|
-
- Use landmarks (`<nav>`, `<main>`, `<footer>`)
|
|
273
|
-
- Use lists for list content
|
|
274
|
-
|
|
275
|
-
### Form Accessibility
|
|
276
|
-
- Associate labels with inputs using `htmlFor` or `aria-label`
|
|
277
|
-
- Include `aria-invalid` for validation errors
|
|
278
|
-
- Use `aria-describedby` to link error messages
|
|
279
|
-
- Mark required fields with `required` or `aria-required`
|
|
280
|
-
|
|
281
|
-
### Images
|
|
282
|
-
- All images must have `alt` attributes
|
|
283
|
-
- Use `alt=""` for decorative images
|
|
284
|
-
- Provide descriptive alt text for meaningful images
|
|
285
|
-
|
|
286
|
-
---
|
|
287
|
-
|
|
288
|
-
## Testing Recommendations
|
|
289
|
-
|
|
290
|
-
1. **Automated Testing:** Run ESLint with accessibility plugin
|
|
291
|
-
2. **Keyboard Testing:** Navigate site using only Tab, Enter, Escape
|
|
292
|
-
3. **Screen Reader Testing:** Test with NVDA (Windows) or VoiceOver (Mac)
|
|
293
|
-
4. **Contrast Testing:** Use browser DevTools Accessibility panel
|
|
294
|
-
5. **WAVE Tool:** Run WAVE browser extension for visual feedback
|
|
295
|
-
|
|
296
|
-
---
|
|
297
|
-
|
|
298
|
-
**Note:** All fixes preserve the original design with minimal visual changes (<1% difference).
|