universal-dev-standards 4.1.0 → 5.0.0-beta.10
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/README.md +3 -3
- package/bin/uds.js +239 -4
- package/bundled/core/acceptance-test-driven-development.md +19 -721
- package/bundled/core/accessibility-standards.md +862 -0
- package/bundled/core/ai-agreement-standards.md +95 -0
- package/bundled/core/ai-friendly-architecture.md +544 -0
- package/bundled/core/ai-instruction-standards.md +2 -0
- package/bundled/core/anti-hallucination.md +90 -637
- package/bundled/core/behavior-driven-development.md +20 -735
- package/bundled/core/changelog-standards.md +4 -0
- package/bundled/core/checkin-standards.md +21 -4
- package/bundled/core/code-review-checklist.md +3 -0
- package/bundled/core/commit-message-guide.md +14 -3
- package/bundled/core/deployment-standards.md +296 -0
- package/bundled/core/developer-memory.md +568 -0
- package/bundled/core/documentation-structure.md +114 -18
- package/bundled/core/documentation-writing-standards.md +272 -2
- package/bundled/core/error-code-standards.md +3 -0
- package/bundled/core/forward-derivation-standards.md +134 -8
- package/bundled/core/git-workflow.md +72 -686
- package/bundled/core/guides/anti-hallucination-guide.md +517 -0
- package/bundled/core/guides/git-workflow-guide.md +954 -0
- package/bundled/core/guides/performance-guide.md +508 -0
- package/bundled/core/guides/refactoring-guide.md +608 -0
- package/bundled/core/guides/security-guide.md +485 -0
- package/bundled/core/logging-standards.md +337 -2
- package/bundled/core/performance-standards.md +231 -0
- package/bundled/core/project-context-memory.md +180 -0
- package/bundled/core/project-structure.md +315 -2
- package/bundled/core/refactoring-standards.md +81 -761
- package/bundled/core/requirement-engineering.md +39 -0
- package/bundled/core/reverse-engineering-standards.md +6 -4
- package/bundled/core/security-standards.md +244 -0
- package/bundled/core/spec-driven-development.md +20 -319
- package/bundled/core/test-completeness-dimensions.md +213 -11
- package/bundled/core/test-driven-development.md +22 -978
- package/bundled/core/testing-standards.md +222 -2903
- package/bundled/core/versioning.md +16 -55
- package/bundled/core/virtual-organization-standards.md +85 -0
- package/bundled/locales/README.md +4 -4
- package/bundled/locales/zh-CN/CHANGELOG.md +18 -18
- package/bundled/locales/zh-CN/CLAUDE.md +3 -3
- package/bundled/locales/zh-CN/MAINTENANCE.md +7 -7
- package/bundled/locales/zh-CN/README.md +211 -510
- package/bundled/locales/zh-CN/STANDARDS-MAPPING.md +1 -1
- package/bundled/locales/zh-CN/adoption/ADOPTION-GUIDE.md +3 -3
- package/bundled/locales/zh-CN/adoption/DAILY-WORKFLOW-GUIDE.md +66 -7
- package/bundled/locales/zh-CN/adoption/STATIC-DYNAMIC-GUIDE.md +22 -22
- package/bundled/locales/zh-CN/adoption/checklists/enterprise.md +5 -5
- package/bundled/locales/zh-CN/adoption/checklists/minimal.md +4 -4
- package/bundled/locales/zh-CN/adoption/checklists/recommended.md +5 -5
- package/bundled/locales/zh-CN/ai/MAINTENANCE.md +13 -13
- package/bundled/locales/zh-CN/core/ai-friendly-architecture.md +306 -0
- package/bundled/locales/zh-CN/core/ai-instruction-standards.md +1 -1
- package/bundled/locales/zh-CN/core/anti-hallucination.md +39 -3
- package/bundled/locales/zh-CN/core/checkin-standards.md +18 -5
- package/bundled/locales/zh-CN/core/commit-message-guide.md +1 -1
- package/bundled/locales/zh-CN/core/developer-memory.md +576 -0
- package/bundled/locales/zh-CN/core/documentation-structure.md +43 -5
- package/bundled/locales/zh-CN/core/documentation-writing-standards.md +146 -5
- package/bundled/locales/zh-CN/core/git-workflow.md +179 -4
- package/bundled/locales/zh-CN/core/logging-standards.md +177 -4
- package/bundled/locales/zh-CN/core/project-structure.md +117 -5
- package/bundled/locales/zh-CN/core/refactoring-standards.md +3 -3
- package/bundled/locales/zh-CN/core/reverse-engineering-standards.md +6 -6
- package/bundled/locales/zh-CN/core/spec-driven-development.md +516 -14
- package/bundled/locales/zh-CN/core/test-completeness-dimensions.md +155 -24
- package/bundled/locales/zh-CN/core/test-driven-development.md +71 -20
- package/bundled/locales/zh-CN/core/testing-standards.md +4 -4
- package/bundled/locales/zh-CN/core/versioning.md +1 -1
- package/bundled/locales/zh-CN/docs/AI-AGENT-ROADMAP.md +145 -46
- package/bundled/locales/zh-CN/docs/CHEATSHEET.md +184 -0
- package/bundled/locales/zh-CN/docs/CLI-FLOW.md +239 -0
- package/bundled/locales/zh-CN/docs/FEATURE-REFERENCE.md +320 -0
- package/bundled/locales/zh-CN/docs/OPERATION-WORKFLOW.md +43 -43
- package/bundled/locales/zh-CN/docs/STANDARDS-REFERENCE.md +440 -0
- package/bundled/locales/zh-CN/docs/USAGE-MODES-COMPARISON.md +1 -1
- package/bundled/locales/zh-CN/docs/WINDOWS-GUIDE.md +1 -1
- package/bundled/locales/zh-CN/integrations/codex/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/gemini-cli/GEMINI.md +35 -3
- package/bundled/locales/zh-CN/integrations/gemini-cli/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +89 -3
- package/bundled/locales/zh-CN/integrations/github-copilot/README.md +5 -5
- package/bundled/locales/zh-CN/integrations/github-copilot/copilot-instructions.md +9 -9
- package/bundled/locales/zh-CN/integrations/github-copilot/skills-mapping.md +23 -7
- package/bundled/locales/zh-CN/integrations/google-antigravity/README.md +2 -2
- package/bundled/locales/zh-CN/integrations/opencode/README.md +3 -3
- package/bundled/locales/zh-CN/integrations/opencode/skills-mapping.md +22 -10
- package/bundled/locales/zh-CN/integrations/openspec/README.md +1 -1
- package/bundled/locales/zh-CN/integrations/spec-kit/AGENTS.md +3 -3
- package/bundled/locales/zh-CN/integrations/spec-kit/README.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/bilingual.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/english.md +1 -1
- package/bundled/locales/zh-CN/options/commit-message/traditional-chinese.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/gitflow.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/github-flow.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/merge-commit.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/rebase-ff.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/squash-merge.md +1 -1
- package/bundled/locales/zh-CN/options/git-workflow/trunk-based.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/dotnet.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/go.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/java.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/nodejs.md +1 -1
- package/bundled/locales/zh-CN/options/project-structure/python.md +1 -1
- package/bundled/locales/zh-CN/options/testing/e2e-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/integration-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/system-testing.md +1 -1
- package/bundled/locales/zh-CN/options/testing/unit-testing.md +1 -1
- package/bundled/locales/zh-CN/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +2 -2
- package/bundled/locales/zh-CN/skills/README.md +131 -81
- package/bundled/locales/zh-CN/skills/agents/README.md +281 -0
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +10 -10
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +8 -8
- package/bundled/locales/zh-CN/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +8 -8
- package/bundled/locales/zh-CN/skills/ai-friendly-architecture/SKILL.md +221 -0
- package/bundled/locales/zh-CN/skills/ai-instruction-standards/SKILL.md +214 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/SKILL.md +71 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/acceptance-criteria-guide.md +428 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/atdd-workflow.md +484 -0
- package/bundled/locales/zh-CN/skills/atdd-assistant/guide.md +368 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/SKILL.md +68 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/bdd-workflow.md +406 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/gherkin-guide.md +454 -0
- package/bundled/locales/zh-CN/skills/bdd-assistant/guide.md +324 -0
- package/bundled/locales/zh-CN/skills/changelog-guide/SKILL.md +64 -0
- package/bundled/locales/zh-CN/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +6 -7
- package/bundled/locales/zh-CN/skills/checkin-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-CN/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -7
- package/bundled/locales/zh-CN/skills/code-review-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/methodology.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/commands → commands}/refactor.md +3 -3
- package/bundled/locales/zh-CN/skills/commit-standards/SKILL.md +61 -0
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/commit-standards → commit-standards}/language-options.md +3 -3
- package/bundled/locales/zh-CN/skills/docs-generator/SKILL.md +59 -0
- package/bundled/locales/zh-CN/skills/docs-generator/guide.md +262 -0
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -8
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/forward-derivation/SKILL.md +62 -0
- package/bundled/locales/zh-CN/skills/forward-derivation/guide.md +130 -0
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-CN/skills/methodology-system/SKILL.md +78 -0
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/methodology-system → methodology-system}/runtime.md +3 -3
- package/bundled/locales/zh-CN/skills/project-discovery/SKILL.md +66 -0
- package/bundled/locales/zh-CN/skills/project-discovery/guide.md +371 -0
- package/bundled/locales/zh-CN/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +4 -4
- package/bundled/locales/zh-CN/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +1 -1
- package/bundled/locales/zh-CN/skills/refactoring-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -8
- package/bundled/locales/zh-CN/skills/release-standards/SKILL.md +64 -0
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/changelog-format.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +5 -6
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/release-workflow.md +7 -7
- package/bundled/locales/zh-CN/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +3 -3
- package/bundled/locales/zh-CN/skills/requirement-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +4 -5
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +3 -3
- package/bundled/locales/zh-CN/skills/reverse-engineer/SKILL.md +67 -0
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +17 -18
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +2 -2
- package/bundled/locales/zh-CN/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +3 -3
- package/bundled/locales/zh-CN/skills/spec-driven-dev/SKILL.md +75 -0
- package/bundled/locales/zh-CN/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +10 -11
- package/bundled/locales/zh-CN/skills/tdd-assistant/SKILL.md +66 -0
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +12 -16
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/locales/zh-CN/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +3 -3
- package/bundled/locales/zh-CN/skills/test-coverage-assistant/SKILL.md +65 -0
- package/bundled/locales/zh-CN/skills/test-coverage-assistant/guide.md +284 -0
- package/bundled/locales/zh-CN/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +8 -8
- package/bundled/locales/zh-CN/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +4 -4
- package/bundled/locales/zh-CN/skills/{cline → tools/cline}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{copilot → tools/copilot}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{copilot → tools/copilot}/copilot-instructions.md +1 -1
- package/bundled/locales/zh-CN/skills/{cursor → tools/cursor}/README.md +1 -1
- package/bundled/locales/zh-CN/skills/{windsurf → tools/windsurf}/README.md +1 -1
- package/bundled/locales/zh-TW/CHANGELOG.md +16 -16
- package/bundled/locales/zh-TW/CLAUDE.md +3 -3
- package/bundled/locales/zh-TW/MAINTENANCE.md +7 -7
- package/bundled/locales/zh-TW/README.md +217 -490
- package/bundled/locales/zh-TW/STANDARDS-MAPPING.md +1 -1
- package/bundled/locales/zh-TW/adoption/ADOPTION-GUIDE.md +4 -4
- package/bundled/locales/zh-TW/adoption/DAILY-WORKFLOW-GUIDE.md +66 -7
- package/bundled/locales/zh-TW/adoption/STATIC-DYNAMIC-GUIDE.md +22 -22
- package/bundled/locales/zh-TW/adoption/checklists/enterprise.md +5 -5
- package/bundled/locales/zh-TW/adoption/checklists/minimal.md +4 -4
- package/bundled/locales/zh-TW/adoption/checklists/recommended.md +5 -5
- package/bundled/locales/zh-TW/ai/MAINTENANCE.md +13 -13
- package/bundled/locales/zh-TW/ai/standards/anti-hallucination.ai.yaml +3 -2
- package/bundled/locales/zh-TW/ai/standards/git-workflow.ai.yaml +4 -3
- package/bundled/locales/zh-TW/ai/standards/spec-driven-development.ai.yaml +3 -3
- package/bundled/locales/zh-TW/ai/standards/testing.ai.yaml +1 -0
- package/bundled/locales/zh-TW/core/ai-friendly-architecture.md +306 -0
- package/bundled/locales/zh-TW/core/ai-instruction-standards.md +1 -1
- package/bundled/locales/zh-TW/core/anti-hallucination.md +38 -701
- package/bundled/locales/zh-TW/core/changelog-standards.md +1 -1
- package/bundled/locales/zh-TW/core/checkin-standards.md +18 -5
- package/bundled/locales/zh-TW/core/code-review-checklist.md +1 -1
- package/bundled/locales/zh-TW/core/commit-message-guide.md +1 -1
- package/bundled/locales/zh-TW/core/developer-memory.md +576 -0
- package/bundled/locales/zh-TW/core/documentation-structure.md +115 -22
- package/bundled/locales/zh-TW/core/documentation-writing-standards.md +126 -5
- package/bundled/locales/zh-TW/core/forward-derivation-standards.md +2 -2
- package/bundled/locales/zh-TW/core/git-workflow.md +38 -812
- package/bundled/locales/zh-TW/core/guides/anti-hallucination-guide.md +779 -0
- package/bundled/locales/zh-TW/core/guides/git-workflow-guide.md +1016 -0
- package/bundled/locales/zh-TW/core/guides/refactoring-guide.md +864 -0
- package/bundled/locales/zh-TW/core/guides/testing-guide.md +2280 -0
- package/bundled/locales/zh-TW/core/logging-standards.md +159 -4
- package/bundled/locales/zh-TW/core/project-structure.md +102 -9
- package/bundled/locales/zh-TW/core/refactoring-standards.md +37 -823
- package/bundled/locales/zh-TW/core/reverse-engineering-standards.md +6 -6
- package/bundled/locales/zh-TW/core/spec-driven-development.md +17 -268
- package/bundled/locales/zh-TW/core/test-completeness-dimensions.md +128 -14
- package/bundled/locales/zh-TW/core/test-driven-development.md +20 -983
- package/bundled/locales/zh-TW/core/testing-standards.md +120 -2105
- package/bundled/locales/zh-TW/core/versioning.md +13 -55
- package/bundled/locales/zh-TW/docs/AI-AGENT-ROADMAP.md +145 -46
- package/bundled/locales/zh-TW/docs/CHEATSHEET.md +184 -0
- package/bundled/locales/zh-TW/docs/CLI-FLOW.md +239 -0
- package/bundled/locales/zh-TW/docs/FEATURE-REFERENCE.md +320 -0
- package/bundled/locales/zh-TW/docs/MIGRATION-V5.md +71 -0
- package/bundled/locales/zh-TW/docs/OPERATION-WORKFLOW.md +42 -42
- package/bundled/locales/zh-TW/docs/STANDARDS-REFERENCE.md +440 -0
- package/bundled/locales/zh-TW/docs/USAGE-MODES-COMPARISON.md +1 -1
- package/bundled/locales/zh-TW/docs/WINDOWS-GUIDE.md +1 -1
- package/bundled/locales/zh-TW/integrations/claude-code/README.md +44 -0
- package/bundled/locales/zh-TW/integrations/gemini-cli/GEMINI.md +35 -3
- package/bundled/locales/zh-TW/integrations/github-copilot/COPILOT-CHAT-REFERENCE.md +89 -3
- package/bundled/locales/zh-TW/integrations/github-copilot/copilot-instructions.md +3 -3
- package/bundled/locales/zh-TW/integrations/github-copilot/skills-mapping.md +23 -7
- package/bundled/locales/zh-TW/integrations/opencode/skills-mapping.md +22 -10
- package/bundled/locales/zh-TW/methodologies/guides/sdd-guide.md +338 -0
- package/bundled/locales/zh-TW/methodologies/guides/tdd-guide.md +1055 -0
- package/bundled/locales/zh-TW/options/commit-message/bilingual.md +1 -1
- package/bundled/locales/zh-TW/options/commit-message/english.md +1 -1
- package/bundled/locales/zh-TW/options/commit-message/traditional-chinese.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/gitflow.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/github-flow.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/merge-commit.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/rebase-ff.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/squash-merge.md +1 -1
- package/bundled/locales/zh-TW/options/git-workflow/trunk-based.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/dotnet.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/go.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/java.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/nodejs.md +1 -1
- package/bundled/locales/zh-TW/options/project-structure/python.md +1 -1
- package/bundled/locales/zh-TW/options/testing/e2e-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/integration-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/system-testing.md +1 -1
- package/bundled/locales/zh-TW/options/testing/unit-testing.md +1 -1
- package/bundled/locales/zh-TW/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +2 -2
- package/bundled/locales/zh-TW/skills/README.md +131 -79
- package/bundled/locales/zh-TW/skills/agents/README.md +281 -0
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +7 -7
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +8 -8
- package/bundled/locales/zh-TW/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +8 -8
- package/bundled/locales/zh-TW/skills/ai-friendly-architecture/SKILL.md +221 -0
- package/bundled/locales/zh-TW/skills/ai-instruction-standards/SKILL.md +214 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/SKILL.md +71 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/acceptance-criteria-guide.md +428 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/atdd-workflow.md +484 -0
- package/bundled/locales/zh-TW/skills/atdd-assistant/guide.md +368 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/SKILL.md +68 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/bdd-workflow.md +406 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/gherkin-guide.md +454 -0
- package/bundled/locales/zh-TW/skills/bdd-assistant/guide.md +324 -0
- package/bundled/locales/zh-TW/skills/changelog-guide/SKILL.md +64 -0
- package/bundled/locales/zh-TW/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +6 -7
- package/bundled/locales/zh-TW/skills/checkin-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-TW/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -7
- package/bundled/locales/zh-TW/skills/code-review-assistant/SKILL.md +56 -0
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/methodology.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/commands → commands}/refactor.md +3 -3
- package/bundled/locales/zh-TW/skills/commit-standards/SKILL.md +61 -0
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +5 -6
- package/bundled/locales/zh-TW/skills/{claude-code/commit-standards → commit-standards}/language-options.md +3 -3
- package/bundled/locales/zh-TW/skills/docs-generator/SKILL.md +59 -0
- package/bundled/locales/zh-TW/skills/docs-generator/guide.md +262 -0
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -8
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/forward-derivation/SKILL.md +62 -0
- package/bundled/locales/zh-TW/skills/{claude-code/forward-derivation/SKILL.md → forward-derivation/guide.md} +24 -19
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/methodology-system/SKILL.md +78 -0
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/methodology-system → methodology-system}/runtime.md +3 -3
- package/bundled/locales/zh-TW/skills/project-discovery/SKILL.md +66 -0
- package/bundled/locales/zh-TW/skills/project-discovery/guide.md +371 -0
- package/bundled/locales/zh-TW/skills/project-discovery/workflow.md +574 -0
- package/bundled/locales/zh-TW/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +4 -4
- package/bundled/locales/zh-TW/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +1 -1
- package/bundled/locales/zh-TW/skills/refactoring-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -8
- package/bundled/locales/zh-TW/skills/release-standards/SKILL.md +64 -0
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/changelog-format.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/release-workflow.md +60 -28
- package/bundled/locales/zh-TW/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +3 -3
- package/bundled/locales/zh-TW/skills/requirement-assistant/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +2 -3
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +3 -3
- package/bundled/locales/zh-TW/skills/reverse-engineer/SKILL.md +67 -0
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +17 -18
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +2 -2
- package/bundled/locales/zh-TW/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +3 -3
- package/bundled/locales/zh-TW/skills/spec-driven-dev/SKILL.md +75 -0
- package/bundled/locales/zh-TW/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +9 -10
- package/bundled/locales/zh-TW/skills/tdd-assistant/SKILL.md +66 -0
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +9 -10
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/locales/zh-TW/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +3 -3
- package/bundled/locales/zh-TW/skills/test-coverage-assistant/SKILL.md +65 -0
- package/bundled/locales/zh-TW/skills/{claude-code/test-coverage-assistant/SKILL.md → test-coverage-assistant/guide.md} +27 -24
- package/bundled/locales/zh-TW/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +6 -6
- package/bundled/locales/zh-TW/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +4 -4
- package/bundled/locales/zh-TW/skills/{cline → tools/cline}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{copilot → tools/copilot}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{copilot → tools/copilot}/copilot-instructions.md +1 -1
- package/bundled/locales/zh-TW/skills/{cursor → tools/cursor}/README.md +1 -1
- package/bundled/locales/zh-TW/skills/{windsurf → tools/windsurf}/README.md +1 -1
- package/bundled/skills/INTEGRATION-GUIDE.md +210 -0
- package/bundled/skills/README.md +95 -0
- package/bundled/skills/_shared/README.md +60 -0
- package/bundled/skills/agents/README.md +305 -0
- package/bundled/skills/agents/code-architect.md +259 -0
- package/bundled/skills/agents/doc-writer.md +406 -0
- package/bundled/skills/agents/reviewer.md +353 -0
- package/bundled/skills/agents/spec-analyst.md +374 -0
- package/bundled/skills/agents/test-specialist.md +364 -0
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/SKILL.md +28 -5
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/anti-hallucination.md +24 -5
- package/bundled/skills/{claude-code/ai-collaboration-standards → ai-collaboration-standards}/certainty-labels.md +31 -6
- package/bundled/skills/ai-friendly-architecture/SKILL.md +216 -0
- package/bundled/skills/ai-instruction-standards/SKILL.md +209 -0
- package/bundled/skills/atdd-assistant/SKILL.md +74 -0
- package/bundled/skills/{claude-code/atdd-assistant → atdd-assistant}/acceptance-criteria-guide.md +1 -1
- package/bundled/skills/{claude-code/atdd-assistant → atdd-assistant}/atdd-workflow.md +1 -1
- package/bundled/skills/{claude-code/atdd-assistant/SKILL.md → atdd-assistant/guide.md} +11 -11
- package/bundled/skills/bdd-assistant/SKILL.md +70 -0
- package/bundled/skills/{claude-code/bdd-assistant → bdd-assistant}/bdd-workflow.md +1 -1
- package/bundled/skills/{claude-code/bdd-assistant → bdd-assistant}/gherkin-guide.md +1 -1
- package/bundled/skills/{claude-code/bdd-assistant/SKILL.md → bdd-assistant/guide.md} +11 -11
- package/bundled/skills/changelog-guide/SKILL.md +66 -0
- package/bundled/skills/{claude-code/changelog-guide/SKILL.md → changelog-guide/guide.md} +8 -6
- package/bundled/skills/checkin-assistant/SKILL.md +52 -0
- package/bundled/skills/{claude-code/checkin-assistant/SKILL.md → checkin-assistant/guide.md} +6 -6
- package/bundled/skills/code-review-assistant/SKILL.md +53 -0
- package/bundled/skills/{claude-code/code-review-assistant → code-review-assistant}/checkin-checklist.md +3 -3
- package/bundled/skills/{claude-code/code-review-assistant/SKILL.md → code-review-assistant/guide.md} +7 -5
- package/bundled/skills/{claude-code/code-review-assistant → code-review-assistant}/review-checklist.md +3 -3
- package/bundled/skills/commands/COMMAND-FAMILY-OVERVIEW.md +290 -0
- package/bundled/skills/{claude-code/commands → commands}/README.md +13 -3
- package/bundled/skills/{claude-code/commands → commands}/atdd.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/bdd.md +2 -2
- package/bundled/skills/commands/changelog.md +58 -0
- package/bundled/skills/{claude-code/commands → commands}/check.md +1 -1
- package/bundled/skills/commands/checkin.md +53 -0
- package/bundled/skills/{claude-code/commands → commands}/commit.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/config.md +1 -1
- package/bundled/skills/{claude-code/commands → commands}/coverage.md +5 -4
- package/bundled/skills/commands/derive-all.md +53 -0
- package/bundled/skills/commands/derive-atdd.md +49 -0
- package/bundled/skills/commands/derive-bdd.md +47 -0
- package/bundled/skills/commands/derive-tdd.md +48 -0
- package/bundled/skills/commands/derive.md +72 -0
- package/bundled/skills/commands/discover.md +80 -0
- package/bundled/skills/commands/docgen.md +61 -0
- package/bundled/skills/commands/docs.md +59 -0
- package/bundled/skills/commands/guide.md +44 -0
- package/bundled/skills/{claude-code/commands → commands}/init.md +2 -2
- package/bundled/skills/{claude-code/commands → commands}/methodology.md +32 -16
- package/bundled/skills/{claude-code/commands → commands}/refactor.md +2 -2
- package/bundled/skills/commands/release.md +56 -0
- package/bundled/skills/{claude-code/commands → commands}/requirement.md +3 -3
- package/bundled/skills/commands/reverse-bdd.md +47 -0
- package/bundled/skills/commands/reverse-sdd.md +51 -0
- package/bundled/skills/commands/reverse-tdd.md +51 -0
- package/bundled/skills/commands/reverse.md +63 -0
- package/bundled/skills/{claude-code/commands → commands}/review.md +3 -3
- package/bundled/skills/commands/sdd.md +135 -0
- package/bundled/skills/{claude-code/commands → commands}/tdd.md +3 -3
- package/bundled/skills/{claude-code/commands → commands}/update.md +2 -2
- package/bundled/skills/commit-standards/SKILL.md +60 -0
- package/bundled/skills/{claude-code/commit-standards → commit-standards}/conventional-commits.md +3 -3
- package/bundled/skills/{claude-code/commit-standards/SKILL.md → commit-standards/guide.md} +17 -5
- package/bundled/skills/{claude-code/commit-standards → commit-standards}/language-options.md +2 -2
- package/bundled/skills/docs-generator/SKILL.md +69 -0
- package/bundled/skills/docs-generator/guide.md +258 -0
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/SKILL.md +7 -7
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/documentation-structure.md +3 -3
- package/bundled/skills/{claude-code/documentation-guide → documentation-guide}/readme-template.md +2 -2
- package/bundled/skills/{claude-code/error-code-guide → error-code-guide}/SKILL.md +7 -5
- package/bundled/skills/forward-derivation/SKILL.md +61 -0
- package/bundled/skills/{claude-code/forward-derivation/SKILL.md → forward-derivation/guide.md} +44 -29
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/SKILL.md +7 -5
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/branch-naming.md +2 -2
- package/bundled/skills/{claude-code/git-workflow-guide → git-workflow-guide}/git-workflow.md +3 -3
- package/bundled/skills/{claude-code/logging-guide → logging-guide}/SKILL.md +7 -5
- package/bundled/skills/methodology-system/SKILL.md +75 -0
- package/bundled/skills/{claude-code/methodology-system → methodology-system}/create-methodology.md +1 -1
- package/bundled/skills/{claude-code/methodology-system/SKILL.md → methodology-system/guide.md} +51 -16
- package/bundled/skills/methodology-system/integrated-flow.md +454 -0
- package/bundled/skills/{claude-code/methodology-system → methodology-system}/runtime.md +2 -2
- package/bundled/skills/project-discovery/SKILL.md +63 -0
- package/bundled/skills/project-discovery/guide.md +367 -0
- package/bundled/skills/project-discovery/workflow.md +566 -0
- package/bundled/skills/{claude-code/project-structure-guide → project-structure-guide}/SKILL.md +14 -4
- package/bundled/skills/refactoring-assistant/SKILL.md +78 -0
- package/bundled/skills/{claude-code/refactoring-assistant/SKILL.md → refactoring-assistant/guide.md} +7 -7
- package/bundled/skills/release-standards/SKILL.md +61 -0
- package/bundled/skills/{claude-code/release-standards → release-standards}/changelog-format.md +2 -2
- package/bundled/skills/{claude-code/release-standards/SKILL.md → release-standards/guide.md} +7 -5
- package/bundled/skills/{claude-code/release-standards → release-standards}/release-workflow.md +59 -24
- package/bundled/skills/{claude-code/release-standards → release-standards}/semantic-versioning.md +2 -2
- package/bundled/skills/requirement-assistant/SKILL.md +66 -0
- package/bundled/skills/{claude-code/requirement-assistant/SKILL.md → requirement-assistant/guide.md} +14 -6
- package/bundled/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-checklist.md +2 -2
- package/bundled/skills/{claude-code/requirement-assistant → requirement-assistant}/requirement-writing.md +2 -2
- package/bundled/skills/reverse-engineer/SKILL.md +64 -0
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/bdd-extraction.md +1 -1
- package/bundled/skills/{claude-code/reverse-engineer/SKILL.md → reverse-engineer/guide.md} +21 -18
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/tdd-analysis.md +1 -1
- package/bundled/skills/{claude-code/reverse-engineer → reverse-engineer}/workflow.md +2 -2
- package/bundled/skills/spec-driven-dev/SKILL.md +80 -0
- package/bundled/skills/{claude-code/spec-driven-dev/SKILL.md → spec-driven-dev/guide.md} +50 -8
- package/bundled/skills/tdd-assistant/SKILL.md +65 -0
- package/bundled/skills/{claude-code/tdd-assistant/SKILL.md → tdd-assistant/guide.md} +10 -10
- package/bundled/skills/{claude-code/tdd-assistant → tdd-assistant}/language-examples.md +3 -3
- package/bundled/skills/{claude-code/tdd-assistant → tdd-assistant}/tdd-workflow.md +2 -2
- package/bundled/skills/test-coverage-assistant/SKILL.md +63 -0
- package/bundled/skills/{claude-code/test-coverage-assistant/SKILL.md → test-coverage-assistant/guide.md} +39 -24
- package/bundled/skills/{claude-code/testing-guide → testing-guide}/SKILL.md +12 -7
- package/bundled/skills/{claude-code/testing-guide → testing-guide}/testing-pyramid.md +3 -3
- package/bundled/skills/testing-guide/testing-theory.md +2291 -0
- package/bundled/skills/tools/cline/.clinerules +79 -0
- package/bundled/skills/tools/cline/README.md +50 -0
- package/bundled/skills/tools/copilot/README.md +99 -0
- package/bundled/skills/tools/copilot/copilot-instructions.md +71 -0
- package/bundled/skills/tools/cursor/.cursorrules +101 -0
- package/bundled/skills/tools/cursor/README.md +50 -0
- package/bundled/skills/tools/windsurf/.windsurfrules +76 -0
- package/bundled/skills/tools/windsurf/README.md +51 -0
- package/bundled/skills/workflows/README.md +303 -0
- package/bundled/skills/workflows/code-review.workflow.yaml +186 -0
- package/bundled/skills/workflows/feature-dev.workflow.yaml +174 -0
- package/bundled/skills/workflows/integrated-flow.workflow.yaml +238 -0
- package/bundled/skills/workflows/large-codebase-analysis.workflow.yaml +226 -0
- package/bundled/skills/workflows/release.workflow.yaml +893 -0
- package/package.json +14 -1
- package/src/commands/agent.js +417 -0
- package/src/commands/ai-context.js +552 -0
- package/src/commands/check.js +196 -131
- package/src/commands/config.js +1262 -0
- package/src/commands/configure.js +3 -950
- package/src/commands/fix.js +53 -0
- package/src/commands/hitl.js +19 -0
- package/src/commands/init.js +320 -1027
- package/src/commands/list.js +1 -1
- package/src/commands/simulate.js +61 -0
- package/src/commands/spec.js +288 -0
- package/src/commands/start.js +373 -0
- package/src/commands/sweep.js +142 -0
- package/src/commands/update.js +136 -19
- package/src/commands/workflow.js +689 -0
- package/src/config/ai-agent-paths.js +292 -28
- package/src/core/constants.js +520 -0
- package/src/core/errors.js +398 -0
- package/src/core/manifest.js +474 -0
- package/src/core/paths.js +398 -0
- package/src/flows/init-flow.js +243 -0
- package/src/hitl/checkpoint.js +80 -0
- package/src/hitl/classifier.js +54 -0
- package/src/hitl/manager.js +88 -0
- package/src/i18n/messages.js +907 -99
- package/src/index.js +1 -0
- package/src/installers/integration-installer.js +237 -0
- package/src/installers/manifest-installer.js +131 -0
- package/src/installers/skills-installer.js +286 -0
- package/src/installers/standards-installer.js +193 -0
- package/src/missions/MissionManager.js +501 -0
- package/src/prompts/init.js +235 -135
- package/src/prompts/integrations.js +13 -1
- package/src/schemas/standard.schema.json +117 -0
- package/src/utils/agent-adapter.js +320 -0
- package/src/utils/agents-installer.js +393 -0
- package/src/utils/config-loader.js +47 -0
- package/src/utils/config-manager.js +108 -0
- package/src/utils/config-merger.js +47 -0
- package/src/utils/context-chunker.js +467 -0
- package/src/utils/copier.js +59 -99
- package/src/utils/github.js +22 -18
- package/src/utils/hasher.js +2 -16
- package/src/utils/inquirer-patch.js +98 -0
- package/src/utils/integration-generator.js +420 -110
- package/src/utils/reference-sync.js +69 -19
- package/src/utils/skills-installer.js +6 -3
- package/src/utils/standard-fixer.js +141 -0
- package/src/utils/standard-validator.js +329 -0
- package/src/utils/workflow-executor.js +886 -0
- package/src/utils/workflow-state.js +404 -0
- package/src/utils/workflows-installer.js +545 -0
- package/src/vibe/auto-sweep.js +349 -0
- package/src/vibe/micro-spec.js +428 -0
- package/standards-registry.json +429 -107
- package/bundled/locales/zh-CN/skills/claude-code/README.md +0 -174
- package/bundled/locales/zh-CN/skills/claude-code/test-coverage-assistant/SKILL.md +0 -282
- package/bundled/locales/zh-TW/skills/claude-code/README.md +0 -174
- package/bundled/skills/claude-code/README.md +0 -207
- package/bundled/skills/claude-code/commands/changelog.md +0 -57
- package/bundled/skills/claude-code/commands/derive-all.md +0 -214
- package/bundled/skills/claude-code/commands/derive-atdd.md +0 -177
- package/bundled/skills/claude-code/commands/derive-bdd.md +0 -158
- package/bundled/skills/claude-code/commands/derive-tdd.md +0 -259
- package/bundled/skills/claude-code/commands/docs.md +0 -75
- package/bundled/skills/claude-code/commands/release.md +0 -50
- package/bundled/skills/claude-code/commands/reverse-bdd.md +0 -264
- package/bundled/skills/claude-code/commands/reverse-spec.md +0 -185
- package/bundled/skills/claude-code/commands/reverse-tdd.md +0 -351
- package/bundled/skills/claude-code/commands/spec.md +0 -69
- package/bundled/skills/claude-code/methodology-system/integrated-flow.md +0 -322
- /package/bundled/skills/{claude-code/CONTRIBUTING.template.md → CONTRIBUTING.template.md} +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/checkin.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/commit.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/refactoring.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/ai → ai}/standards/testing.ai.yaml +0 -0
- /package/bundled/skills/{claude-code/project-structure-guide → project-structure-guide}/language-patterns.md +0 -0
|
@@ -0,0 +1,862 @@
|
|
|
1
|
+
# Accessibility Standards
|
|
2
|
+
|
|
3
|
+
> **Language**: English | [繁體中文](../locales/zh-TW/core/accessibility-standards.md)
|
|
4
|
+
|
|
5
|
+
**Version**: 1.0.0
|
|
6
|
+
**Last Updated**: 2026-01-29
|
|
7
|
+
**Applicability**: All software projects with user interfaces
|
|
8
|
+
**Scope**: universal
|
|
9
|
+
**Industry Standards**: WCAG 2.1/2.2, WAI-ARIA 1.2, Section 508
|
|
10
|
+
**References**: [w3.org](https://www.w3.org/WAI/WCAG21/quickref/)
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
|
|
16
|
+
This standard defines comprehensive guidelines for creating accessible software that can be used by people with diverse abilities. It aligns with international standards including WCAG 2.1 and supports compliance with accessibility laws worldwide.
|
|
17
|
+
|
|
18
|
+
**Reference Standards**:
|
|
19
|
+
- [WCAG 2.1](https://www.w3.org/WAI/WCAG21/quickref/) - Web Content Accessibility Guidelines
|
|
20
|
+
- [WCAG 2.2](https://www.w3.org/TR/WCAG22/) - Latest WCAG version (2023)
|
|
21
|
+
- [WAI-ARIA 1.2](https://www.w3.org/TR/wai-aria-1.2/) - Accessible Rich Internet Applications
|
|
22
|
+
- [ISO/IEC 25010:2011](https://www.iso.org/standard/35733.html) - Usability > Accessibility
|
|
23
|
+
- [Section 508](https://www.section508.gov/) - US Federal accessibility requirements
|
|
24
|
+
- [EN 301 549](https://www.etsi.org/deliver/etsi_en/301500_301599/301549/) - European accessibility standard
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Table of Contents
|
|
29
|
+
|
|
30
|
+
1. [Accessibility Principles (POUR)](#accessibility-principles-pour)
|
|
31
|
+
2. [WCAG Conformance Levels](#wcag-conformance-levels)
|
|
32
|
+
3. [Perceivable](#perceivable)
|
|
33
|
+
4. [Operable](#operable)
|
|
34
|
+
5. [Understandable](#understandable)
|
|
35
|
+
6. [Robust](#robust)
|
|
36
|
+
7. [ARIA Guidelines](#aria-guidelines)
|
|
37
|
+
8. [Keyboard Navigation](#keyboard-navigation)
|
|
38
|
+
9. [Color and Contrast](#color-and-contrast)
|
|
39
|
+
10. [Forms and Inputs](#forms-and-inputs)
|
|
40
|
+
11. [Media Accessibility](#media-accessibility)
|
|
41
|
+
12. [Testing and Validation](#testing-and-validation)
|
|
42
|
+
13. [Accessibility Checklist](#accessibility-checklist)
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Accessibility Principles (POUR)
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
50
|
+
│ WCAG 2.1 POUR Principles │
|
|
51
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
52
|
+
│ │
|
|
53
|
+
│ P - PERCEIVABLE │
|
|
54
|
+
│ ├── Users must be able to perceive the information │
|
|
55
|
+
│ ├── Text alternatives for non-text content │
|
|
56
|
+
│ ├── Captions and alternatives for multimedia │
|
|
57
|
+
│ └── Content adaptable and distinguishable │
|
|
58
|
+
│ │
|
|
59
|
+
│ O - OPERABLE │
|
|
60
|
+
│ ├── All functionality available via keyboard │
|
|
61
|
+
│ ├── Users have enough time to read and use content │
|
|
62
|
+
│ ├── Content doesn't cause seizures │
|
|
63
|
+
│ └── Users can navigate and find content │
|
|
64
|
+
│ │
|
|
65
|
+
│ U - UNDERSTANDABLE │
|
|
66
|
+
│ ├── Text is readable and understandable │
|
|
67
|
+
│ ├── Content appears and operates predictably │
|
|
68
|
+
│ └── Users are helped to avoid and correct mistakes │
|
|
69
|
+
│ │
|
|
70
|
+
│ R - ROBUST │
|
|
71
|
+
│ ├── Content compatible with current and future tools │
|
|
72
|
+
│ ├── Works with assistive technologies │
|
|
73
|
+
│ └── Valid, well-formed markup │
|
|
74
|
+
│ │
|
|
75
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## WCAG Conformance Levels
|
|
81
|
+
|
|
82
|
+
### Level Overview
|
|
83
|
+
|
|
84
|
+
| Level | Description | Required For |
|
|
85
|
+
|-------|-------------|--------------|
|
|
86
|
+
| **A** | Minimum accessibility | All projects |
|
|
87
|
+
| **AA** | Addresses major barriers | Legal compliance (most laws) |
|
|
88
|
+
| **AAA** | Highest level of accessibility | Specialized contexts |
|
|
89
|
+
|
|
90
|
+
### Compliance Requirements by Region
|
|
91
|
+
|
|
92
|
+
| Region | Law/Standard | Minimum Level |
|
|
93
|
+
|--------|--------------|---------------|
|
|
94
|
+
| **USA** | Section 508, ADA | WCAG 2.0 AA |
|
|
95
|
+
| **EU** | EN 301 549 | WCAG 2.1 AA |
|
|
96
|
+
| **UK** | Equality Act 2010 | WCAG 2.1 AA |
|
|
97
|
+
| **Canada** | AODA | WCAG 2.0 AA |
|
|
98
|
+
| **Australia** | DDA | WCAG 2.0 AA |
|
|
99
|
+
|
|
100
|
+
### Target: WCAG 2.1 Level AA
|
|
101
|
+
|
|
102
|
+
**Recommendation**: All projects should target **WCAG 2.1 Level AA** as the baseline, which covers:
|
|
103
|
+
- 30 Level A criteria (must have)
|
|
104
|
+
- 20 Level AA criteria (should have)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Perceivable
|
|
109
|
+
|
|
110
|
+
### 1.1 Text Alternatives
|
|
111
|
+
|
|
112
|
+
**Requirement**: Provide text alternatives for non-text content.
|
|
113
|
+
|
|
114
|
+
```html
|
|
115
|
+
<!-- ✅ Good: Meaningful alt text -->
|
|
116
|
+
<img src="chart.png" alt="Sales increased 25% from Q1 to Q2 2025">
|
|
117
|
+
|
|
118
|
+
<!-- ✅ Good: Decorative image (empty alt) -->
|
|
119
|
+
<img src="decorative-border.png" alt="" role="presentation">
|
|
120
|
+
|
|
121
|
+
<!-- ❌ Bad: Missing or generic alt -->
|
|
122
|
+
<img src="chart.png">
|
|
123
|
+
<img src="chart.png" alt="image">
|
|
124
|
+
<img src="chart.png" alt="chart.png">
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Alt Text Guidelines**:
|
|
128
|
+
|
|
129
|
+
| Image Type | Alt Text Approach |
|
|
130
|
+
|------------|-------------------|
|
|
131
|
+
| **Informative** | Describe the information conveyed |
|
|
132
|
+
| **Functional** | Describe the action (e.g., "Submit form") |
|
|
133
|
+
| **Decorative** | Use empty alt (`alt=""`) |
|
|
134
|
+
| **Complex** | Provide long description (via `aria-describedby`) |
|
|
135
|
+
| **Text in image** | Include all text in alt |
|
|
136
|
+
|
|
137
|
+
### 1.2 Time-Based Media
|
|
138
|
+
|
|
139
|
+
| Media Type | Requirements |
|
|
140
|
+
|------------|--------------|
|
|
141
|
+
| **Pre-recorded Audio** | Transcript |
|
|
142
|
+
| **Pre-recorded Video** | Captions + audio description |
|
|
143
|
+
| **Live Audio** | Real-time captions |
|
|
144
|
+
| **Live Video** | Real-time captions |
|
|
145
|
+
|
|
146
|
+
### 1.3 Adaptable Content
|
|
147
|
+
|
|
148
|
+
```html
|
|
149
|
+
<!-- ✅ Good: Semantic HTML -->
|
|
150
|
+
<nav aria-label="Main navigation">
|
|
151
|
+
<ul>
|
|
152
|
+
<li><a href="/">Home</a></li>
|
|
153
|
+
<li><a href="/about">About</a></li>
|
|
154
|
+
</ul>
|
|
155
|
+
</nav>
|
|
156
|
+
|
|
157
|
+
<main>
|
|
158
|
+
<article>
|
|
159
|
+
<h1>Article Title</h1>
|
|
160
|
+
<p>Content...</p>
|
|
161
|
+
</article>
|
|
162
|
+
</main>
|
|
163
|
+
|
|
164
|
+
<!-- ❌ Bad: Non-semantic markup -->
|
|
165
|
+
<div class="nav">
|
|
166
|
+
<div class="nav-item">Home</div>
|
|
167
|
+
<div class="nav-item">About</div>
|
|
168
|
+
</div>
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### 1.4 Distinguishable
|
|
172
|
+
|
|
173
|
+
**Color Contrast Requirements**:
|
|
174
|
+
|
|
175
|
+
| Element | Minimum Ratio (AA) | Enhanced Ratio (AAA) |
|
|
176
|
+
|---------|-------------------|----------------------|
|
|
177
|
+
| **Normal text** | 4.5:1 | 7:1 |
|
|
178
|
+
| **Large text (18px+ or 14px+ bold)** | 3:1 | 4.5:1 |
|
|
179
|
+
| **UI components & graphics** | 3:1 | N/A |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## Operable
|
|
184
|
+
|
|
185
|
+
### 2.1 Keyboard Accessible
|
|
186
|
+
|
|
187
|
+
**All functionality must be operable via keyboard.**
|
|
188
|
+
|
|
189
|
+
```html
|
|
190
|
+
<!-- ✅ Good: Focusable and keyboard operable -->
|
|
191
|
+
<button onclick="submitForm()">Submit</button>
|
|
192
|
+
|
|
193
|
+
<!-- ❌ Bad: Not keyboard accessible -->
|
|
194
|
+
<div onclick="submitForm()">Submit</div>
|
|
195
|
+
|
|
196
|
+
<!-- ✅ Good: Making div keyboard accessible (if button not possible) -->
|
|
197
|
+
<div
|
|
198
|
+
role="button"
|
|
199
|
+
tabindex="0"
|
|
200
|
+
onclick="submitForm()"
|
|
201
|
+
onkeydown="if(event.key === 'Enter' || event.key === ' ') submitForm()">
|
|
202
|
+
Submit
|
|
203
|
+
</div>
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 2.2 Enough Time
|
|
207
|
+
|
|
208
|
+
| Requirement | Implementation |
|
|
209
|
+
|-------------|----------------|
|
|
210
|
+
| **Timing adjustable** | Allow users to turn off, adjust, or extend time limits |
|
|
211
|
+
| **Auto-updating content** | Provide pause, stop, or hide controls |
|
|
212
|
+
| **Session timeout** | Warn before timeout, allow extension |
|
|
213
|
+
|
|
214
|
+
```javascript
|
|
215
|
+
// ✅ Good: Session timeout warning
|
|
216
|
+
const TIMEOUT_WARNING = 5 * 60 * 1000; // 5 minutes before timeout
|
|
217
|
+
const SESSION_TIMEOUT = 30 * 60 * 1000; // 30 minutes
|
|
218
|
+
|
|
219
|
+
setTimeout(() => {
|
|
220
|
+
const extend = confirm('Your session will expire in 5 minutes. Extend?');
|
|
221
|
+
if (extend) {
|
|
222
|
+
extendSession();
|
|
223
|
+
}
|
|
224
|
+
}, SESSION_TIMEOUT - TIMEOUT_WARNING);
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 2.3 Seizures and Physical Reactions
|
|
228
|
+
|
|
229
|
+
| Requirement | Limit |
|
|
230
|
+
|-------------|-------|
|
|
231
|
+
| **Flashing content** | No more than 3 flashes per second |
|
|
232
|
+
| **Animation** | Provide option to reduce motion |
|
|
233
|
+
|
|
234
|
+
```css
|
|
235
|
+
/* ✅ Good: Respect user's motion preference */
|
|
236
|
+
@media (prefers-reduced-motion: reduce) {
|
|
237
|
+
*,
|
|
238
|
+
*::before,
|
|
239
|
+
*::after {
|
|
240
|
+
animation-duration: 0.01ms !important;
|
|
241
|
+
animation-iteration-count: 1 !important;
|
|
242
|
+
transition-duration: 0.01ms !important;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### 2.4 Navigable
|
|
248
|
+
|
|
249
|
+
**Focus Management**:
|
|
250
|
+
|
|
251
|
+
```css
|
|
252
|
+
/* ✅ Good: Visible focus indicator */
|
|
253
|
+
:focus {
|
|
254
|
+
outline: 2px solid #005fcc;
|
|
255
|
+
outline-offset: 2px;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* ❌ Bad: Removing focus indicator */
|
|
259
|
+
:focus {
|
|
260
|
+
outline: none;
|
|
261
|
+
}
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
**Skip Links**:
|
|
265
|
+
|
|
266
|
+
```html
|
|
267
|
+
<!-- ✅ Good: Skip to main content link -->
|
|
268
|
+
<a href="#main-content" class="skip-link">Skip to main content</a>
|
|
269
|
+
|
|
270
|
+
<nav><!-- navigation --></nav>
|
|
271
|
+
|
|
272
|
+
<main id="main-content">
|
|
273
|
+
<!-- main content -->
|
|
274
|
+
</main>
|
|
275
|
+
|
|
276
|
+
<style>
|
|
277
|
+
.skip-link {
|
|
278
|
+
position: absolute;
|
|
279
|
+
top: -40px;
|
|
280
|
+
left: 0;
|
|
281
|
+
padding: 8px;
|
|
282
|
+
background: #000;
|
|
283
|
+
color: #fff;
|
|
284
|
+
}
|
|
285
|
+
.skip-link:focus {
|
|
286
|
+
top: 0;
|
|
287
|
+
}
|
|
288
|
+
</style>
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### 2.5 Input Modalities
|
|
292
|
+
|
|
293
|
+
| Requirement | Description |
|
|
294
|
+
|-------------|-------------|
|
|
295
|
+
| **Pointer gestures** | Complex gestures have simple alternatives |
|
|
296
|
+
| **Pointer cancellation** | Up-event activation, ability to abort |
|
|
297
|
+
| **Target size** | Minimum 44x44 CSS pixels for touch targets |
|
|
298
|
+
| **Motion actuation** | Can be disabled, has alternatives |
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## Understandable
|
|
303
|
+
|
|
304
|
+
### 3.1 Readable
|
|
305
|
+
|
|
306
|
+
```html
|
|
307
|
+
<!-- ✅ Good: Declare page language -->
|
|
308
|
+
<html lang="en">
|
|
309
|
+
|
|
310
|
+
<!-- ✅ Good: Mark language changes -->
|
|
311
|
+
<p>The French phrase <span lang="fr">c'est la vie</span> means "that's life".</p>
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### 3.2 Predictable
|
|
315
|
+
|
|
316
|
+
| Principle | Implementation |
|
|
317
|
+
|-----------|----------------|
|
|
318
|
+
| **On focus** | Don't change context on focus alone |
|
|
319
|
+
| **On input** | Warn before auto-submit or context change |
|
|
320
|
+
| **Consistent navigation** | Same navigation order across pages |
|
|
321
|
+
| **Consistent identification** | Same labels for same functions |
|
|
322
|
+
|
|
323
|
+
### 3.3 Input Assistance
|
|
324
|
+
|
|
325
|
+
**Error Identification**:
|
|
326
|
+
|
|
327
|
+
```html
|
|
328
|
+
<!-- ✅ Good: Clear error message with instructions -->
|
|
329
|
+
<label for="email">Email</label>
|
|
330
|
+
<input
|
|
331
|
+
type="email"
|
|
332
|
+
id="email"
|
|
333
|
+
aria-describedby="email-error"
|
|
334
|
+
aria-invalid="true">
|
|
335
|
+
<span id="email-error" class="error" role="alert">
|
|
336
|
+
Please enter a valid email address (e.g., user@example.com)
|
|
337
|
+
</span>
|
|
338
|
+
|
|
339
|
+
<!-- ❌ Bad: Generic or missing error message -->
|
|
340
|
+
<input type="email" class="invalid">
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
**Error Prevention**:
|
|
344
|
+
|
|
345
|
+
| Action Type | Required Prevention |
|
|
346
|
+
|-------------|---------------------|
|
|
347
|
+
| **Legal/financial** | Reversible, reviewable, or confirmable |
|
|
348
|
+
| **Data modification** | Recoverable (undo) or confirmable |
|
|
349
|
+
| **Exam/test submission** | Reviewable before submission |
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## Robust
|
|
354
|
+
|
|
355
|
+
### 4.1 Compatible
|
|
356
|
+
|
|
357
|
+
**Valid HTML**:
|
|
358
|
+
|
|
359
|
+
```html
|
|
360
|
+
<!-- ✅ Good: Valid, unique IDs -->
|
|
361
|
+
<label for="username">Username</label>
|
|
362
|
+
<input type="text" id="username" name="username">
|
|
363
|
+
|
|
364
|
+
<!-- ❌ Bad: Duplicate IDs -->
|
|
365
|
+
<input type="text" id="field">
|
|
366
|
+
<input type="text" id="field"> <!-- Duplicate! -->
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
**ARIA Usage**:
|
|
370
|
+
|
|
371
|
+
```html
|
|
372
|
+
<!-- ✅ Good: Valid ARIA attributes -->
|
|
373
|
+
<button aria-expanded="false" aria-controls="menu">
|
|
374
|
+
Menu
|
|
375
|
+
</button>
|
|
376
|
+
<ul id="menu" hidden>
|
|
377
|
+
<li>Item 1</li>
|
|
378
|
+
</ul>
|
|
379
|
+
|
|
380
|
+
<!-- ❌ Bad: Invalid ARIA values -->
|
|
381
|
+
<button aria-expanded="yes"> <!-- Should be "true" or "false" -->
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## ARIA Guidelines
|
|
387
|
+
|
|
388
|
+
### ARIA Rules
|
|
389
|
+
|
|
390
|
+
```
|
|
391
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
392
|
+
│ Five Rules of ARIA │
|
|
393
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
394
|
+
│ │
|
|
395
|
+
│ 1. Don't use ARIA if native HTML works │
|
|
396
|
+
│ <button> is better than <div role="button"> │
|
|
397
|
+
│ │
|
|
398
|
+
│ 2. Don't change native semantics │
|
|
399
|
+
│ Don't: <h1 role="button"> │
|
|
400
|
+
│ Do: <h1><button>Click</button></h1> │
|
|
401
|
+
│ │
|
|
402
|
+
│ 3. All interactive ARIA controls must be keyboard usable │
|
|
403
|
+
│ role="button" needs Enter/Space key handling │
|
|
404
|
+
│ │
|
|
405
|
+
│ 4. Don't use role="presentation" or aria-hidden="true" │
|
|
406
|
+
│ on focusable elements │
|
|
407
|
+
│ │
|
|
408
|
+
│ 5. All interactive elements must have accessible names │
|
|
409
|
+
│ Use aria-label, aria-labelledby, or visible label │
|
|
410
|
+
│ │
|
|
411
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### Common ARIA Patterns
|
|
415
|
+
|
|
416
|
+
**Live Regions**:
|
|
417
|
+
|
|
418
|
+
```html
|
|
419
|
+
<!-- Announce dynamic content changes -->
|
|
420
|
+
<div aria-live="polite" aria-atomic="true">
|
|
421
|
+
<!-- Content updates announced to screen readers -->
|
|
422
|
+
</div>
|
|
423
|
+
|
|
424
|
+
<!-- For urgent announcements -->
|
|
425
|
+
<div role="alert">
|
|
426
|
+
Error: Please correct the form fields.
|
|
427
|
+
</div>
|
|
428
|
+
```
|
|
429
|
+
|
|
430
|
+
**Dialogs/Modals**:
|
|
431
|
+
|
|
432
|
+
```html
|
|
433
|
+
<div
|
|
434
|
+
role="dialog"
|
|
435
|
+
aria-modal="true"
|
|
436
|
+
aria-labelledby="dialog-title"
|
|
437
|
+
aria-describedby="dialog-desc">
|
|
438
|
+
<h2 id="dialog-title">Confirm Action</h2>
|
|
439
|
+
<p id="dialog-desc">Are you sure you want to delete this item?</p>
|
|
440
|
+
<button>Cancel</button>
|
|
441
|
+
<button>Delete</button>
|
|
442
|
+
</div>
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
**Tabs**:
|
|
446
|
+
|
|
447
|
+
```html
|
|
448
|
+
<div role="tablist" aria-label="Product tabs">
|
|
449
|
+
<button role="tab" aria-selected="true" aria-controls="panel-1" id="tab-1">
|
|
450
|
+
Description
|
|
451
|
+
</button>
|
|
452
|
+
<button role="tab" aria-selected="false" aria-controls="panel-2" id="tab-2">
|
|
453
|
+
Reviews
|
|
454
|
+
</button>
|
|
455
|
+
</div>
|
|
456
|
+
<div role="tabpanel" id="panel-1" aria-labelledby="tab-1">
|
|
457
|
+
Description content...
|
|
458
|
+
</div>
|
|
459
|
+
<div role="tabpanel" id="panel-2" aria-labelledby="tab-2" hidden>
|
|
460
|
+
Reviews content...
|
|
461
|
+
</div>
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
---
|
|
465
|
+
|
|
466
|
+
## Keyboard Navigation
|
|
467
|
+
|
|
468
|
+
### Standard Keyboard Interactions
|
|
469
|
+
|
|
470
|
+
| Key | Action |
|
|
471
|
+
|-----|--------|
|
|
472
|
+
| **Tab** | Move to next focusable element |
|
|
473
|
+
| **Shift + Tab** | Move to previous focusable element |
|
|
474
|
+
| **Enter** | Activate link or button |
|
|
475
|
+
| **Space** | Activate button, toggle checkbox |
|
|
476
|
+
| **Arrow keys** | Navigate within components (tabs, menus, etc.) |
|
|
477
|
+
| **Escape** | Close modal, cancel action |
|
|
478
|
+
| **Home/End** | Jump to first/last item in list |
|
|
479
|
+
|
|
480
|
+
### Focus Order
|
|
481
|
+
|
|
482
|
+
```html
|
|
483
|
+
<!-- ✅ Good: Logical focus order follows visual order -->
|
|
484
|
+
<header>
|
|
485
|
+
<nav><!-- Focus 1, 2, 3 --></nav>
|
|
486
|
+
</header>
|
|
487
|
+
<main><!-- Focus 4, 5, 6 --></main>
|
|
488
|
+
<footer><!-- Focus 7, 8 --></footer>
|
|
489
|
+
|
|
490
|
+
<!-- ❌ Bad: Tabindex disrupting natural order -->
|
|
491
|
+
<button tabindex="3">Third</button>
|
|
492
|
+
<button tabindex="1">First</button>
|
|
493
|
+
<button tabindex="2">Second</button>
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
### Focus Management for SPAs
|
|
497
|
+
|
|
498
|
+
```javascript
|
|
499
|
+
// ✅ Good: Move focus after route change
|
|
500
|
+
function navigateToPage(pageId) {
|
|
501
|
+
// Change page content
|
|
502
|
+
updateContent(pageId);
|
|
503
|
+
|
|
504
|
+
// Move focus to main content heading
|
|
505
|
+
const heading = document.querySelector(`#${pageId} h1`);
|
|
506
|
+
heading.setAttribute('tabindex', '-1');
|
|
507
|
+
heading.focus();
|
|
508
|
+
|
|
509
|
+
// Announce to screen readers
|
|
510
|
+
announcePageChange(heading.textContent);
|
|
511
|
+
}
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
## Color and Contrast
|
|
517
|
+
|
|
518
|
+
### Contrast Requirements
|
|
519
|
+
|
|
520
|
+
| Element | WCAG AA | WCAG AAA |
|
|
521
|
+
|---------|---------|----------|
|
|
522
|
+
| **Normal text** | 4.5:1 | 7:1 |
|
|
523
|
+
| **Large text** | 3:1 | 4.5:1 |
|
|
524
|
+
| **UI components** | 3:1 | 3:1 |
|
|
525
|
+
| **Non-text graphics** | 3:1 | 3:1 |
|
|
526
|
+
|
|
527
|
+
### Color Blindness Considerations
|
|
528
|
+
|
|
529
|
+
```
|
|
530
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
531
|
+
│ Color Vision Deficiency Types │
|
|
532
|
+
├─────────────────────────────────────────────────────────────────┤
|
|
533
|
+
│ │
|
|
534
|
+
│ Type Affects Prevalence │
|
|
535
|
+
│ ───────────────────────────────────────────────────── │
|
|
536
|
+
│ Deuteranomaly Green ~6% of males │
|
|
537
|
+
│ Protanomaly Red ~1% of males │
|
|
538
|
+
│ Tritanomaly Blue <1% of population │
|
|
539
|
+
│ Achromatopsia All colors Very rare │
|
|
540
|
+
│ │
|
|
541
|
+
│ Guidelines: │
|
|
542
|
+
│ ├── Don't rely on color alone to convey information │
|
|
543
|
+
│ ├── Use patterns, icons, or text in addition to color │
|
|
544
|
+
│ ├── Test with color blindness simulators │
|
|
545
|
+
│ └── Avoid red/green combinations for critical info │
|
|
546
|
+
│ │
|
|
547
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
**Examples**:
|
|
551
|
+
|
|
552
|
+
```html
|
|
553
|
+
<!-- ❌ Bad: Color alone indicates status -->
|
|
554
|
+
<span class="status-green">Available</span>
|
|
555
|
+
<span class="status-red">Sold Out</span>
|
|
556
|
+
|
|
557
|
+
<!-- ✅ Good: Color + icon + text -->
|
|
558
|
+
<span class="status-green">
|
|
559
|
+
<span aria-hidden="true">✓</span> Available
|
|
560
|
+
</span>
|
|
561
|
+
<span class="status-red">
|
|
562
|
+
<span aria-hidden="true">✗</span> Sold Out
|
|
563
|
+
</span>
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
## Forms and Inputs
|
|
569
|
+
|
|
570
|
+
### Form Labeling
|
|
571
|
+
|
|
572
|
+
```html
|
|
573
|
+
<!-- ✅ Good: Explicit label association -->
|
|
574
|
+
<label for="email">Email address</label>
|
|
575
|
+
<input type="email" id="email" name="email">
|
|
576
|
+
|
|
577
|
+
<!-- ✅ Good: Using aria-label for icon-only buttons -->
|
|
578
|
+
<button aria-label="Search">
|
|
579
|
+
<svg aria-hidden="true"><!-- search icon --></svg>
|
|
580
|
+
</button>
|
|
581
|
+
|
|
582
|
+
<!-- ✅ Good: Using aria-labelledby for complex labels -->
|
|
583
|
+
<span id="label">Quantity</span>
|
|
584
|
+
<span id="desc">Maximum 10 items</span>
|
|
585
|
+
<input type="number" aria-labelledby="label" aria-describedby="desc">
|
|
586
|
+
|
|
587
|
+
<!-- ❌ Bad: Placeholder as only label -->
|
|
588
|
+
<input type="email" placeholder="Email">
|
|
589
|
+
```
|
|
590
|
+
|
|
591
|
+
### Form Validation
|
|
592
|
+
|
|
593
|
+
```html
|
|
594
|
+
<!-- ✅ Good: Accessible error handling -->
|
|
595
|
+
<form novalidate>
|
|
596
|
+
<div>
|
|
597
|
+
<label for="email">Email *</label>
|
|
598
|
+
<input
|
|
599
|
+
type="email"
|
|
600
|
+
id="email"
|
|
601
|
+
required
|
|
602
|
+
aria-required="true"
|
|
603
|
+
aria-invalid="false"
|
|
604
|
+
aria-describedby="email-hint email-error">
|
|
605
|
+
<span id="email-hint" class="hint">We'll never share your email</span>
|
|
606
|
+
<span id="email-error" class="error" hidden></span>
|
|
607
|
+
</div>
|
|
608
|
+
</form>
|
|
609
|
+
|
|
610
|
+
<script>
|
|
611
|
+
function validateEmail(input) {
|
|
612
|
+
const error = document.getElementById('email-error');
|
|
613
|
+
if (!input.validity.valid) {
|
|
614
|
+
input.setAttribute('aria-invalid', 'true');
|
|
615
|
+
error.textContent = 'Please enter a valid email address';
|
|
616
|
+
error.hidden = false;
|
|
617
|
+
} else {
|
|
618
|
+
input.setAttribute('aria-invalid', 'false');
|
|
619
|
+
error.hidden = true;
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
</script>
|
|
623
|
+
```
|
|
624
|
+
|
|
625
|
+
### Required Fields
|
|
626
|
+
|
|
627
|
+
```html
|
|
628
|
+
<!-- ✅ Good: Multiple indicators for required fields -->
|
|
629
|
+
<label for="name">
|
|
630
|
+
Full Name
|
|
631
|
+
<span aria-hidden="true">*</span>
|
|
632
|
+
<span class="sr-only">(required)</span>
|
|
633
|
+
</label>
|
|
634
|
+
<input type="text" id="name" required aria-required="true">
|
|
635
|
+
|
|
636
|
+
<p class="form-note" aria-hidden="true">* Required fields</p>
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
---
|
|
640
|
+
|
|
641
|
+
## Media Accessibility
|
|
642
|
+
|
|
643
|
+
### Images
|
|
644
|
+
|
|
645
|
+
| Type | Implementation |
|
|
646
|
+
|------|----------------|
|
|
647
|
+
| **Informative** | `alt="Description of information"` |
|
|
648
|
+
| **Decorative** | `alt="" role="presentation"` |
|
|
649
|
+
| **Functional** | `alt="Action description"` |
|
|
650
|
+
| **Complex** | `alt="Summary" + aria-describedby` |
|
|
651
|
+
|
|
652
|
+
### Video
|
|
653
|
+
|
|
654
|
+
```html
|
|
655
|
+
<!-- ✅ Good: Accessible video -->
|
|
656
|
+
<figure>
|
|
657
|
+
<video
|
|
658
|
+
controls
|
|
659
|
+
aria-describedby="video-desc">
|
|
660
|
+
<source src="video.mp4" type="video/mp4">
|
|
661
|
+
<track kind="captions" src="captions.vtt" srclang="en" label="English">
|
|
662
|
+
<track kind="descriptions" src="descriptions.vtt" srclang="en" label="Audio Descriptions">
|
|
663
|
+
</video>
|
|
664
|
+
<figcaption id="video-desc">
|
|
665
|
+
Product demonstration showing key features.
|
|
666
|
+
</figcaption>
|
|
667
|
+
</figure>
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
### Audio
|
|
671
|
+
|
|
672
|
+
```html
|
|
673
|
+
<!-- ✅ Good: Audio with transcript -->
|
|
674
|
+
<audio controls aria-describedby="audio-desc">
|
|
675
|
+
<source src="podcast.mp3" type="audio/mpeg">
|
|
676
|
+
</audio>
|
|
677
|
+
<details id="audio-desc">
|
|
678
|
+
<summary>View transcript</summary>
|
|
679
|
+
<p>Full transcript of the podcast episode...</p>
|
|
680
|
+
</details>
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
## Testing and Validation
|
|
686
|
+
|
|
687
|
+
### Automated Testing Tools
|
|
688
|
+
|
|
689
|
+
| Tool | Type | Coverage |
|
|
690
|
+
|------|------|----------|
|
|
691
|
+
| **axe-core** | Browser extension, CI | ~57% of WCAG issues |
|
|
692
|
+
| **WAVE** | Browser extension | Visual feedback |
|
|
693
|
+
| **Lighthouse** | Browser DevTools | Performance + a11y |
|
|
694
|
+
| **Pa11y** | CI/CD integration | Automated testing |
|
|
695
|
+
| **jest-axe** | Unit testing | Component testing |
|
|
696
|
+
|
|
697
|
+
### Manual Testing Checklist
|
|
698
|
+
|
|
699
|
+
```
|
|
700
|
+
Keyboard Testing:
|
|
701
|
+
□ Can reach all interactive elements with Tab
|
|
702
|
+
□ Focus indicator visible on all elements
|
|
703
|
+
□ Can activate all controls with Enter/Space
|
|
704
|
+
□ Can dismiss modals with Escape
|
|
705
|
+
□ Focus returns to trigger after modal closes
|
|
706
|
+
□ No keyboard traps
|
|
707
|
+
|
|
708
|
+
Screen Reader Testing:
|
|
709
|
+
□ All images have appropriate alt text
|
|
710
|
+
□ Form fields have labels
|
|
711
|
+
□ Headings structure is logical
|
|
712
|
+
□ Live regions announce updates
|
|
713
|
+
□ Links have descriptive text
|
|
714
|
+
□ Tables have headers
|
|
715
|
+
|
|
716
|
+
Visual Testing:
|
|
717
|
+
□ Text meets contrast requirements
|
|
718
|
+
□ Content readable at 200% zoom
|
|
719
|
+
□ No horizontal scrolling at 320px width
|
|
720
|
+
□ Focus indicators visible
|
|
721
|
+
□ Color not sole means of information
|
|
722
|
+
□ Content works in high contrast mode
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
### Screen Reader Testing
|
|
726
|
+
|
|
727
|
+
| Platform | Screen Reader |
|
|
728
|
+
|----------|---------------|
|
|
729
|
+
| **Windows** | NVDA (free), JAWS |
|
|
730
|
+
| **macOS** | VoiceOver |
|
|
731
|
+
| **iOS** | VoiceOver |
|
|
732
|
+
| **Android** | TalkBack |
|
|
733
|
+
|
|
734
|
+
### CI/CD Integration
|
|
735
|
+
|
|
736
|
+
```yaml
|
|
737
|
+
# Example: GitHub Actions accessibility testing
|
|
738
|
+
name: Accessibility
|
|
739
|
+
|
|
740
|
+
on: [push, pull_request]
|
|
741
|
+
|
|
742
|
+
jobs:
|
|
743
|
+
a11y:
|
|
744
|
+
runs-on: ubuntu-latest
|
|
745
|
+
steps:
|
|
746
|
+
- uses: actions/checkout@v4
|
|
747
|
+
|
|
748
|
+
- name: Install dependencies
|
|
749
|
+
run: npm ci
|
|
750
|
+
|
|
751
|
+
- name: Build
|
|
752
|
+
run: npm run build
|
|
753
|
+
|
|
754
|
+
- name: Run accessibility tests
|
|
755
|
+
run: npm run test:a11y
|
|
756
|
+
|
|
757
|
+
- name: Run Pa11y
|
|
758
|
+
uses: pa11y/pa11y-ci-action@v1
|
|
759
|
+
with:
|
|
760
|
+
sitemap: https://example.com/sitemap.xml
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
---
|
|
764
|
+
|
|
765
|
+
## Accessibility Checklist
|
|
766
|
+
|
|
767
|
+
### Development Checklist
|
|
768
|
+
|
|
769
|
+
```
|
|
770
|
+
Structure:
|
|
771
|
+
□ Semantic HTML elements used (header, nav, main, etc.)
|
|
772
|
+
□ Heading hierarchy is logical (h1 → h2 → h3)
|
|
773
|
+
□ Page has descriptive title
|
|
774
|
+
□ Language attribute set on html element
|
|
775
|
+
|
|
776
|
+
Images:
|
|
777
|
+
□ All images have alt attributes
|
|
778
|
+
□ Decorative images have empty alt
|
|
779
|
+
□ Complex images have extended descriptions
|
|
780
|
+
|
|
781
|
+
Keyboard:
|
|
782
|
+
□ All interactive elements keyboard accessible
|
|
783
|
+
□ Visible focus indicators
|
|
784
|
+
□ No keyboard traps
|
|
785
|
+
□ Skip links provided
|
|
786
|
+
|
|
787
|
+
Forms:
|
|
788
|
+
□ All inputs have associated labels
|
|
789
|
+
□ Required fields indicated
|
|
790
|
+
□ Error messages clear and specific
|
|
791
|
+
□ Form validation accessible
|
|
792
|
+
|
|
793
|
+
Color:
|
|
794
|
+
□ Text meets contrast requirements
|
|
795
|
+
□ Information not conveyed by color alone
|
|
796
|
+
□ Links distinguishable from text
|
|
797
|
+
|
|
798
|
+
Multimedia:
|
|
799
|
+
□ Videos have captions
|
|
800
|
+
□ Audio has transcripts
|
|
801
|
+
□ Media controls accessible
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
### Review Checklist
|
|
805
|
+
|
|
806
|
+
```
|
|
807
|
+
Before Release:
|
|
808
|
+
□ Automated accessibility scan completed (axe, Lighthouse)
|
|
809
|
+
□ Keyboard navigation tested
|
|
810
|
+
□ Screen reader tested (at least one)
|
|
811
|
+
□ Color contrast verified
|
|
812
|
+
□ Zoom to 200% tested
|
|
813
|
+
□ Mobile accessibility tested
|
|
814
|
+
□ Form accessibility verified
|
|
815
|
+
□ Error handling tested
|
|
816
|
+
```
|
|
817
|
+
|
|
818
|
+
---
|
|
819
|
+
|
|
820
|
+
## Related Standards
|
|
821
|
+
|
|
822
|
+
- [Documentation Writing Standards](documentation-writing-standards.md) - Accessible documentation
|
|
823
|
+
- [Code Review Checklist](code-review-checklist.md) - Accessibility review
|
|
824
|
+
- [Testing Standards](testing-standards.md) - Accessibility testing
|
|
825
|
+
- [Security Standards](security-standards.md) - Authentication accessibility
|
|
826
|
+
|
|
827
|
+
---
|
|
828
|
+
|
|
829
|
+
## References
|
|
830
|
+
|
|
831
|
+
### Standards
|
|
832
|
+
- [WCAG 2.1](https://www.w3.org/WAI/WCAG21/quickref/) - Quick reference
|
|
833
|
+
- [WCAG 2.2](https://www.w3.org/TR/WCAG22/) - Latest version
|
|
834
|
+
- [WAI-ARIA 1.2](https://www.w3.org/TR/wai-aria-1.2/) - ARIA specification
|
|
835
|
+
- [WAI-ARIA Authoring Practices](https://www.w3.org/WAI/ARIA/apg/) - Design patterns
|
|
836
|
+
|
|
837
|
+
### Tools
|
|
838
|
+
- [axe DevTools](https://www.deque.com/axe/) - Browser extension
|
|
839
|
+
- [WAVE](https://wave.webaim.org/) - Web accessibility evaluation
|
|
840
|
+
- [Contrast Checker](https://webaim.org/resources/contrastchecker/) - Color contrast tool
|
|
841
|
+
- [NVDA](https://www.nvaccess.org/) - Free screen reader for Windows
|
|
842
|
+
|
|
843
|
+
### Learning Resources
|
|
844
|
+
- [WebAIM](https://webaim.org/) - Web accessibility resources
|
|
845
|
+
- [A11Y Project](https://www.a11yproject.com/) - Community-driven resources
|
|
846
|
+
- [MDN Accessibility](https://developer.mozilla.org/en-US/docs/Web/Accessibility) - Developer guide
|
|
847
|
+
|
|
848
|
+
---
|
|
849
|
+
|
|
850
|
+
## Version History
|
|
851
|
+
|
|
852
|
+
| Version | Date | Changes |
|
|
853
|
+
|---------|------|---------|
|
|
854
|
+
| 1.0.0 | 2026-01-29 | Initial release: WCAG 2.1 coverage, POUR principles, ARIA guidelines, keyboard navigation, forms, testing |
|
|
855
|
+
|
|
856
|
+
---
|
|
857
|
+
|
|
858
|
+
## License
|
|
859
|
+
|
|
860
|
+
This standard is released under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/).
|
|
861
|
+
|
|
862
|
+
**Source**: [universal-dev-standards](https://github.com/AsiaOstrich/universal-dev-standards)
|