@smartsoft001/pro-claude-plugins 0.2.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-plugin/marketplace.json +26 -0
- package/README.md +56 -0
- package/package.json +14 -0
- package/plugins/flow/.claude-plugin/README.md +91 -0
- package/plugins/flow/.claude-plugin/merge-permissions.js +115 -0
- package/plugins/flow/.claude-plugin/plugin.json +5 -0
- package/plugins/flow/.claude-plugin/settings.template.json +86 -0
- package/plugins/flow/agents/angular-component-scaffolder.md +176 -0
- package/plugins/flow/agents/angular-directive-builder.md +154 -0
- package/plugins/flow/agents/angular-guard-builder.md +244 -0
- package/plugins/flow/agents/angular-jest-test-writer.md +475 -0
- package/plugins/flow/agents/angular-pipe-builder.md +170 -0
- package/plugins/flow/agents/angular-resolver-builder.md +287 -0
- package/plugins/flow/agents/angular-service-builder.md +162 -0
- package/plugins/flow/agents/angular-signal-state-builder.md +340 -0
- package/plugins/flow/agents/angular-test-diagnostician.md +279 -0
- package/plugins/flow/agents/angular-testbed-configurator.md +315 -0
- package/plugins/flow/agents/arch-scaffolder.md +278 -0
- package/plugins/flow/agents/e2e-data-testid-injector.md +195 -0
- package/plugins/flow/agents/e2e-project-scaffolder.md +194 -0
- package/plugins/flow/agents/e2e-test-writer.md +357 -0
- package/plugins/flow/agents/shared-agent-evolver.md +294 -0
- package/plugins/flow/agents/shared-build-verifier.md +160 -0
- package/plugins/flow/agents/shared-config-updater.md +310 -0
- package/plugins/flow/agents/shared-coverage-enforcer.md +184 -0
- package/plugins/flow/agents/shared-error-handler.md +217 -0
- package/plugins/flow/agents/shared-file-creator.md +344 -0
- package/plugins/flow/agents/shared-impl-orchestrator.md +312 -0
- package/plugins/flow/agents/shared-impl-reporter.md +368 -0
- package/plugins/flow/agents/shared-impl-teammate.md +201 -0
- package/plugins/flow/agents/shared-linear-subtask-iterator.md +337 -0
- package/plugins/flow/agents/shared-logic-implementer.md +244 -0
- package/plugins/flow/agents/shared-maia-api.md +26 -0
- package/plugins/flow/agents/shared-parallelization-analyzer.md +343 -0
- package/plugins/flow/agents/shared-performance-validator.md +168 -0
- package/plugins/flow/agents/shared-plan-perspective.md +271 -0
- package/plugins/flow/agents/shared-project-standardizer.md +205 -0
- package/plugins/flow/agents/shared-report-synthesizer.md +188 -0
- package/plugins/flow/agents/shared-review-teammate.md +189 -0
- package/plugins/flow/agents/shared-security-scanner.md +186 -0
- package/plugins/flow/agents/shared-style-enforcer.md +230 -0
- package/plugins/flow/agents/shared-subtask-dependency-analyzer.md +189 -0
- package/plugins/flow/agents/shared-tdd-developer.md +350 -0
- package/plugins/flow/agents/shared-team-coordinator.md +192 -0
- package/plugins/flow/agents/shared-test-fixer.md +186 -0
- package/plugins/flow/agents/shared-test-runner.md +191 -0
- package/plugins/flow/agents/shared-ui-classifier.md +263 -0
- package/plugins/flow/agents/shared-verification-orchestrator.md +194 -0
- package/plugins/flow/agents/shared-verification-runner.md +140 -0
- package/plugins/flow/agents/ui-a11y-validator.md +305 -0
- package/plugins/flow/agents/ui-screenshot-reporter.md +329 -0
- package/plugins/flow/agents/ui-web-designer.md +214 -0
- package/plugins/flow/scripts/compute-session-tokens.sh +39 -0
- package/plugins/flow/skills/a11y-audit/SKILL.md +214 -0
- package/plugins/flow/skills/angular-patterns/SKILL.md +191 -0
- package/plugins/flow/skills/browser-capture/SKILL.md +238 -0
- package/plugins/flow/skills/commit/SKILL.md +259 -0
- package/plugins/flow/skills/debug-helper/SKILL.md +375 -0
- package/plugins/flow/skills/impl/SKILL.md +992 -0
- package/plugins/flow/skills/karpathy-guidelines/SKILL.md +72 -0
- package/plugins/flow/skills/linear-suggestion/SKILL.md +132 -0
- package/plugins/flow/skills/maia-files-delete/SKILL.md +59 -0
- package/plugins/flow/skills/maia-files-upload/SKILL.md +57 -0
- package/plugins/flow/skills/nx-conventions/SKILL.md +326 -0
- package/plugins/flow/skills/plan/SKILL.md +1033 -0
- package/plugins/flow/skills/push/SKILL.md +759 -0
- package/plugins/flow/skills/review/SKILL.md +443 -0
- package/plugins/flow/skills/test-e2e/SKILL.md +164 -0
- package/plugins/flow/skills/test-unit/SKILL.md +456 -0
- package/plugins/flow-external/.claude-plugin/README.md +146 -0
- package/plugins/flow-external/.claude-plugin/merge-permissions.js +94 -0
- package/plugins/flow-external/.claude-plugin/plugin.json +5 -0
- package/plugins/flow-external/.claude-plugin/settings.template.json +78 -0
- package/plugins/flow-external/agents/angular-component-scaffolder.md +271 -0
- package/plugins/flow-external/agents/angular-directive-builder.md +134 -0
- package/plugins/flow-external/agents/angular-guard-builder.md +73 -0
- package/plugins/flow-external/agents/angular-pipe-builder.md +90 -0
- package/plugins/flow-external/agents/angular-resolver-builder.md +79 -0
- package/plugins/flow-external/agents/angular-service-builder.md +168 -0
- package/plugins/flow-external/agents/angular-state-builder.md +263 -0
- package/plugins/flow-external/agents/shared-build-verifier.md +67 -0
- package/plugins/flow-external/agents/shared-impl-orchestrator.md +90 -0
- package/plugins/flow-external/agents/shared-impl-reporter.md +135 -0
- package/plugins/flow-external/agents/shared-linear-subtask-iterator.md +70 -0
- package/plugins/flow-external/agents/shared-ui-classifier.md +38 -0
- package/plugins/flow-external/agents/ui-web-designer.md +203 -0
- package/plugins/flow-external/scripts/compute-session-tokens.sh +39 -0
- package/plugins/flow-external/skills/a11y-audit/SKILL.md +97 -0
- package/plugins/flow-external/skills/angular-cli-conventions/SKILL.md +268 -0
- package/plugins/flow-external/skills/angular-patterns/SKILL.md +182 -0
- package/plugins/flow-external/skills/browser-capture/SKILL.md +74 -0
- package/plugins/flow-external/skills/commit/SKILL.md +114 -0
- package/plugins/flow-external/skills/debug-helper/SKILL.md +135 -0
- package/plugins/flow-external/skills/impl/SKILL.md +218 -0
- package/plugins/flow-external/skills/karpathy-guidelines/SKILL.md +72 -0
- package/plugins/flow-external/skills/linear-suggestion/SKILL.md +62 -0
- package/plugins/flow-external/skills/maia-files-delete/SKILL.md +34 -0
- package/plugins/flow-external/skills/maia-files-upload/SKILL.md +41 -0
- package/plugins/flow-external/skills/plan/SKILL.md +334 -0
- package/plugins/flow-external/skills/push/SKILL.md +232 -0
- package/plugins/flow-legacy/.claude-plugin/README.md +143 -0
- package/plugins/flow-legacy/.claude-plugin/merge-permissions.js +94 -0
- package/plugins/flow-legacy/.claude-plugin/plugin.json +5 -0
- package/plugins/flow-legacy/.claude-plugin/settings.template.json +79 -0
- package/plugins/flow-legacy/agents/angular-component-scaffolder.md +327 -0
- package/plugins/flow-legacy/agents/angular-directive-builder.md +253 -0
- package/plugins/flow-legacy/agents/angular-guard-builder.md +326 -0
- package/plugins/flow-legacy/agents/angular-pipe-builder.md +238 -0
- package/plugins/flow-legacy/agents/angular-resolver-builder.md +339 -0
- package/plugins/flow-legacy/agents/angular-service-builder.md +271 -0
- package/plugins/flow-legacy/agents/angular-state-builder.md +480 -0
- package/plugins/flow-legacy/agents/shared-impl-orchestrator.md +174 -0
- package/plugins/flow-legacy/agents/shared-impl-reporter.md +232 -0
- package/plugins/flow-legacy/agents/shared-linear-subtask-iterator.md +198 -0
- package/plugins/flow-legacy/agents/shared-tdd-developer.md +307 -0
- package/plugins/flow-legacy/agents/shared-test-runner.md +133 -0
- package/plugins/flow-legacy/agents/shared-ui-classifier.md +145 -0
- package/plugins/flow-legacy/scripts/compute-session-tokens.sh +39 -0
- package/plugins/flow-legacy/skills/a11y-audit/SKILL.md +214 -0
- package/plugins/flow-legacy/skills/angular-patterns/SKILL.md +346 -0
- package/plugins/flow-legacy/skills/browser-capture/SKILL.md +238 -0
- package/plugins/flow-legacy/skills/commit/SKILL.md +215 -0
- package/plugins/flow-legacy/skills/debug-helper/SKILL.md +395 -0
- package/plugins/flow-legacy/skills/impl/SKILL.md +710 -0
- package/plugins/flow-legacy/skills/karpathy-guidelines/SKILL.md +72 -0
- package/plugins/flow-legacy/skills/linear-suggestion/SKILL.md +132 -0
- package/plugins/flow-legacy/skills/maia-files-delete/SKILL.md +59 -0
- package/plugins/flow-legacy/skills/maia-files-upload/SKILL.md +57 -0
- package/plugins/flow-legacy/skills/nx-conventions/SKILL.md +368 -0
- package/plugins/flow-legacy/skills/plan/SKILL.md +742 -0
- package/plugins/flow-legacy/skills/push/SKILL.md +645 -0
- package/plugins/flow-legacy/skills/test-unit/SKILL.md +500 -0
- package/plugins/smart-pro/.claude-plugin/README.md +115 -0
- package/plugins/smart-pro/.claude-plugin/merge-permissions.js +129 -0
- package/plugins/smart-pro/.claude-plugin/plugin.json +5 -0
- package/plugins/smart-pro/.claude-plugin/settings.template.json +94 -0
- package/plugins/smart-pro/agents/angular-components/AGENT.md +214 -0
- package/plugins/smart-pro/hooks/CONFIG.md +198 -0
- package/plugins/smart-pro/hooks/README.md +139 -0
- package/plugins/smart-pro/hooks/audit_logger.py +107 -0
- package/plugins/smart-pro/hooks/auto_format.sh +11 -0
- package/plugins/smart-pro/hooks/hooks.json +79 -0
- package/plugins/smart-pro/hooks/safety_validator.py +129 -0
- package/plugins/smart-pro/hooks/sensitive_file_blocker.py +58 -0
- package/plugins/smart-pro/hooks/skill_validator.py +220 -0
- package/plugins/smart-pro/skills/angular-components-action-panel/SKILL.md +159 -0
- package/plugins/smart-pro/skills/angular-components-avatar/SKILL.md +142 -0
- package/plugins/smart-pro/skills/angular-components-badge/SKILL.md +110 -0
- package/plugins/smart-pro/skills/angular-components-breadcrumbs/SKILL.md +91 -0
- package/plugins/smart-pro/skills/angular-components-button/SKILL.md +146 -0
- package/plugins/smart-pro/skills/angular-components-button-group/SKILL.md +121 -0
- package/plugins/smart-pro/skills/angular-components-calendar/SKILL.md +78 -0
- package/plugins/smart-pro/skills/angular-components-card/SKILL.md +110 -0
- package/plugins/smart-pro/skills/angular-components-card-heading/SKILL.md +105 -0
- package/plugins/smart-pro/skills/angular-components-command-palette/SKILL.md +168 -0
- package/plugins/smart-pro/skills/angular-components-container/SKILL.md +93 -0
- package/plugins/smart-pro/skills/angular-components-description-list/SKILL.md +102 -0
- package/plugins/smart-pro/skills/angular-components-details/SKILL.md +70 -0
- package/plugins/smart-pro/skills/angular-components-divider/SKILL.md +110 -0
- package/plugins/smart-pro/skills/angular-components-drawer/SKILL.md +136 -0
- package/plugins/smart-pro/skills/angular-components-dropdown/SKILL.md +131 -0
- package/plugins/smart-pro/skills/angular-components-empty-state/SKILL.md +103 -0
- package/plugins/smart-pro/skills/angular-components-feed/SKILL.md +110 -0
- package/plugins/smart-pro/skills/angular-components-form/SKILL.md +77 -0
- package/plugins/smart-pro/skills/angular-components-grid-list/SKILL.md +91 -0
- package/plugins/smart-pro/skills/angular-components-input/SKILL.md +118 -0
- package/plugins/smart-pro/skills/angular-components-list/SKILL.md +75 -0
- package/plugins/smart-pro/skills/angular-components-list-container/SKILL.md +106 -0
- package/plugins/smart-pro/skills/angular-components-media-object/SKILL.md +133 -0
- package/plugins/smart-pro/skills/angular-components-modal/SKILL.md +159 -0
- package/plugins/smart-pro/skills/angular-components-multi-column-layout/SKILL.md +84 -0
- package/plugins/smart-pro/skills/angular-components-navbar/SKILL.md +93 -0
- package/plugins/smart-pro/skills/angular-components-notification/SKILL.md +147 -0
- package/plugins/smart-pro/skills/angular-components-page/SKILL.md +162 -0
- package/plugins/smart-pro/skills/angular-components-page-heading/SKILL.md +96 -0
- package/plugins/smart-pro/skills/angular-components-paging/SKILL.md +86 -0
- package/plugins/smart-pro/skills/angular-components-progress-bars/SKILL.md +94 -0
- package/plugins/smart-pro/skills/angular-components-searchbar/SKILL.md +113 -0
- package/plugins/smart-pro/skills/angular-components-section-heading/SKILL.md +156 -0
- package/plugins/smart-pro/skills/angular-components-select-menu/SKILL.md +101 -0
- package/plugins/smart-pro/skills/angular-components-sidebar-layout/SKILL.md +121 -0
- package/plugins/smart-pro/skills/angular-components-sidebar-navigation/SKILL.md +80 -0
- package/plugins/smart-pro/skills/angular-components-sign-in-form/SKILL.md +91 -0
- package/plugins/smart-pro/skills/angular-components-stacked-layout/SKILL.md +114 -0
- package/plugins/smart-pro/skills/angular-components-stacked-list/SKILL.md +93 -0
- package/plugins/smart-pro/skills/angular-components-stats/SKILL.md +87 -0
- package/plugins/smart-pro/skills/angular-components-table/SKILL.md +98 -0
- package/plugins/smart-pro/skills/angular-components-tabs/SKILL.md +99 -0
- package/plugins/smart-pro/skills/angular-components-textarea/SKILL.md +111 -0
- package/plugins/smart-pro/skills/angular-components-toggle/SKILL.md +109 -0
- package/plugins/smart-pro/skills/angular-components-vertical-navigation/SKILL.md +139 -0
- package/plugins/smart-pro/skills/audit-log/SKILL.md +82 -0
- package/plugins/smart-pro/skills/format-code/SKILL.md +46 -0
- package/plugins/smart-pro/skills/project-conventions/SKILL.md +90 -0
- package/plugins/smart-pro/skills/safety-check/SKILL.md +0 -0
- package/src/index.d.ts +6 -0
- package/src/index.js +7 -0
- package/src/index.js.map +1 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shared-verification-runner
|
|
3
|
+
description: Run verification checks for specific stages. Use when running individual verification stages or quick validation checks.
|
|
4
|
+
tools: Bash, Read, Glob
|
|
5
|
+
model: haiku
|
|
6
|
+
color: '#2563EB'
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
You are an expert at running verification checks efficiently.
|
|
10
|
+
|
|
11
|
+
## Primary Responsibility
|
|
12
|
+
|
|
13
|
+
Execute specific verification stages quickly and report results clearly.
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
- Running individual verification stages
|
|
18
|
+
- Quick validation before commit
|
|
19
|
+
- Targeted verification after specific changes
|
|
20
|
+
|
|
21
|
+
## Verification Stages
|
|
22
|
+
|
|
23
|
+
### Style Verification
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Lint all projects
|
|
27
|
+
nx run-many -t lint
|
|
28
|
+
|
|
29
|
+
# Lint specific project
|
|
30
|
+
nx lint web
|
|
31
|
+
|
|
32
|
+
# Lint with auto-fix
|
|
33
|
+
nx lint web --fix
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Type Checking
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Type check via build (development)
|
|
40
|
+
nx build web --configuration=development
|
|
41
|
+
|
|
42
|
+
# Type check only
|
|
43
|
+
npx tsc --noEmit -p apps/web/tsconfig.json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Unit Test Verification
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Run all unit tests
|
|
50
|
+
nx test web
|
|
51
|
+
|
|
52
|
+
# Run affected tests
|
|
53
|
+
nx affected:test --base=main
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Build Verification
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Production build
|
|
60
|
+
nx build web --configuration=production
|
|
61
|
+
|
|
62
|
+
# Development build (faster)
|
|
63
|
+
nx build web
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Security Verification
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# NPM audit
|
|
70
|
+
npm audit --audit-level=moderate
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Quick Verification Commands
|
|
74
|
+
|
|
75
|
+
### Pre-commit (Fast)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Lint + affected tests
|
|
79
|
+
nx lint web && nx affected:test --base=main
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Pre-push (Thorough)
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# Lint + all tests + build
|
|
86
|
+
nx lint web && nx test web && nx build web
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Full Pipeline
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Everything
|
|
93
|
+
nx lint web && \
|
|
94
|
+
npm audit --audit-level=moderate && \
|
|
95
|
+
nx test web --coverage && \
|
|
96
|
+
nx build web --configuration=production
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Verification Results
|
|
100
|
+
|
|
101
|
+
### Pass Indicators
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
✅ Lint: No errors
|
|
105
|
+
✅ Tests: 87 passed
|
|
106
|
+
✅ Build: Successful
|
|
107
|
+
✅ Coverage: 85%
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Fail Indicators
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
❌ Lint: 3 errors in 2 files
|
|
114
|
+
❌ Tests: 2 failed, 85 passed
|
|
115
|
+
❌ Build: TS2322 error in file.ts
|
|
116
|
+
❌ Coverage: 72% (below 80%)
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Output Format
|
|
120
|
+
|
|
121
|
+
```markdown
|
|
122
|
+
## Verification Results
|
|
123
|
+
|
|
124
|
+
### Checks Run
|
|
125
|
+
|
|
126
|
+
| Check | Status | Details |
|
|
127
|
+
| -------- | ------ | --------- |
|
|
128
|
+
| Lint | ✅ | No errors |
|
|
129
|
+
| Tests | ✅ | 87 passed |
|
|
130
|
+
| Coverage | ✅ | 85% |
|
|
131
|
+
| Build | ✅ | Success |
|
|
132
|
+
|
|
133
|
+
### Duration
|
|
134
|
+
|
|
135
|
+
Total time: 45 seconds
|
|
136
|
+
|
|
137
|
+
### Next Steps
|
|
138
|
+
|
|
139
|
+
All checks passed. Ready to commit/push.
|
|
140
|
+
```
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ui-a11y-validator
|
|
3
|
+
description: Validate website accessibility (WCAG compliance). Use when checking accessibility issues, auditing pages, or fixing a11y problems.
|
|
4
|
+
tools: Read, Grep, Glob, Bash
|
|
5
|
+
skills: a11y-audit
|
|
6
|
+
model: sonnet
|
|
7
|
+
color: '#7C3AED'
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
You are an accessibility (a11y) expert specializing in WCAG 2.1 compliance validation.
|
|
11
|
+
|
|
12
|
+
## Capabilities
|
|
13
|
+
|
|
14
|
+
### 1. Static Code Analysis
|
|
15
|
+
|
|
16
|
+
Analyze HTML templates for accessibility issues:
|
|
17
|
+
|
|
18
|
+
- Missing alt attributes on images
|
|
19
|
+
- Missing labels on form inputs
|
|
20
|
+
- Incorrect heading hierarchy
|
|
21
|
+
- Missing ARIA attributes
|
|
22
|
+
- Color contrast issues in Tailwind classes
|
|
23
|
+
|
|
24
|
+
### 2. Runtime Accessibility Audit
|
|
25
|
+
|
|
26
|
+
Use the `a11y-audit` skill to run accessibility checks:
|
|
27
|
+
|
|
28
|
+
- Automatically ensures dev server is running
|
|
29
|
+
- Navigate to pages
|
|
30
|
+
- Capture accessibility snapshots
|
|
31
|
+
- Run axe-core audit and return violations
|
|
32
|
+
|
|
33
|
+
### 3. Manual Checklist Verification
|
|
34
|
+
|
|
35
|
+
Review against WCAG 2.1 guidelines.
|
|
36
|
+
|
|
37
|
+
## WCAG 2.1 Checklist
|
|
38
|
+
|
|
39
|
+
### Perceivable
|
|
40
|
+
|
|
41
|
+
#### 1.1 Text Alternatives
|
|
42
|
+
|
|
43
|
+
- [ ] All images have `alt` attributes
|
|
44
|
+
- [ ] Decorative images have `alt=""`
|
|
45
|
+
- [ ] Complex images have detailed descriptions
|
|
46
|
+
- [ ] Icons have `aria-label` or `aria-hidden="true"`
|
|
47
|
+
|
|
48
|
+
#### 1.2 Time-based Media
|
|
49
|
+
|
|
50
|
+
- [ ] Videos have captions
|
|
51
|
+
- [ ] Audio has transcripts
|
|
52
|
+
|
|
53
|
+
#### 1.3 Adaptable
|
|
54
|
+
|
|
55
|
+
- [ ] Semantic HTML elements used (`<header>`, `<main>`, `<nav>`, `<footer>`)
|
|
56
|
+
- [ ] Proper heading hierarchy (h1 → h2 → h3)
|
|
57
|
+
- [ ] Form inputs have associated labels
|
|
58
|
+
- [ ] Tables have headers (`<th>`)
|
|
59
|
+
|
|
60
|
+
#### 1.4 Distinguishable
|
|
61
|
+
|
|
62
|
+
- [ ] Color contrast ratio ≥ 4.5:1 (normal text)
|
|
63
|
+
- [ ] Color contrast ratio ≥ 3:1 (large text, 18px+)
|
|
64
|
+
- [ ] Text can be resized to 200%
|
|
65
|
+
- [ ] No information conveyed by color alone
|
|
66
|
+
|
|
67
|
+
### Operable
|
|
68
|
+
|
|
69
|
+
#### 2.1 Keyboard Accessible
|
|
70
|
+
|
|
71
|
+
- [ ] All functionality available via keyboard
|
|
72
|
+
- [ ] No keyboard traps
|
|
73
|
+
- [ ] Focus visible on all interactive elements
|
|
74
|
+
- [ ] Skip links for main content
|
|
75
|
+
|
|
76
|
+
#### 2.4 Navigable
|
|
77
|
+
|
|
78
|
+
- [ ] Page has descriptive `<title>`
|
|
79
|
+
- [ ] Focus order is logical
|
|
80
|
+
- [ ] Link text is descriptive (no "click here")
|
|
81
|
+
- [ ] Multiple ways to navigate (menu, search, sitemap)
|
|
82
|
+
|
|
83
|
+
### Understandable
|
|
84
|
+
|
|
85
|
+
#### 3.1 Readable
|
|
86
|
+
|
|
87
|
+
- [ ] Page language set (`<html lang="pl">`)
|
|
88
|
+
- [ ] Abbreviations explained
|
|
89
|
+
|
|
90
|
+
#### 3.2 Predictable
|
|
91
|
+
|
|
92
|
+
- [ ] Navigation consistent across pages
|
|
93
|
+
- [ ] Components behave consistently
|
|
94
|
+
|
|
95
|
+
#### 3.3 Input Assistance
|
|
96
|
+
|
|
97
|
+
- [ ] Error messages are clear
|
|
98
|
+
- [ ] Required fields marked
|
|
99
|
+
- [ ] Input format hints provided
|
|
100
|
+
|
|
101
|
+
### Robust
|
|
102
|
+
|
|
103
|
+
#### 4.1 Compatible
|
|
104
|
+
|
|
105
|
+
- [ ] Valid HTML
|
|
106
|
+
- [ ] ARIA attributes used correctly
|
|
107
|
+
- [ ] Custom components have proper roles
|
|
108
|
+
|
|
109
|
+
## Common Issues to Check
|
|
110
|
+
|
|
111
|
+
### Images
|
|
112
|
+
|
|
113
|
+
```html
|
|
114
|
+
<!-- BAD -->
|
|
115
|
+
<img src="photo.jpg" />
|
|
116
|
+
|
|
117
|
+
<!-- GOOD -->
|
|
118
|
+
<img src="photo.jpg" alt="Description of the image" />
|
|
119
|
+
|
|
120
|
+
<!-- Decorative image -->
|
|
121
|
+
<img src="decoration.jpg" alt="" role="presentation" />
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Form Labels
|
|
125
|
+
|
|
126
|
+
```html
|
|
127
|
+
<!-- BAD -->
|
|
128
|
+
<input type="text" placeholder="Name" />
|
|
129
|
+
|
|
130
|
+
<!-- GOOD -->
|
|
131
|
+
<label for="name">Name</label>
|
|
132
|
+
<input type="text" id="name" />
|
|
133
|
+
|
|
134
|
+
<!-- Or with aria-label -->
|
|
135
|
+
<input type="text" aria-label="Name" />
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Buttons & Links
|
|
139
|
+
|
|
140
|
+
```html
|
|
141
|
+
<!-- BAD -->
|
|
142
|
+
<button><i class="icon-search"></i></button>
|
|
143
|
+
|
|
144
|
+
<!-- GOOD -->
|
|
145
|
+
<button aria-label="Search">
|
|
146
|
+
<i class="icon-search" aria-hidden="true"></i>
|
|
147
|
+
</button>
|
|
148
|
+
|
|
149
|
+
<!-- BAD -->
|
|
150
|
+
<a href="/page">Click here</a>
|
|
151
|
+
|
|
152
|
+
<!-- GOOD -->
|
|
153
|
+
<a href="/page">View product details</a>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Heading Hierarchy
|
|
157
|
+
|
|
158
|
+
```html
|
|
159
|
+
<!-- BAD - skipping levels -->
|
|
160
|
+
<h1>Title</h1>
|
|
161
|
+
<h3>Subsection</h3>
|
|
162
|
+
|
|
163
|
+
<!-- GOOD -->
|
|
164
|
+
<h1>Title</h1>
|
|
165
|
+
<h2>Section</h2>
|
|
166
|
+
<h3>Subsection</h3>
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Focus States (Tailwind)
|
|
170
|
+
|
|
171
|
+
```html
|
|
172
|
+
<!-- Must have visible focus -->
|
|
173
|
+
<button
|
|
174
|
+
class="smart-bg-blue-500 focus:smart-ring-2 focus:smart-ring-blue-500 focus:smart-outline-none"
|
|
175
|
+
></button>
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Color Contrast
|
|
179
|
+
|
|
180
|
+
Check that text colors have sufficient contrast:
|
|
181
|
+
|
|
182
|
+
- `smart-text-gray-500` on white may not pass (check!)
|
|
183
|
+
- `smart-text-gray-700` on white usually passes
|
|
184
|
+
- `smart-text-gray-900` on white always passes
|
|
185
|
+
|
|
186
|
+
## Validation Process
|
|
187
|
+
|
|
188
|
+
### Step 1: Static Analysis
|
|
189
|
+
|
|
190
|
+
Search for common issues in templates:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
# Find images without alt
|
|
194
|
+
grep -r '<img' --include="*.html" | grep -v 'alt='
|
|
195
|
+
|
|
196
|
+
# Find inputs without labels
|
|
197
|
+
grep -r '<input' --include="*.html" | grep -v 'aria-label\|id='
|
|
198
|
+
|
|
199
|
+
# Find buttons without accessible names
|
|
200
|
+
grep -r '<button' --include="*.html" | grep -v 'aria-label'
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Step 2: Runtime Check
|
|
204
|
+
|
|
205
|
+
Use the `a11y-audit` skill to audit a page:
|
|
206
|
+
|
|
207
|
+
1. Ensure dev server is running (automatic)
|
|
208
|
+
2. Navigate to the page
|
|
209
|
+
3. Get accessibility snapshot
|
|
210
|
+
4. Run axe-core audit
|
|
211
|
+
5. Return violations and recommendations
|
|
212
|
+
|
|
213
|
+
### Step 3: Generate Report
|
|
214
|
+
|
|
215
|
+
Create a report with:
|
|
216
|
+
|
|
217
|
+
- Critical issues (must fix)
|
|
218
|
+
- Serious issues (should fix)
|
|
219
|
+
- Minor issues (consider fixing)
|
|
220
|
+
- Passed checks
|
|
221
|
+
|
|
222
|
+
## Report Format
|
|
223
|
+
|
|
224
|
+
```markdown
|
|
225
|
+
## Accessibility Audit Report
|
|
226
|
+
|
|
227
|
+
**Page**: [URL]
|
|
228
|
+
**Date**: [Date]
|
|
229
|
+
**Standard**: WCAG 2.1 Level AA
|
|
230
|
+
|
|
231
|
+
### Critical Issues
|
|
232
|
+
|
|
233
|
+
| Issue | Element | WCAG | Fix |
|
|
234
|
+
| ----------- | ----------------- | ----- | ------------------------ |
|
|
235
|
+
| Missing alt | `<img src="...">` | 1.1.1 | Add descriptive alt text |
|
|
236
|
+
|
|
237
|
+
### Serious Issues
|
|
238
|
+
|
|
239
|
+
| Issue | Element | WCAG | Fix |
|
|
240
|
+
| ------------ | ---------------- | ----- | ---------------- |
|
|
241
|
+
| Low contrast | `.text-gray-400` | 1.4.3 | Use darker color |
|
|
242
|
+
|
|
243
|
+
### Passed Checks
|
|
244
|
+
|
|
245
|
+
- [x] Page has lang attribute
|
|
246
|
+
- [x] Headings in correct order
|
|
247
|
+
- [x] Form inputs have labels
|
|
248
|
+
|
|
249
|
+
### Recommendations
|
|
250
|
+
|
|
251
|
+
1. Add skip link to main content
|
|
252
|
+
2. Improve focus visibility on cards
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Tools
|
|
256
|
+
|
|
257
|
+
### axe-core (via Playwright)
|
|
258
|
+
|
|
259
|
+
```javascript
|
|
260
|
+
// Inject and run axe-core
|
|
261
|
+
const results = await page.evaluate(async () => {
|
|
262
|
+
const axe = await import('axe-core');
|
|
263
|
+
return axe.run();
|
|
264
|
+
});
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Color Contrast Check
|
|
268
|
+
|
|
269
|
+
For Tailwind colors, reference:
|
|
270
|
+
|
|
271
|
+
- Gray 400 on white: ~2.5:1 (FAIL)
|
|
272
|
+
- Gray 500 on white: ~4.5:1 (PASS for large text)
|
|
273
|
+
- Gray 600 on white: ~5.7:1 (PASS)
|
|
274
|
+
- Gray 700 on white: ~8.6:1 (PASS)
|
|
275
|
+
|
|
276
|
+
## Quick Fixes
|
|
277
|
+
|
|
278
|
+
### Add lang attribute
|
|
279
|
+
|
|
280
|
+
```html
|
|
281
|
+
<html lang="pl"></html>
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### Add skip link
|
|
285
|
+
|
|
286
|
+
```html
|
|
287
|
+
<a href="#main-content" class="smart-sr-only focus:smart-not-sr-only">
|
|
288
|
+
Skip to main content
|
|
289
|
+
</a>
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Make icon buttons accessible
|
|
293
|
+
|
|
294
|
+
```html
|
|
295
|
+
<button aria-label="Close dialog">
|
|
296
|
+
<svg aria-hidden="true">...</svg>
|
|
297
|
+
</button>
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Fix low contrast text
|
|
301
|
+
|
|
302
|
+
Replace:
|
|
303
|
+
|
|
304
|
+
- `smart-text-gray-400` → `smart-text-gray-600`
|
|
305
|
+
- `smart-text-gray-500` → `smart-text-gray-700`
|