@shaykec/bridge 0.4.24 → 0.4.26
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/journeys/ai-engineer.yaml +34 -0
- package/journeys/backend-developer.yaml +36 -0
- package/journeys/business-analyst.yaml +37 -0
- package/journeys/devops-engineer.yaml +37 -0
- package/journeys/engineering-manager.yaml +44 -0
- package/journeys/frontend-developer.yaml +41 -0
- package/journeys/fullstack-developer.yaml +49 -0
- package/journeys/mobile-developer.yaml +42 -0
- package/journeys/product-manager.yaml +35 -0
- package/journeys/qa-engineer.yaml +37 -0
- package/journeys/ux-designer.yaml +43 -0
- package/modules/README.md +52 -0
- package/modules/accessibility-fundamentals/content.md +126 -0
- package/modules/accessibility-fundamentals/exercises.md +88 -0
- package/modules/accessibility-fundamentals/module.yaml +43 -0
- package/modules/accessibility-fundamentals/quick-ref.md +71 -0
- package/modules/accessibility-fundamentals/quiz.md +100 -0
- package/modules/accessibility-fundamentals/resources.md +29 -0
- package/modules/accessibility-fundamentals/walkthrough.md +80 -0
- package/modules/adr-writing/content.md +121 -0
- package/modules/adr-writing/exercises.md +81 -0
- package/modules/adr-writing/module.yaml +41 -0
- package/modules/adr-writing/quick-ref.md +57 -0
- package/modules/adr-writing/quiz.md +73 -0
- package/modules/adr-writing/resources.md +29 -0
- package/modules/adr-writing/walkthrough.md +64 -0
- package/modules/ai-agents/content.md +120 -0
- package/modules/ai-agents/exercises.md +82 -0
- package/modules/ai-agents/module.yaml +42 -0
- package/modules/ai-agents/quick-ref.md +60 -0
- package/modules/ai-agents/quiz.md +103 -0
- package/modules/ai-agents/resources.md +30 -0
- package/modules/ai-agents/walkthrough.md +85 -0
- package/modules/ai-assisted-research/content.md +136 -0
- package/modules/ai-assisted-research/exercises.md +80 -0
- package/modules/ai-assisted-research/module.yaml +42 -0
- package/modules/ai-assisted-research/quick-ref.md +67 -0
- package/modules/ai-assisted-research/quiz.md +73 -0
- package/modules/ai-assisted-research/resources.md +33 -0
- package/modules/ai-assisted-research/walkthrough.md +85 -0
- package/modules/ai-pair-programming/content.md +105 -0
- package/modules/ai-pair-programming/exercises.md +98 -0
- package/modules/ai-pair-programming/module.yaml +39 -0
- package/modules/ai-pair-programming/quick-ref.md +58 -0
- package/modules/ai-pair-programming/quiz.md +73 -0
- package/modules/ai-pair-programming/resources.md +34 -0
- package/modules/ai-pair-programming/walkthrough.md +117 -0
- package/modules/ai-test-generation/content.md +125 -0
- package/modules/ai-test-generation/exercises.md +98 -0
- package/modules/ai-test-generation/module.yaml +39 -0
- package/modules/ai-test-generation/quick-ref.md +65 -0
- package/modules/ai-test-generation/quiz.md +74 -0
- package/modules/ai-test-generation/resources.md +41 -0
- package/modules/ai-test-generation/walkthrough.md +100 -0
- package/modules/api-design/content.md +189 -0
- package/modules/api-design/exercises.md +84 -0
- package/modules/api-design/game.yaml +113 -0
- package/modules/api-design/module.yaml +45 -0
- package/modules/api-design/quick-ref.md +73 -0
- package/modules/api-design/quiz.md +100 -0
- package/modules/api-design/resources.md +55 -0
- package/modules/api-design/walkthrough.md +88 -0
- package/modules/clean-code/content.md +136 -0
- package/modules/clean-code/exercises.md +137 -0
- package/modules/clean-code/game.yaml +172 -0
- package/modules/clean-code/module.yaml +44 -0
- package/modules/clean-code/quick-ref.md +44 -0
- package/modules/clean-code/quiz.md +105 -0
- package/modules/clean-code/resources.md +40 -0
- package/modules/clean-code/walkthrough.md +78 -0
- package/modules/clean-code/workshop.yaml +149 -0
- package/modules/code-review/content.md +130 -0
- package/modules/code-review/exercises.md +95 -0
- package/modules/code-review/game.yaml +83 -0
- package/modules/code-review/module.yaml +42 -0
- package/modules/code-review/quick-ref.md +77 -0
- package/modules/code-review/quiz.md +105 -0
- package/modules/code-review/resources.md +40 -0
- package/modules/code-review/walkthrough.md +106 -0
- package/modules/daily-workflow/content.md +81 -0
- package/modules/daily-workflow/exercises.md +50 -0
- package/modules/daily-workflow/module.yaml +33 -0
- package/modules/daily-workflow/quick-ref.md +37 -0
- package/modules/daily-workflow/quiz.md +65 -0
- package/modules/daily-workflow/resources.md +38 -0
- package/modules/daily-workflow/walkthrough.md +83 -0
- package/modules/debugging-systematically/content.md +139 -0
- package/modules/debugging-systematically/exercises.md +91 -0
- package/modules/debugging-systematically/module.yaml +46 -0
- package/modules/debugging-systematically/quick-ref.md +59 -0
- package/modules/debugging-systematically/quiz.md +105 -0
- package/modules/debugging-systematically/resources.md +42 -0
- package/modules/debugging-systematically/walkthrough.md +84 -0
- package/modules/debugging-systematically/workshop.yaml +127 -0
- package/modules/demo-test/content.md +68 -0
- package/modules/demo-test/exercises.md +28 -0
- package/modules/demo-test/game.yaml +171 -0
- package/modules/demo-test/module.yaml +41 -0
- package/modules/demo-test/quick-ref.md +54 -0
- package/modules/demo-test/quiz.md +74 -0
- package/modules/demo-test/resources.md +21 -0
- package/modules/demo-test/walkthrough.md +122 -0
- package/modules/demo-test/workshop.yaml +31 -0
- package/modules/design-critique/content.md +93 -0
- package/modules/design-critique/exercises.md +71 -0
- package/modules/design-critique/module.yaml +41 -0
- package/modules/design-critique/quick-ref.md +63 -0
- package/modules/design-critique/quiz.md +73 -0
- package/modules/design-critique/resources.md +27 -0
- package/modules/design-critique/walkthrough.md +68 -0
- package/modules/design-patterns/content.md +335 -0
- package/modules/design-patterns/exercises.md +82 -0
- package/modules/design-patterns/game.yaml +55 -0
- package/modules/design-patterns/module.yaml +45 -0
- package/modules/design-patterns/quick-ref.md +44 -0
- package/modules/design-patterns/quiz.md +101 -0
- package/modules/design-patterns/resources.md +40 -0
- package/modules/design-patterns/walkthrough.md +64 -0
- package/modules/exploratory-testing/content.md +133 -0
- package/modules/exploratory-testing/exercises.md +88 -0
- package/modules/exploratory-testing/module.yaml +41 -0
- package/modules/exploratory-testing/quick-ref.md +68 -0
- package/modules/exploratory-testing/quiz.md +75 -0
- package/modules/exploratory-testing/resources.md +39 -0
- package/modules/exploratory-testing/walkthrough.md +87 -0
- package/modules/git/content.md +128 -0
- package/modules/git/exercises.md +53 -0
- package/modules/git/game.yaml +190 -0
- package/modules/git/module.yaml +44 -0
- package/modules/git/quick-ref.md +67 -0
- package/modules/git/quiz.md +89 -0
- package/modules/git/resources.md +49 -0
- package/modules/git/walkthrough.md +92 -0
- package/modules/git/workshop.yaml +145 -0
- package/modules/hiring-interviews/content.md +130 -0
- package/modules/hiring-interviews/exercises.md +88 -0
- package/modules/hiring-interviews/module.yaml +41 -0
- package/modules/hiring-interviews/quick-ref.md +68 -0
- package/modules/hiring-interviews/quiz.md +73 -0
- package/modules/hiring-interviews/resources.md +36 -0
- package/modules/hiring-interviews/walkthrough.md +75 -0
- package/modules/hooks/content.md +97 -0
- package/modules/hooks/exercises.md +69 -0
- package/modules/hooks/module.yaml +39 -0
- package/modules/hooks/quick-ref.md +93 -0
- package/modules/hooks/quiz.md +81 -0
- package/modules/hooks/resources.md +34 -0
- package/modules/hooks/walkthrough.md +105 -0
- package/modules/hooks/workshop.yaml +64 -0
- package/modules/incident-response/content.md +124 -0
- package/modules/incident-response/exercises.md +82 -0
- package/modules/incident-response/game.yaml +132 -0
- package/modules/incident-response/module.yaml +45 -0
- package/modules/incident-response/quick-ref.md +53 -0
- package/modules/incident-response/quiz.md +103 -0
- package/modules/incident-response/resources.md +40 -0
- package/modules/incident-response/walkthrough.md +82 -0
- package/modules/llm-fundamentals/content.md +114 -0
- package/modules/llm-fundamentals/exercises.md +83 -0
- package/modules/llm-fundamentals/module.yaml +42 -0
- package/modules/llm-fundamentals/quick-ref.md +64 -0
- package/modules/llm-fundamentals/quiz.md +103 -0
- package/modules/llm-fundamentals/resources.md +30 -0
- package/modules/llm-fundamentals/walkthrough.md +91 -0
- package/modules/one-on-ones/content.md +133 -0
- package/modules/one-on-ones/exercises.md +81 -0
- package/modules/one-on-ones/module.yaml +44 -0
- package/modules/one-on-ones/quick-ref.md +67 -0
- package/modules/one-on-ones/quiz.md +73 -0
- package/modules/one-on-ones/resources.md +37 -0
- package/modules/one-on-ones/walkthrough.md +69 -0
- package/modules/package.json +9 -0
- package/modules/prioritization-frameworks/content.md +130 -0
- package/modules/prioritization-frameworks/exercises.md +93 -0
- package/modules/prioritization-frameworks/module.yaml +41 -0
- package/modules/prioritization-frameworks/quick-ref.md +77 -0
- package/modules/prioritization-frameworks/quiz.md +73 -0
- package/modules/prioritization-frameworks/resources.md +32 -0
- package/modules/prioritization-frameworks/walkthrough.md +69 -0
- package/modules/prompt-engineering/content.md +123 -0
- package/modules/prompt-engineering/exercises.md +82 -0
- package/modules/prompt-engineering/game.yaml +101 -0
- package/modules/prompt-engineering/module.yaml +45 -0
- package/modules/prompt-engineering/quick-ref.md +65 -0
- package/modules/prompt-engineering/quiz.md +105 -0
- package/modules/prompt-engineering/resources.md +36 -0
- package/modules/prompt-engineering/walkthrough.md +81 -0
- package/modules/rag-fundamentals/content.md +111 -0
- package/modules/rag-fundamentals/exercises.md +80 -0
- package/modules/rag-fundamentals/module.yaml +45 -0
- package/modules/rag-fundamentals/quick-ref.md +58 -0
- package/modules/rag-fundamentals/quiz.md +75 -0
- package/modules/rag-fundamentals/resources.md +34 -0
- package/modules/rag-fundamentals/walkthrough.md +75 -0
- package/modules/react-fundamentals/content.md +140 -0
- package/modules/react-fundamentals/exercises.md +81 -0
- package/modules/react-fundamentals/game.yaml +145 -0
- package/modules/react-fundamentals/module.yaml +45 -0
- package/modules/react-fundamentals/quick-ref.md +62 -0
- package/modules/react-fundamentals/quiz.md +106 -0
- package/modules/react-fundamentals/resources.md +42 -0
- package/modules/react-fundamentals/walkthrough.md +89 -0
- package/modules/react-fundamentals/workshop.yaml +112 -0
- package/modules/react-native-fundamentals/content.md +141 -0
- package/modules/react-native-fundamentals/exercises.md +79 -0
- package/modules/react-native-fundamentals/module.yaml +42 -0
- package/modules/react-native-fundamentals/quick-ref.md +60 -0
- package/modules/react-native-fundamentals/quiz.md +61 -0
- package/modules/react-native-fundamentals/resources.md +24 -0
- package/modules/react-native-fundamentals/walkthrough.md +84 -0
- package/modules/registry.yaml +1650 -0
- package/modules/risk-management/content.md +162 -0
- package/modules/risk-management/exercises.md +86 -0
- package/modules/risk-management/module.yaml +41 -0
- package/modules/risk-management/quick-ref.md +82 -0
- package/modules/risk-management/quiz.md +73 -0
- package/modules/risk-management/resources.md +40 -0
- package/modules/risk-management/walkthrough.md +67 -0
- package/modules/running-effective-standups/content.md +119 -0
- package/modules/running-effective-standups/exercises.md +79 -0
- package/modules/running-effective-standups/module.yaml +40 -0
- package/modules/running-effective-standups/quick-ref.md +61 -0
- package/modules/running-effective-standups/quiz.md +73 -0
- package/modules/running-effective-standups/resources.md +36 -0
- package/modules/running-effective-standups/walkthrough.md +76 -0
- package/modules/solid-principles/content.md +154 -0
- package/modules/solid-principles/exercises.md +107 -0
- package/modules/solid-principles/module.yaml +42 -0
- package/modules/solid-principles/quick-ref.md +50 -0
- package/modules/solid-principles/quiz.md +102 -0
- package/modules/solid-principles/resources.md +39 -0
- package/modules/solid-principles/walkthrough.md +84 -0
- package/modules/sprint-planning/content.md +142 -0
- package/modules/sprint-planning/exercises.md +79 -0
- package/modules/sprint-planning/game.yaml +84 -0
- package/modules/sprint-planning/module.yaml +44 -0
- package/modules/sprint-planning/quick-ref.md +76 -0
- package/modules/sprint-planning/quiz.md +102 -0
- package/modules/sprint-planning/resources.md +39 -0
- package/modules/sprint-planning/walkthrough.md +75 -0
- package/modules/sql-fundamentals/content.md +160 -0
- package/modules/sql-fundamentals/exercises.md +87 -0
- package/modules/sql-fundamentals/game.yaml +105 -0
- package/modules/sql-fundamentals/module.yaml +45 -0
- package/modules/sql-fundamentals/quick-ref.md +53 -0
- package/modules/sql-fundamentals/quiz.md +103 -0
- package/modules/sql-fundamentals/resources.md +42 -0
- package/modules/sql-fundamentals/walkthrough.md +92 -0
- package/modules/sql-fundamentals/workshop.yaml +109 -0
- package/modules/stakeholder-communication/content.md +186 -0
- package/modules/stakeholder-communication/exercises.md +87 -0
- package/modules/stakeholder-communication/module.yaml +38 -0
- package/modules/stakeholder-communication/quick-ref.md +89 -0
- package/modules/stakeholder-communication/quiz.md +73 -0
- package/modules/stakeholder-communication/resources.md +41 -0
- package/modules/stakeholder-communication/walkthrough.md +74 -0
- package/modules/system-design/content.md +149 -0
- package/modules/system-design/exercises.md +83 -0
- package/modules/system-design/game.yaml +95 -0
- package/modules/system-design/module.yaml +46 -0
- package/modules/system-design/quick-ref.md +59 -0
- package/modules/system-design/quiz.md +102 -0
- package/modules/system-design/resources.md +46 -0
- package/modules/system-design/walkthrough.md +90 -0
- package/modules/team-topologies/content.md +166 -0
- package/modules/team-topologies/exercises.md +85 -0
- package/modules/team-topologies/module.yaml +41 -0
- package/modules/team-topologies/quick-ref.md +61 -0
- package/modules/team-topologies/quiz.md +101 -0
- package/modules/team-topologies/resources.md +37 -0
- package/modules/team-topologies/walkthrough.md +76 -0
- package/modules/technical-debt/content.md +111 -0
- package/modules/technical-debt/exercises.md +92 -0
- package/modules/technical-debt/module.yaml +39 -0
- package/modules/technical-debt/quick-ref.md +60 -0
- package/modules/technical-debt/quiz.md +73 -0
- package/modules/technical-debt/resources.md +25 -0
- package/modules/technical-debt/walkthrough.md +94 -0
- package/modules/technical-mentoring/content.md +128 -0
- package/modules/technical-mentoring/exercises.md +84 -0
- package/modules/technical-mentoring/module.yaml +41 -0
- package/modules/technical-mentoring/quick-ref.md +74 -0
- package/modules/technical-mentoring/quiz.md +73 -0
- package/modules/technical-mentoring/resources.md +33 -0
- package/modules/technical-mentoring/walkthrough.md +65 -0
- package/modules/test-strategy/content.md +136 -0
- package/modules/test-strategy/exercises.md +84 -0
- package/modules/test-strategy/game.yaml +99 -0
- package/modules/test-strategy/module.yaml +45 -0
- package/modules/test-strategy/quick-ref.md +66 -0
- package/modules/test-strategy/quiz.md +99 -0
- package/modules/test-strategy/resources.md +60 -0
- package/modules/test-strategy/walkthrough.md +97 -0
- package/modules/test-strategy/workshop.yaml +96 -0
- package/modules/typescript-fundamentals/content.md +127 -0
- package/modules/typescript-fundamentals/exercises.md +79 -0
- package/modules/typescript-fundamentals/game.yaml +111 -0
- package/modules/typescript-fundamentals/module.yaml +45 -0
- package/modules/typescript-fundamentals/quick-ref.md +55 -0
- package/modules/typescript-fundamentals/quiz.md +104 -0
- package/modules/typescript-fundamentals/resources.md +42 -0
- package/modules/typescript-fundamentals/walkthrough.md +71 -0
- package/modules/typescript-fundamentals/workshop.yaml +146 -0
- package/modules/user-story-mapping/content.md +123 -0
- package/modules/user-story-mapping/exercises.md +87 -0
- package/modules/user-story-mapping/module.yaml +41 -0
- package/modules/user-story-mapping/quick-ref.md +64 -0
- package/modules/user-story-mapping/quiz.md +73 -0
- package/modules/user-story-mapping/resources.md +29 -0
- package/modules/user-story-mapping/walkthrough.md +86 -0
- package/modules/writing-prds/content.md +133 -0
- package/modules/writing-prds/exercises.md +93 -0
- package/modules/writing-prds/game.yaml +83 -0
- package/modules/writing-prds/module.yaml +44 -0
- package/modules/writing-prds/quick-ref.md +77 -0
- package/modules/writing-prds/quiz.md +103 -0
- package/modules/writing-prds/resources.md +30 -0
- package/modules/writing-prds/walkthrough.md +87 -0
- package/package.json +5 -3
- package/src/server.js +17 -7
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
slug: ai-engineer
|
|
2
|
+
title: "AI/ML Engineer"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "From prompt engineering to building AI agents — harness LLMs in production systems."
|
|
5
|
+
icon: brain
|
|
6
|
+
tags: [ai, llm, agents, rag, prompt-engineering, ml]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 30
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Prompt Engineering"
|
|
12
|
+
description: "Master the art of communicating with AI models"
|
|
13
|
+
modules:
|
|
14
|
+
- prompt-engineering
|
|
15
|
+
|
|
16
|
+
- name: "LLM Fundamentals"
|
|
17
|
+
description: "Understand how large language models work under the hood"
|
|
18
|
+
modules:
|
|
19
|
+
- llm-fundamentals
|
|
20
|
+
- { slug: llm-evaluation, title: "LLM Evaluation & Benchmarking" }
|
|
21
|
+
|
|
22
|
+
- name: "RAG & Knowledge Systems"
|
|
23
|
+
description: "Ground AI responses in your own data"
|
|
24
|
+
modules:
|
|
25
|
+
- rag-fundamentals
|
|
26
|
+
- { slug: vector-databases, title: "Vector Databases & Embeddings" }
|
|
27
|
+
|
|
28
|
+
- name: "AI Agents & Workflows"
|
|
29
|
+
description: "Build autonomous agents that use tools and reason"
|
|
30
|
+
modules:
|
|
31
|
+
- ai-agents
|
|
32
|
+
- ai-pair-programming
|
|
33
|
+
- { slug: ai-safety, title: "AI Safety & Alignment" }
|
|
34
|
+
- { slug: ai-ops, title: "AI Ops — Monitoring & Deploying AI Systems" }
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
slug: backend-developer
|
|
2
|
+
title: "Backend Developer"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Design robust APIs, work with databases, and architect scalable systems."
|
|
5
|
+
icon: server
|
|
6
|
+
tags: [backend, api, sql, architecture, systems]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 30
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Language & Code Quality"
|
|
12
|
+
description: "Write clean, principled code from day one"
|
|
13
|
+
modules:
|
|
14
|
+
- typescript-fundamentals
|
|
15
|
+
- clean-code
|
|
16
|
+
|
|
17
|
+
- name: "Data & APIs"
|
|
18
|
+
description: "Databases and API design — the backbone of any backend"
|
|
19
|
+
modules:
|
|
20
|
+
- sql-fundamentals
|
|
21
|
+
- api-design
|
|
22
|
+
|
|
23
|
+
- name: "Architecture"
|
|
24
|
+
description: "Design systems that scale and evolve"
|
|
25
|
+
modules:
|
|
26
|
+
- solid-principles
|
|
27
|
+
- design-patterns
|
|
28
|
+
- system-design
|
|
29
|
+
|
|
30
|
+
- name: "Reliability & Operations"
|
|
31
|
+
description: "Debug, review, and respond when things go wrong"
|
|
32
|
+
modules:
|
|
33
|
+
- debugging-systematically
|
|
34
|
+
- code-review
|
|
35
|
+
- incident-response
|
|
36
|
+
- { slug: observability, title: "Observability & Monitoring" }
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
slug: business-analyst
|
|
2
|
+
title: "Business Analyst"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Bridge business needs and technical solutions — requirements, data analysis, and stakeholder alignment."
|
|
5
|
+
icon: bar-chart
|
|
6
|
+
tags: [business-analysis, requirements, data, stakeholders, process]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 28
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Requirements & Documentation"
|
|
12
|
+
description: "Capture, structure, and communicate what needs to be built"
|
|
13
|
+
modules:
|
|
14
|
+
- writing-prds
|
|
15
|
+
- user-story-mapping
|
|
16
|
+
- adr-writing
|
|
17
|
+
|
|
18
|
+
- name: "Data & SQL"
|
|
19
|
+
description: "Query data to inform decisions and validate requirements"
|
|
20
|
+
modules:
|
|
21
|
+
- sql-fundamentals
|
|
22
|
+
- { slug: data-visualization, title: "Data Visualization & Reporting" }
|
|
23
|
+
|
|
24
|
+
- name: "Stakeholder & Process"
|
|
25
|
+
description: "Align people, manage risk, and plan delivery"
|
|
26
|
+
modules:
|
|
27
|
+
- stakeholder-communication
|
|
28
|
+
- sprint-planning
|
|
29
|
+
- risk-management
|
|
30
|
+
- prioritization-frameworks
|
|
31
|
+
|
|
32
|
+
- name: "AI-Assisted Analysis"
|
|
33
|
+
description: "Accelerate research and analysis with AI tools"
|
|
34
|
+
modules:
|
|
35
|
+
- ai-assisted-research
|
|
36
|
+
- prompt-engineering
|
|
37
|
+
- { slug: process-modeling, title: "Business Process Modeling" }
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
slug: devops-engineer
|
|
2
|
+
title: "DevOps Engineer"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Automate, deploy, and operate — from version control to incident response."
|
|
5
|
+
icon: terminal
|
|
6
|
+
tags: [devops, git, ci-cd, infrastructure, monitoring]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 28
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Version Control Mastery"
|
|
12
|
+
description: "Git workflows and collaboration at scale"
|
|
13
|
+
modules:
|
|
14
|
+
- git
|
|
15
|
+
- code-review
|
|
16
|
+
|
|
17
|
+
- name: "Automation & CI/CD"
|
|
18
|
+
description: "Automate builds, tests, and deployments"
|
|
19
|
+
modules:
|
|
20
|
+
- { slug: ci-cd-pipelines, title: "CI/CD Pipelines" }
|
|
21
|
+
- { slug: infrastructure-as-code, title: "Infrastructure as Code" }
|
|
22
|
+
- test-strategy
|
|
23
|
+
|
|
24
|
+
- name: "Systems & Architecture"
|
|
25
|
+
description: "Design for reliability and scalability"
|
|
26
|
+
modules:
|
|
27
|
+
- system-design
|
|
28
|
+
- { slug: containerization, title: "Containerization (Docker & K8s)" }
|
|
29
|
+
- { slug: cloud-fundamentals, title: "Cloud Fundamentals (AWS/GCP/Azure)" }
|
|
30
|
+
|
|
31
|
+
- name: "Operations & Reliability"
|
|
32
|
+
description: "Monitor, debug, and respond to incidents"
|
|
33
|
+
modules:
|
|
34
|
+
- debugging-systematically
|
|
35
|
+
- incident-response
|
|
36
|
+
- { slug: observability, title: "Observability & Monitoring" }
|
|
37
|
+
- { slug: sre-practices, title: "SRE Practices & SLOs" }
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
slug: engineering-manager
|
|
2
|
+
title: "Engineering Manager"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Transition from individual contributor to engineering leader — people, process, and technical strategy."
|
|
5
|
+
icon: users
|
|
6
|
+
tags: [management, leadership, hiring, mentoring, process]
|
|
7
|
+
difficulty: intermediate-to-advanced
|
|
8
|
+
estimated_hours: 40
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Technical Foundation"
|
|
12
|
+
description: "Lead by example — stay sharp on code quality and architecture"
|
|
13
|
+
modules:
|
|
14
|
+
- code-review
|
|
15
|
+
- adr-writing
|
|
16
|
+
- system-design
|
|
17
|
+
|
|
18
|
+
- name: "People Skills"
|
|
19
|
+
description: "One-on-ones, mentoring, and building trust"
|
|
20
|
+
modules:
|
|
21
|
+
- one-on-ones
|
|
22
|
+
- technical-mentoring
|
|
23
|
+
- hiring-interviews
|
|
24
|
+
|
|
25
|
+
- name: "Team Operations"
|
|
26
|
+
description: "Run effective teams — standups, sprints, and communication"
|
|
27
|
+
modules:
|
|
28
|
+
- running-effective-standups
|
|
29
|
+
- sprint-planning
|
|
30
|
+
- stakeholder-communication
|
|
31
|
+
|
|
32
|
+
- name: "Team Strategy"
|
|
33
|
+
description: "Organize teams for delivery and growth"
|
|
34
|
+
modules:
|
|
35
|
+
- team-topologies
|
|
36
|
+
- risk-management
|
|
37
|
+
- incident-response
|
|
38
|
+
|
|
39
|
+
- name: "Scaling Impact"
|
|
40
|
+
description: "Drive organizational improvement"
|
|
41
|
+
modules:
|
|
42
|
+
- technical-debt
|
|
43
|
+
- { slug: engineering-metrics, title: "Engineering Metrics & OKRs" }
|
|
44
|
+
- { slug: tech-strategy, title: "Technical Strategy & Roadmaps" }
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
slug: frontend-developer
|
|
2
|
+
title: "Frontend Developer"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "From language fundamentals to production React apps — build modern, accessible web interfaces."
|
|
5
|
+
icon: code
|
|
6
|
+
tags: [frontend, web, react, javascript, typescript]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 35
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Language Foundations"
|
|
12
|
+
description: "Master TypeScript before diving into frameworks"
|
|
13
|
+
modules:
|
|
14
|
+
- typescript-fundamentals
|
|
15
|
+
- clean-code
|
|
16
|
+
|
|
17
|
+
- name: "Design Principles"
|
|
18
|
+
description: "Write maintainable, extensible code"
|
|
19
|
+
modules:
|
|
20
|
+
- solid-principles
|
|
21
|
+
- design-patterns
|
|
22
|
+
|
|
23
|
+
- name: "React Mastery"
|
|
24
|
+
description: "Components, hooks, state management, and the React mental model"
|
|
25
|
+
modules:
|
|
26
|
+
- react-fundamentals
|
|
27
|
+
- { slug: react-advanced-patterns, title: "React Advanced Patterns" }
|
|
28
|
+
|
|
29
|
+
- name: "Quality & Testing"
|
|
30
|
+
description: "Ship with confidence — testing strategy and accessibility"
|
|
31
|
+
modules:
|
|
32
|
+
- test-strategy
|
|
33
|
+
- accessibility-fundamentals
|
|
34
|
+
- { slug: frontend-testing, title: "Frontend Testing (Vitest + Playwright)" }
|
|
35
|
+
|
|
36
|
+
- name: "Professional Practice"
|
|
37
|
+
description: "Code review, debugging, and managing technical debt"
|
|
38
|
+
modules:
|
|
39
|
+
- code-review
|
|
40
|
+
- debugging-systematically
|
|
41
|
+
- technical-debt
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
slug: fullstack-developer
|
|
2
|
+
title: "Full-Stack Developer"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "End-to-end mastery — from databases to React UIs, APIs to deployment."
|
|
5
|
+
icon: layers
|
|
6
|
+
tags: [fullstack, frontend, backend, react, api, sql]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 50
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Foundations"
|
|
12
|
+
description: "The building blocks every full-stack developer needs"
|
|
13
|
+
modules:
|
|
14
|
+
- typescript-fundamentals
|
|
15
|
+
- clean-code
|
|
16
|
+
- git
|
|
17
|
+
|
|
18
|
+
- name: "Data Layer"
|
|
19
|
+
description: "Store, query, and expose data through APIs"
|
|
20
|
+
modules:
|
|
21
|
+
- sql-fundamentals
|
|
22
|
+
- api-design
|
|
23
|
+
|
|
24
|
+
- name: "Frontend"
|
|
25
|
+
description: "Build modern, accessible user interfaces"
|
|
26
|
+
modules:
|
|
27
|
+
- react-fundamentals
|
|
28
|
+
- accessibility-fundamentals
|
|
29
|
+
|
|
30
|
+
- name: "Architecture & Design"
|
|
31
|
+
description: "Patterns for code that lasts"
|
|
32
|
+
modules:
|
|
33
|
+
- solid-principles
|
|
34
|
+
- design-patterns
|
|
35
|
+
- system-design
|
|
36
|
+
|
|
37
|
+
- name: "Quality"
|
|
38
|
+
description: "Testing, code review, and debugging across the stack"
|
|
39
|
+
modules:
|
|
40
|
+
- test-strategy
|
|
41
|
+
- code-review
|
|
42
|
+
- debugging-systematically
|
|
43
|
+
|
|
44
|
+
- name: "Production Readiness"
|
|
45
|
+
description: "Manage complexity and respond to incidents"
|
|
46
|
+
modules:
|
|
47
|
+
- technical-debt
|
|
48
|
+
- incident-response
|
|
49
|
+
- { slug: ci-cd-pipelines, title: "CI/CD Pipelines" }
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
slug: mobile-developer
|
|
2
|
+
title: "Mobile Developer"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Build cross-platform mobile apps with React Native — from fundamentals to app store."
|
|
5
|
+
icon: smartphone
|
|
6
|
+
tags: [mobile, react-native, ios, android, cross-platform]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 35
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Language & Fundamentals"
|
|
12
|
+
description: "TypeScript and clean code — the foundation for React Native"
|
|
13
|
+
modules:
|
|
14
|
+
- typescript-fundamentals
|
|
15
|
+
- clean-code
|
|
16
|
+
|
|
17
|
+
- name: "React Core"
|
|
18
|
+
description: "Master React before going mobile"
|
|
19
|
+
modules:
|
|
20
|
+
- react-fundamentals
|
|
21
|
+
- solid-principles
|
|
22
|
+
|
|
23
|
+
- name: "React Native"
|
|
24
|
+
description: "Cross-platform mobile development"
|
|
25
|
+
modules:
|
|
26
|
+
- react-native-fundamentals
|
|
27
|
+
- { slug: mobile-navigation, title: "Mobile Navigation Patterns" }
|
|
28
|
+
- { slug: mobile-performance, title: "Mobile Performance Optimization" }
|
|
29
|
+
|
|
30
|
+
- name: "Quality & Testing"
|
|
31
|
+
description: "Test mobile apps effectively"
|
|
32
|
+
modules:
|
|
33
|
+
- test-strategy
|
|
34
|
+
- { slug: mobile-testing, title: "Mobile Testing (Detox + Maestro)" }
|
|
35
|
+
- accessibility-fundamentals
|
|
36
|
+
|
|
37
|
+
- name: "Ship It"
|
|
38
|
+
description: "From code review to the app store"
|
|
39
|
+
modules:
|
|
40
|
+
- code-review
|
|
41
|
+
- debugging-systematically
|
|
42
|
+
- { slug: app-store-deployment, title: "App Store Deployment" }
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
slug: product-manager
|
|
2
|
+
title: "Product Manager"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Define, prioritize, and ship products — from PRDs to AI-assisted research."
|
|
5
|
+
icon: target
|
|
6
|
+
tags: [product, prd, prioritization, research, stakeholders]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 25
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Product Fundamentals"
|
|
12
|
+
description: "Write clear requirements and understand your users"
|
|
13
|
+
modules:
|
|
14
|
+
- writing-prds
|
|
15
|
+
- user-story-mapping
|
|
16
|
+
|
|
17
|
+
- name: "Prioritization & Planning"
|
|
18
|
+
description: "Decide what to build and when"
|
|
19
|
+
modules:
|
|
20
|
+
- prioritization-frameworks
|
|
21
|
+
- sprint-planning
|
|
22
|
+
- risk-management
|
|
23
|
+
|
|
24
|
+
- name: "Communication"
|
|
25
|
+
description: "Align stakeholders and drive decisions"
|
|
26
|
+
modules:
|
|
27
|
+
- stakeholder-communication
|
|
28
|
+
- { slug: product-analytics, title: "Product Analytics & Metrics" }
|
|
29
|
+
|
|
30
|
+
- name: "AI-Powered Product Work"
|
|
31
|
+
description: "Use AI to accelerate research and decision-making"
|
|
32
|
+
modules:
|
|
33
|
+
- ai-assisted-research
|
|
34
|
+
- prompt-engineering
|
|
35
|
+
- { slug: competitive-analysis, title: "Competitive Analysis with AI" }
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
slug: qa-engineer
|
|
2
|
+
title: "QA Engineer"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "From test strategy to AI-powered testing — ensure software quality at every level."
|
|
5
|
+
icon: shield-check
|
|
6
|
+
tags: [testing, qa, automation, exploratory, ai-testing]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 30
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "Testing Foundations"
|
|
12
|
+
description: "Build a solid testing mindset and strategy"
|
|
13
|
+
modules:
|
|
14
|
+
- test-strategy
|
|
15
|
+
- clean-code
|
|
16
|
+
- debugging-systematically
|
|
17
|
+
|
|
18
|
+
- name: "Exploratory & Manual Testing"
|
|
19
|
+
description: "Find bugs humans miss — structured exploration"
|
|
20
|
+
modules:
|
|
21
|
+
- exploratory-testing
|
|
22
|
+
- user-story-mapping
|
|
23
|
+
- { slug: test-case-design, title: "Test Case Design Techniques" }
|
|
24
|
+
|
|
25
|
+
- name: "Automation & Tools"
|
|
26
|
+
description: "Automate what matters"
|
|
27
|
+
modules:
|
|
28
|
+
- typescript-fundamentals
|
|
29
|
+
- { slug: test-automation, title: "Test Automation Frameworks" }
|
|
30
|
+
- { slug: api-testing, title: "API Testing" }
|
|
31
|
+
|
|
32
|
+
- name: "AI-Powered Testing"
|
|
33
|
+
description: "Leverage AI for smarter, faster testing"
|
|
34
|
+
modules:
|
|
35
|
+
- ai-test-generation
|
|
36
|
+
- prompt-engineering
|
|
37
|
+
- { slug: visual-regression-testing, title: "Visual Regression Testing" }
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
slug: ux-designer
|
|
2
|
+
title: "UX Designer"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: "Design inclusive, user-centered experiences — from research to critique to accessible interfaces."
|
|
5
|
+
icon: palette
|
|
6
|
+
tags: [ux, design, accessibility, user-research, critique]
|
|
7
|
+
difficulty: beginner-to-advanced
|
|
8
|
+
estimated_hours: 30
|
|
9
|
+
|
|
10
|
+
stages:
|
|
11
|
+
- name: "User Research"
|
|
12
|
+
description: "Understand your users before designing for them"
|
|
13
|
+
modules:
|
|
14
|
+
- user-story-mapping
|
|
15
|
+
- { slug: user-research-methods, title: "User Research Methods" }
|
|
16
|
+
- { slug: personas-and-journeys, title: "Personas & User Journeys" }
|
|
17
|
+
|
|
18
|
+
- name: "Design Foundations"
|
|
19
|
+
description: "Core design principles and critique skills"
|
|
20
|
+
modules:
|
|
21
|
+
- design-critique
|
|
22
|
+
- { slug: information-architecture, title: "Information Architecture" }
|
|
23
|
+
- { slug: interaction-design, title: "Interaction Design Patterns" }
|
|
24
|
+
|
|
25
|
+
- name: "Accessibility"
|
|
26
|
+
description: "Design for everyone — WCAG compliance and inclusive design"
|
|
27
|
+
modules:
|
|
28
|
+
- accessibility-fundamentals
|
|
29
|
+
- { slug: inclusive-design, title: "Inclusive Design Practices" }
|
|
30
|
+
|
|
31
|
+
- name: "Prototyping & Validation"
|
|
32
|
+
description: "Test your designs before building them"
|
|
33
|
+
modules:
|
|
34
|
+
- { slug: prototyping, title: "Prototyping & Wireframing" }
|
|
35
|
+
- { slug: usability-testing, title: "Usability Testing" }
|
|
36
|
+
- writing-prds
|
|
37
|
+
|
|
38
|
+
- name: "Design Operations"
|
|
39
|
+
description: "Scale design across teams and products"
|
|
40
|
+
modules:
|
|
41
|
+
- stakeholder-communication
|
|
42
|
+
- { slug: design-systems, title: "Design Systems" }
|
|
43
|
+
- { slug: design-handoff, title: "Design-to-Development Handoff" }
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# @shaykec/modules
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@shaykec/modules)
|
|
4
|
+
|
|
5
|
+
Built-in learning modules that ship with Socrates. These are always available and serve as reference implementations for the module format.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @shaykec/modules
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Built-in Modules
|
|
12
|
+
|
|
13
|
+
| Module | Slug | Difficulty | Capabilities |
|
|
14
|
+
|--------|------|-----------|-------------|
|
|
15
|
+
| Git - Version Control Fundamentals | `git` | Beginner | content, walkthrough, exercises, quiz |
|
|
16
|
+
| Claude Code Hooks | `hooks` | Intermediate | content |
|
|
17
|
+
| A Day with Claude Code | `daily-workflow` | Beginner | content (narrative) |
|
|
18
|
+
|
|
19
|
+
## Module Format
|
|
20
|
+
|
|
21
|
+
Every module is a directory containing:
|
|
22
|
+
|
|
23
|
+
| File | Required | Purpose |
|
|
24
|
+
|------|----------|---------|
|
|
25
|
+
| `module.yaml` | Yes | Metadata, XP values, triggers, visuals config |
|
|
26
|
+
| `content.md` | Yes | Reference content (the "textbook") |
|
|
27
|
+
| `walkthrough.md` | No | Step-by-step Socratic guided lesson |
|
|
28
|
+
| `exercises.md` | No | Hands-on exercises with validation |
|
|
29
|
+
| `quiz.md` | No | Multiple choice with explanations |
|
|
30
|
+
| `quick-ref.md` | No | Cheat sheet / command reference |
|
|
31
|
+
|
|
32
|
+
## Module Sources
|
|
33
|
+
|
|
34
|
+
The registry scans three locations and merges them:
|
|
35
|
+
|
|
36
|
+
| Source | Location | Purpose |
|
|
37
|
+
|--------|----------|---------|
|
|
38
|
+
| Built-in | `packages/modules/` | Ships with Socrates |
|
|
39
|
+
| Installed packs | `~/.socrates/modules/<pack>/` | Git repos installed by the user |
|
|
40
|
+
| Local custom | `~/.socrates/modules/local/` | User-authored modules |
|
|
41
|
+
|
|
42
|
+
## Authoring New Modules
|
|
43
|
+
|
|
44
|
+
Use `/teach:author <topic>` in Claude Code for guided creation, or scaffold manually:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
socrates author init my-pack
|
|
48
|
+
socrates author add my-pack/my-module
|
|
49
|
+
socrates author validate my-pack
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
See the [root README](../../README.md) for the full module.yaml schema and authoring guide.
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# Accessibility — WCAG Fundamentals for Designers
|
|
2
|
+
|
|
3
|
+
<!-- hint:slides topic="Accessibility: WCAG POUR principles, conformance levels, color contrast, keyboard navigation, semantic HTML, and ARIA" slides="6" -->
|
|
4
|
+
|
|
5
|
+
## Why Accessibility Matters
|
|
6
|
+
|
|
7
|
+
Accessibility (a11y) ensures products work for people with disabilities—including motor, cognitive, visual, and auditory. It's also:
|
|
8
|
+
|
|
9
|
+
- **Legal** — Laws (ADA, Section 508, EU accessibility acts) require compliance.
|
|
10
|
+
- **Ethical** — Equal access is a right.
|
|
11
|
+
- **Business** — Larger audience, better SEO, often better UX for everyone.
|
|
12
|
+
|
|
13
|
+
## WCAG POUR Principles
|
|
14
|
+
|
|
15
|
+
WCAG 2.1 organizes guidelines under four principles (POUR):
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart TD
|
|
19
|
+
P[WCAG 2.1]
|
|
20
|
+
P --> P1[Perceivable]
|
|
21
|
+
P --> P2[Operable]
|
|
22
|
+
P --> P3[Understandable]
|
|
23
|
+
P --> P4[Robust]
|
|
24
|
+
P1 --> P1A[Info & UI presentable to users]
|
|
25
|
+
P2 --> P2A[UI operable by all]
|
|
26
|
+
P3 --> P3A[Info & UI understandable]
|
|
27
|
+
P4 --> P4A[Content interpretable by assistive tech]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
| Principle | Meaning |
|
|
31
|
+
|-----------|---------|
|
|
32
|
+
| **Perceivable** | Information and UI must be presentable to users in ways they can perceive (text alternatives, captions, color not sole indicator). |
|
|
33
|
+
| **Operable** | UI must be operable by everyone (keyboard, enough time, no seizure-inducing content). |
|
|
34
|
+
| **Understandable** | Content and operation must be understandable (readable, predictable, input assistance). |
|
|
35
|
+
| **Robust** | Content must be robust enough for assistive technologies (valid markup, correct roles). |
|
|
36
|
+
|
|
37
|
+
## Conformance Levels
|
|
38
|
+
|
|
39
|
+
| Level | Description |
|
|
40
|
+
|-------|-------------|
|
|
41
|
+
| **A** | Minimum—must satisfy to be accessible at all. |
|
|
42
|
+
| **AA** | Target for most sites—addresses major barriers. Legal compliance often requires AA. |
|
|
43
|
+
| **AAA** | Highest—enhanced accessibility. Not always achievable for all content. |
|
|
44
|
+
|
|
45
|
+
**Practical target:** AA for text, UI, and media. Consider AAA for critical flows.
|
|
46
|
+
|
|
47
|
+
## Color Contrast
|
|
48
|
+
|
|
49
|
+
- **Normal text:** 4.5:1 contrast ratio (AA); 7:1 for AAA.
|
|
50
|
+
- **Large text (18pt+ or 14pt+ bold):** 3:1 (AA); 4.5:1 (AAA).
|
|
51
|
+
- **UI components:** 3:1 against adjacent colors.
|
|
52
|
+
|
|
53
|
+
Use tools like WebAIM Contrast Checker or browser DevTools to verify.
|
|
54
|
+
|
|
55
|
+
## Keyboard Navigation
|
|
56
|
+
|
|
57
|
+
- All interactive elements must be reachable via **Tab**.
|
|
58
|
+
- Focus order should follow visual order.
|
|
59
|
+
- Focus must be visible (focus ring).
|
|
60
|
+
- No keyboard traps.
|
|
61
|
+
- Skip links and landmarks help keyboard users navigate quickly.
|
|
62
|
+
|
|
63
|
+
## Screen Reader Basics
|
|
64
|
+
|
|
65
|
+
Screen readers (NVDA, JAWS, VoiceOver) announce:
|
|
66
|
+
- Headings and structure
|
|
67
|
+
- Links and buttons
|
|
68
|
+
- Form labels and errors
|
|
69
|
+
- Live regions (dynamic updates)
|
|
70
|
+
|
|
71
|
+
**Design implications:** Use semantic HTML, meaningful labels, and avoid "click here."
|
|
72
|
+
|
|
73
|
+
## Semantic HTML
|
|
74
|
+
|
|
75
|
+
Use the right element for the job:
|
|
76
|
+
|
|
77
|
+
| Use | Element |
|
|
78
|
+
|-----|---------|
|
|
79
|
+
| Headings | `<h1>`–`<h6>` |
|
|
80
|
+
| Links | `<a href="...">` |
|
|
81
|
+
| Buttons | `<button>` |
|
|
82
|
+
| Forms | `<label>`, `<input>`, `<select>` |
|
|
83
|
+
| Landmarks | `<header>`, `<main>`, `<nav>`, `<footer>`, `<article>`, `<aside>` |
|
|
84
|
+
|
|
85
|
+
Semantic HTML gives structure without extra ARIA in many cases.
|
|
86
|
+
|
|
87
|
+
## ARIA: Roles, States, and Properties
|
|
88
|
+
|
|
89
|
+
ARIA (Accessible Rich Internet Applications) fills gaps when HTML isn't enough:
|
|
90
|
+
|
|
91
|
+
- **Roles** — `role="button"`, `role="dialog"`, `role="tablist"`
|
|
92
|
+
- **States** — `aria-expanded`, `aria-selected`, `aria-checked`
|
|
93
|
+
- **Properties** — `aria-label`, `aria-describedby`, `aria-labelledby`
|
|
94
|
+
|
|
95
|
+
### When NOT to Use ARIA
|
|
96
|
+
|
|
97
|
+
- Prefer native HTML when it exists (`<button>` > `role="button"` on a `<div>`).
|
|
98
|
+
- Don't use ARIA to fix bad semantics—fix the HTML first.
|
|
99
|
+
- Avoid redundant ARIA (e.g., `aria-label` on a visible `<button>` with text—usually unnecessary).
|
|
100
|
+
|
|
101
|
+
## Focus Management
|
|
102
|
+
|
|
103
|
+
- **Modals:** Trap focus inside; return focus on close.
|
|
104
|
+
- **Dynamic content:** Move focus to new content when it appears (e.g., after form submit).
|
|
105
|
+
- **Single-page apps:** Ensure route changes update announcements (e.g., `aria-live` or heading updates).
|
|
106
|
+
|
|
107
|
+
## Alt Text Guidelines
|
|
108
|
+
|
|
109
|
+
- **Informative images:** Describe the content or function. Be concise.
|
|
110
|
+
- **Decorative images:** `alt=""` (empty) so screen readers skip them.
|
|
111
|
+
- **Complex images:** Provide longer description (e.g., `longdesc` or nearby text).
|
|
112
|
+
|
|
113
|
+
## Testing Tools
|
|
114
|
+
|
|
115
|
+
| Tool | What It Helps With |
|
|
116
|
+
|------|--------------------|
|
|
117
|
+
| **axe DevTools** | Automated WCAG audits in browser |
|
|
118
|
+
| **Lighthouse** | Accessibility audit + performance |
|
|
119
|
+
| **WAVE** | Visual feedback on a11y issues |
|
|
120
|
+
| **Screen readers** | NVDA (Windows), VoiceOver (macOS/iOS), TalkBack (Android) |
|
|
121
|
+
|
|
122
|
+
**Rule:** Automated tools catch ~30% of issues. Manual testing with keyboard and screen reader is essential.
|
|
123
|
+
|
|
124
|
+
## Summary
|
|
125
|
+
|
|
126
|
+
Design for POUR: perceivable, operable, understandable, robust. Target WCAG AA. Ensure color contrast (4.5:1), keyboard access, semantic HTML, and sensible ARIA. Test with real users and assistive tech—automated tools are only the first step.
|