tapps-agents 3.5.40__py3-none-any.whl → 3.6.0__py3-none-any.whl
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.
- tapps_agents/__init__.py +2 -2
- tapps_agents/agents/__init__.py +22 -22
- tapps_agents/agents/analyst/__init__.py +5 -5
- tapps_agents/agents/architect/__init__.py +5 -5
- tapps_agents/agents/architect/agent.py +1033 -1033
- tapps_agents/agents/architect/pattern_detector.py +75 -75
- tapps_agents/agents/cleanup/__init__.py +7 -7
- tapps_agents/agents/cleanup/agent.py +445 -445
- tapps_agents/agents/debugger/__init__.py +7 -7
- tapps_agents/agents/debugger/agent.py +310 -310
- tapps_agents/agents/debugger/error_analyzer.py +437 -437
- tapps_agents/agents/designer/__init__.py +5 -5
- tapps_agents/agents/designer/agent.py +786 -786
- tapps_agents/agents/designer/visual_designer.py +638 -638
- tapps_agents/agents/documenter/__init__.py +7 -7
- tapps_agents/agents/documenter/agent.py +531 -531
- tapps_agents/agents/documenter/doc_generator.py +472 -472
- tapps_agents/agents/documenter/doc_validator.py +393 -393
- tapps_agents/agents/documenter/framework_doc_updater.py +493 -493
- tapps_agents/agents/enhancer/__init__.py +7 -7
- tapps_agents/agents/evaluator/__init__.py +7 -7
- tapps_agents/agents/evaluator/agent.py +443 -443
- tapps_agents/agents/evaluator/priority_evaluator.py +641 -641
- tapps_agents/agents/evaluator/quality_analyzer.py +147 -147
- tapps_agents/agents/evaluator/report_generator.py +344 -344
- tapps_agents/agents/evaluator/usage_analyzer.py +192 -192
- tapps_agents/agents/evaluator/workflow_analyzer.py +189 -189
- tapps_agents/agents/implementer/__init__.py +7 -7
- tapps_agents/agents/implementer/agent.py +798 -798
- tapps_agents/agents/implementer/auto_fix.py +1119 -1119
- tapps_agents/agents/implementer/code_generator.py +73 -73
- tapps_agents/agents/improver/__init__.py +1 -1
- tapps_agents/agents/improver/agent.py +753 -753
- tapps_agents/agents/ops/__init__.py +1 -1
- tapps_agents/agents/ops/agent.py +619 -619
- tapps_agents/agents/ops/dependency_analyzer.py +600 -600
- tapps_agents/agents/orchestrator/__init__.py +5 -5
- tapps_agents/agents/orchestrator/agent.py +522 -522
- tapps_agents/agents/planner/__init__.py +7 -7
- tapps_agents/agents/planner/agent.py +1127 -1127
- tapps_agents/agents/reviewer/__init__.py +24 -24
- tapps_agents/agents/reviewer/agent.py +3513 -3513
- tapps_agents/agents/reviewer/aggregator.py +213 -213
- tapps_agents/agents/reviewer/batch_review.py +448 -448
- tapps_agents/agents/reviewer/cache.py +443 -443
- tapps_agents/agents/reviewer/context7_enhancer.py +630 -630
- tapps_agents/agents/reviewer/context_detector.py +203 -203
- tapps_agents/agents/reviewer/docker_compose_validator.py +158 -158
- tapps_agents/agents/reviewer/dockerfile_validator.py +176 -176
- tapps_agents/agents/reviewer/error_handling.py +126 -126
- tapps_agents/agents/reviewer/feedback_generator.py +490 -490
- tapps_agents/agents/reviewer/influxdb_validator.py +316 -316
- tapps_agents/agents/reviewer/issue_tracking.py +169 -169
- tapps_agents/agents/reviewer/library_detector.py +295 -295
- tapps_agents/agents/reviewer/library_patterns.py +268 -268
- tapps_agents/agents/reviewer/maintainability_scorer.py +593 -593
- tapps_agents/agents/reviewer/metric_strategies.py +276 -276
- tapps_agents/agents/reviewer/mqtt_validator.py +160 -160
- tapps_agents/agents/reviewer/output_enhancer.py +105 -105
- tapps_agents/agents/reviewer/pattern_detector.py +241 -241
- tapps_agents/agents/reviewer/performance_scorer.py +357 -357
- tapps_agents/agents/reviewer/phased_review.py +516 -516
- tapps_agents/agents/reviewer/progressive_review.py +435 -435
- tapps_agents/agents/reviewer/react_scorer.py +331 -331
- tapps_agents/agents/reviewer/score_constants.py +228 -228
- tapps_agents/agents/reviewer/score_validator.py +507 -507
- tapps_agents/agents/reviewer/scorer_registry.py +373 -373
- tapps_agents/agents/reviewer/scoring.py +1566 -1566
- tapps_agents/agents/reviewer/service_discovery.py +534 -534
- tapps_agents/agents/reviewer/tools/__init__.py +41 -41
- tapps_agents/agents/reviewer/tools/parallel_executor.py +581 -581
- tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -250
- tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -284
- tapps_agents/agents/reviewer/typescript_scorer.py +1142 -1142
- tapps_agents/agents/reviewer/validation.py +208 -208
- tapps_agents/agents/reviewer/websocket_validator.py +132 -132
- tapps_agents/agents/tester/__init__.py +7 -7
- tapps_agents/agents/tester/accessibility_auditor.py +309 -309
- tapps_agents/agents/tester/agent.py +1080 -1080
- tapps_agents/agents/tester/batch_generator.py +54 -54
- tapps_agents/agents/tester/context_learner.py +51 -51
- tapps_agents/agents/tester/coverage_analyzer.py +386 -386
- tapps_agents/agents/tester/coverage_test_generator.py +290 -290
- tapps_agents/agents/tester/debug_enhancer.py +238 -238
- tapps_agents/agents/tester/device_emulator.py +241 -241
- tapps_agents/agents/tester/integration_generator.py +62 -62
- tapps_agents/agents/tester/network_recorder.py +300 -300
- tapps_agents/agents/tester/performance_monitor.py +320 -320
- tapps_agents/agents/tester/test_fixer.py +316 -316
- tapps_agents/agents/tester/test_generator.py +632 -632
- tapps_agents/agents/tester/trace_manager.py +234 -234
- tapps_agents/agents/tester/visual_regression.py +291 -291
- tapps_agents/analysis/pattern_detector.py +36 -36
- tapps_agents/beads/hydration.py +213 -213
- tapps_agents/beads/parse.py +32 -32
- tapps_agents/beads/specs.py +206 -206
- tapps_agents/cli/__init__.py +9 -9
- tapps_agents/cli/__main__.py +8 -8
- tapps_agents/cli/base.py +478 -478
- tapps_agents/cli/command_classifier.py +72 -72
- tapps_agents/cli/commands/__init__.py +2 -2
- tapps_agents/cli/commands/analyst.py +173 -173
- tapps_agents/cli/commands/architect.py +109 -109
- tapps_agents/cli/commands/cleanup_agent.py +92 -92
- tapps_agents/cli/commands/common.py +126 -126
- tapps_agents/cli/commands/debugger.py +90 -90
- tapps_agents/cli/commands/designer.py +112 -112
- tapps_agents/cli/commands/documenter.py +136 -136
- tapps_agents/cli/commands/enhancer.py +110 -110
- tapps_agents/cli/commands/evaluator.py +255 -255
- tapps_agents/cli/commands/health.py +665 -665
- tapps_agents/cli/commands/implementer.py +301 -301
- tapps_agents/cli/commands/improver.py +91 -91
- tapps_agents/cli/commands/knowledge.py +111 -111
- tapps_agents/cli/commands/learning.py +172 -172
- tapps_agents/cli/commands/observability.py +283 -283
- tapps_agents/cli/commands/ops.py +135 -135
- tapps_agents/cli/commands/orchestrator.py +116 -116
- tapps_agents/cli/commands/planner.py +237 -237
- tapps_agents/cli/commands/reviewer.py +1872 -1872
- tapps_agents/cli/commands/status.py +285 -285
- tapps_agents/cli/commands/task.py +227 -219
- tapps_agents/cli/commands/tester.py +191 -191
- tapps_agents/cli/commands/top_level.py +3586 -3586
- tapps_agents/cli/feedback.py +936 -936
- tapps_agents/cli/formatters.py +608 -608
- tapps_agents/cli/help/__init__.py +7 -7
- tapps_agents/cli/help/static_help.py +425 -425
- tapps_agents/cli/network_detection.py +110 -110
- tapps_agents/cli/output_compactor.py +274 -274
- tapps_agents/cli/parsers/__init__.py +2 -2
- tapps_agents/cli/parsers/analyst.py +186 -186
- tapps_agents/cli/parsers/architect.py +167 -167
- tapps_agents/cli/parsers/cleanup_agent.py +228 -228
- tapps_agents/cli/parsers/debugger.py +116 -116
- tapps_agents/cli/parsers/designer.py +182 -182
- tapps_agents/cli/parsers/documenter.py +134 -134
- tapps_agents/cli/parsers/enhancer.py +113 -113
- tapps_agents/cli/parsers/evaluator.py +213 -213
- tapps_agents/cli/parsers/implementer.py +168 -168
- tapps_agents/cli/parsers/improver.py +132 -132
- tapps_agents/cli/parsers/ops.py +159 -159
- tapps_agents/cli/parsers/orchestrator.py +98 -98
- tapps_agents/cli/parsers/planner.py +145 -145
- tapps_agents/cli/parsers/reviewer.py +462 -462
- tapps_agents/cli/parsers/tester.py +124 -124
- tapps_agents/cli/progress_heartbeat.py +254 -254
- tapps_agents/cli/streaming_progress.py +336 -336
- tapps_agents/cli/utils/__init__.py +6 -6
- tapps_agents/cli/utils/agent_lifecycle.py +48 -48
- tapps_agents/cli/utils/error_formatter.py +82 -82
- tapps_agents/cli/utils/error_recovery.py +188 -188
- tapps_agents/cli/utils/output_handler.py +59 -59
- tapps_agents/cli/utils/prompt_enhancer.py +319 -319
- tapps_agents/cli/validators/__init__.py +9 -9
- tapps_agents/cli/validators/command_validator.py +81 -81
- tapps_agents/context7/__init__.py +112 -112
- tapps_agents/context7/agent_integration.py +869 -869
- tapps_agents/context7/analytics.py +382 -382
- tapps_agents/context7/analytics_dashboard.py +299 -299
- tapps_agents/context7/async_cache.py +681 -681
- tapps_agents/context7/backup_client.py +958 -958
- tapps_agents/context7/cache_locking.py +194 -194
- tapps_agents/context7/cache_metadata.py +214 -214
- tapps_agents/context7/cache_prewarm.py +488 -488
- tapps_agents/context7/cache_structure.py +168 -168
- tapps_agents/context7/cache_warming.py +604 -604
- tapps_agents/context7/circuit_breaker.py +376 -376
- tapps_agents/context7/cleanup.py +461 -461
- tapps_agents/context7/commands.py +858 -858
- tapps_agents/context7/credential_validation.py +276 -276
- tapps_agents/context7/cross_reference_resolver.py +168 -168
- tapps_agents/context7/cross_references.py +424 -424
- tapps_agents/context7/doc_manager.py +225 -225
- tapps_agents/context7/fuzzy_matcher.py +369 -369
- tapps_agents/context7/kb_cache.py +404 -404
- tapps_agents/context7/language_detector.py +219 -219
- tapps_agents/context7/library_detector.py +725 -725
- tapps_agents/context7/lookup.py +738 -738
- tapps_agents/context7/metadata.py +258 -258
- tapps_agents/context7/refresh_queue.py +300 -300
- tapps_agents/context7/security.py +373 -373
- tapps_agents/context7/staleness_policies.py +278 -278
- tapps_agents/context7/tiles_integration.py +47 -47
- tapps_agents/continuous_bug_fix/__init__.py +20 -20
- tapps_agents/continuous_bug_fix/bug_finder.py +306 -306
- tapps_agents/continuous_bug_fix/bug_fix_coordinator.py +177 -177
- tapps_agents/continuous_bug_fix/commit_manager.py +178 -178
- tapps_agents/continuous_bug_fix/continuous_bug_fixer.py +322 -322
- tapps_agents/continuous_bug_fix/proactive_bug_finder.py +285 -285
- tapps_agents/core/__init__.py +298 -298
- tapps_agents/core/adaptive_cache_config.py +432 -432
- tapps_agents/core/agent_base.py +647 -647
- tapps_agents/core/agent_cache.py +466 -466
- tapps_agents/core/agent_learning.py +1865 -1865
- tapps_agents/core/analytics_dashboard.py +563 -563
- tapps_agents/core/analytics_enhancements.py +597 -597
- tapps_agents/core/anonymization.py +274 -274
- tapps_agents/core/artifact_context_builder.py +293 -0
- tapps_agents/core/ast_parser.py +228 -228
- tapps_agents/core/async_file_ops.py +402 -402
- tapps_agents/core/best_practice_consultant.py +299 -299
- tapps_agents/core/brownfield_analyzer.py +299 -299
- tapps_agents/core/brownfield_review.py +541 -541
- tapps_agents/core/browser_controller.py +513 -513
- tapps_agents/core/capability_registry.py +418 -418
- tapps_agents/core/change_impact_analyzer.py +190 -190
- tapps_agents/core/checkpoint_manager.py +377 -377
- tapps_agents/core/code_generator.py +329 -329
- tapps_agents/core/code_validator.py +276 -276
- tapps_agents/core/command_registry.py +327 -327
- tapps_agents/core/config.py +33 -0
- tapps_agents/core/context_gathering/__init__.py +2 -2
- tapps_agents/core/context_gathering/repository_explorer.py +28 -28
- tapps_agents/core/context_intelligence/__init__.py +2 -2
- tapps_agents/core/context_intelligence/relevance_scorer.py +24 -24
- tapps_agents/core/context_intelligence/token_budget_manager.py +27 -27
- tapps_agents/core/context_manager.py +240 -240
- tapps_agents/core/cursor_feedback_monitor.py +146 -146
- tapps_agents/core/cursor_verification.py +290 -290
- tapps_agents/core/customization_loader.py +280 -280
- tapps_agents/core/customization_schema.py +260 -260
- tapps_agents/core/customization_template.py +238 -238
- tapps_agents/core/debug_logger.py +124 -124
- tapps_agents/core/design_validator.py +298 -298
- tapps_agents/core/diagram_generator.py +226 -226
- tapps_agents/core/docker_utils.py +232 -232
- tapps_agents/core/document_generator.py +617 -617
- tapps_agents/core/domain_detector.py +30 -30
- tapps_agents/core/error_envelope.py +454 -454
- tapps_agents/core/error_handler.py +270 -270
- tapps_agents/core/estimation_tracker.py +189 -189
- tapps_agents/core/eval_prompt_engine.py +116 -116
- tapps_agents/core/evaluation_base.py +119 -119
- tapps_agents/core/evaluation_models.py +320 -320
- tapps_agents/core/evaluation_orchestrator.py +225 -225
- tapps_agents/core/evaluators/__init__.py +7 -7
- tapps_agents/core/evaluators/architectural_evaluator.py +205 -205
- tapps_agents/core/evaluators/behavioral_evaluator.py +160 -160
- tapps_agents/core/evaluators/performance_profile_evaluator.py +160 -160
- tapps_agents/core/evaluators/security_posture_evaluator.py +148 -148
- tapps_agents/core/evaluators/spec_compliance_evaluator.py +181 -181
- tapps_agents/core/exceptions.py +107 -107
- tapps_agents/core/expert_config_generator.py +293 -293
- tapps_agents/core/export_schema.py +202 -202
- tapps_agents/core/external_feedback_models.py +102 -102
- tapps_agents/core/external_feedback_storage.py +213 -213
- tapps_agents/core/fallback_strategy.py +314 -314
- tapps_agents/core/feedback_analyzer.py +162 -162
- tapps_agents/core/feedback_collector.py +178 -178
- tapps_agents/core/git_operations.py +445 -445
- tapps_agents/core/hardware_profiler.py +151 -151
- tapps_agents/core/instructions.py +324 -324
- tapps_agents/core/io_guardrails.py +69 -69
- tapps_agents/core/issue_manifest.py +249 -249
- tapps_agents/core/issue_schema.py +139 -139
- tapps_agents/core/json_utils.py +128 -128
- tapps_agents/core/knowledge_graph.py +446 -446
- tapps_agents/core/language_detector.py +296 -296
- tapps_agents/core/learning_confidence.py +242 -242
- tapps_agents/core/learning_dashboard.py +246 -246
- tapps_agents/core/learning_decision.py +384 -384
- tapps_agents/core/learning_explainability.py +578 -578
- tapps_agents/core/learning_export.py +287 -287
- tapps_agents/core/learning_integration.py +228 -228
- tapps_agents/core/llm_behavior.py +232 -232
- tapps_agents/core/long_duration_support.py +786 -786
- tapps_agents/core/mcp_setup.py +106 -106
- tapps_agents/core/memory_integration.py +396 -396
- tapps_agents/core/meta_learning.py +666 -666
- tapps_agents/core/module_path_sanitizer.py +199 -199
- tapps_agents/core/multi_agent_orchestrator.py +382 -382
- tapps_agents/core/network_errors.py +125 -125
- tapps_agents/core/nfr_validator.py +336 -336
- tapps_agents/core/offline_mode.py +158 -158
- tapps_agents/core/output_contracts.py +300 -300
- tapps_agents/core/output_formatter.py +300 -300
- tapps_agents/core/path_normalizer.py +174 -174
- tapps_agents/core/path_validator.py +322 -322
- tapps_agents/core/pattern_library.py +250 -250
- tapps_agents/core/performance_benchmark.py +301 -301
- tapps_agents/core/performance_monitor.py +184 -184
- tapps_agents/core/playwright_mcp_controller.py +771 -771
- tapps_agents/core/policy_loader.py +135 -135
- tapps_agents/core/progress.py +166 -166
- tapps_agents/core/project_profile.py +354 -354
- tapps_agents/core/project_type_detector.py +454 -454
- tapps_agents/core/prompt_base.py +223 -223
- tapps_agents/core/prompt_learning/__init__.py +2 -2
- tapps_agents/core/prompt_learning/learning_loop.py +24 -24
- tapps_agents/core/prompt_learning/project_prompt_store.py +25 -25
- tapps_agents/core/prompt_learning/skills_prompt_analyzer.py +35 -35
- tapps_agents/core/prompt_optimization/__init__.py +6 -6
- tapps_agents/core/prompt_optimization/ab_tester.py +114 -114
- tapps_agents/core/prompt_optimization/correlation_analyzer.py +160 -160
- tapps_agents/core/prompt_optimization/progressive_refiner.py +129 -129
- tapps_agents/core/prompt_optimization/prompt_library.py +37 -37
- tapps_agents/core/requirements_evaluator.py +431 -431
- tapps_agents/core/resource_aware_executor.py +449 -449
- tapps_agents/core/resource_monitor.py +343 -343
- tapps_agents/core/resume_handler.py +298 -298
- tapps_agents/core/retry_handler.py +197 -197
- tapps_agents/core/review_checklists.py +479 -479
- tapps_agents/core/role_loader.py +201 -201
- tapps_agents/core/role_template_loader.py +201 -201
- tapps_agents/core/runtime_mode.py +60 -60
- tapps_agents/core/security_scanner.py +342 -342
- tapps_agents/core/skill_agent_registry.py +194 -194
- tapps_agents/core/skill_integration.py +208 -208
- tapps_agents/core/skill_loader.py +492 -492
- tapps_agents/core/skill_template.py +341 -341
- tapps_agents/core/skill_validator.py +478 -478
- tapps_agents/core/stack_analyzer.py +35 -35
- tapps_agents/core/startup.py +174 -174
- tapps_agents/core/storage_manager.py +397 -397
- tapps_agents/core/storage_models.py +166 -166
- tapps_agents/core/story_evaluator.py +410 -410
- tapps_agents/core/subprocess_utils.py +170 -170
- tapps_agents/core/task_duration.py +296 -296
- tapps_agents/core/task_memory.py +582 -582
- tapps_agents/core/task_state.py +226 -226
- tapps_agents/core/tech_stack_priorities.py +208 -208
- tapps_agents/core/temp_directory.py +194 -194
- tapps_agents/core/template_merger.py +600 -600
- tapps_agents/core/template_selector.py +280 -280
- tapps_agents/core/test_generator.py +286 -286
- tapps_agents/core/tiered_context.py +253 -253
- tapps_agents/core/token_monitor.py +345 -345
- tapps_agents/core/traceability.py +254 -254
- tapps_agents/core/trajectory_tracker.py +50 -50
- tapps_agents/core/unicode_safe.py +143 -143
- tapps_agents/core/unified_cache_config.py +170 -170
- tapps_agents/core/unified_state.py +324 -324
- tapps_agents/core/validate_cursor_setup.py +237 -237
- tapps_agents/core/validation_registry.py +136 -136
- tapps_agents/core/validators/__init__.py +4 -4
- tapps_agents/core/validators/python_validator.py +87 -87
- tapps_agents/core/verification_agent.py +90 -90
- tapps_agents/core/visual_feedback.py +644 -644
- tapps_agents/core/workflow_validator.py +197 -197
- tapps_agents/core/worktree.py +367 -367
- tapps_agents/docker/__init__.py +10 -10
- tapps_agents/docker/analyzer.py +186 -186
- tapps_agents/docker/debugger.py +229 -229
- tapps_agents/docker/error_patterns.py +216 -216
- tapps_agents/epic/__init__.py +22 -22
- tapps_agents/epic/beads_sync.py +115 -115
- tapps_agents/epic/markdown_sync.py +105 -105
- tapps_agents/epic/models.py +96 -96
- tapps_agents/experts/__init__.py +163 -163
- tapps_agents/experts/agent_integration.py +243 -243
- tapps_agents/experts/auto_generator.py +331 -331
- tapps_agents/experts/base_expert.py +536 -536
- tapps_agents/experts/builtin_registry.py +261 -261
- tapps_agents/experts/business_metrics.py +565 -565
- tapps_agents/experts/cache.py +266 -266
- tapps_agents/experts/confidence_breakdown.py +306 -306
- tapps_agents/experts/confidence_calculator.py +336 -336
- tapps_agents/experts/confidence_metrics.py +236 -236
- tapps_agents/experts/domain_config.py +311 -311
- tapps_agents/experts/domain_detector.py +550 -550
- tapps_agents/experts/domain_utils.py +84 -84
- tapps_agents/experts/expert_config.py +113 -113
- tapps_agents/experts/expert_engine.py +465 -465
- tapps_agents/experts/expert_registry.py +744 -744
- tapps_agents/experts/expert_synthesizer.py +70 -70
- tapps_agents/experts/governance.py +197 -197
- tapps_agents/experts/history_logger.py +312 -312
- tapps_agents/experts/knowledge/README.md +180 -180
- tapps_agents/experts/knowledge/accessibility/accessible-forms.md +331 -331
- tapps_agents/experts/knowledge/accessibility/aria-patterns.md +344 -344
- tapps_agents/experts/knowledge/accessibility/color-contrast.md +285 -285
- tapps_agents/experts/knowledge/accessibility/keyboard-navigation.md +332 -332
- tapps_agents/experts/knowledge/accessibility/screen-readers.md +282 -282
- tapps_agents/experts/knowledge/accessibility/semantic-html.md +355 -355
- tapps_agents/experts/knowledge/accessibility/testing-accessibility.md +369 -369
- tapps_agents/experts/knowledge/accessibility/wcag-2.1.md +296 -296
- tapps_agents/experts/knowledge/accessibility/wcag-2.2.md +211 -211
- tapps_agents/experts/knowledge/agent-learning/best-practices.md +715 -715
- tapps_agents/experts/knowledge/agent-learning/pattern-extraction.md +282 -282
- tapps_agents/experts/knowledge/agent-learning/prompt-optimization.md +320 -320
- tapps_agents/experts/knowledge/ai-frameworks/model-optimization.md +90 -90
- tapps_agents/experts/knowledge/ai-frameworks/openvino-patterns.md +260 -260
- tapps_agents/experts/knowledge/api-design-integration/api-gateway-patterns.md +309 -309
- tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +521 -521
- tapps_agents/experts/knowledge/api-design-integration/api-versioning.md +421 -421
- tapps_agents/experts/knowledge/api-design-integration/async-protocol-patterns.md +61 -61
- tapps_agents/experts/knowledge/api-design-integration/contract-testing.md +221 -221
- tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +489 -489
- tapps_agents/experts/knowledge/api-design-integration/fastapi-patterns.md +360 -360
- tapps_agents/experts/knowledge/api-design-integration/fastapi-testing.md +262 -262
- tapps_agents/experts/knowledge/api-design-integration/graphql-patterns.md +582 -582
- tapps_agents/experts/knowledge/api-design-integration/grpc-best-practices.md +499 -499
- tapps_agents/experts/knowledge/api-design-integration/mqtt-patterns.md +455 -455
- tapps_agents/experts/knowledge/api-design-integration/rate-limiting.md +507 -507
- tapps_agents/experts/knowledge/api-design-integration/restful-api-design.md +618 -618
- tapps_agents/experts/knowledge/api-design-integration/websocket-patterns.md +480 -480
- tapps_agents/experts/knowledge/cloud-infrastructure/cloud-native-patterns.md +175 -175
- tapps_agents/experts/knowledge/cloud-infrastructure/container-health-checks.md +261 -261
- tapps_agents/experts/knowledge/cloud-infrastructure/containerization.md +222 -222
- tapps_agents/experts/knowledge/cloud-infrastructure/cost-optimization.md +122 -122
- tapps_agents/experts/knowledge/cloud-infrastructure/disaster-recovery.md +153 -153
- tapps_agents/experts/knowledge/cloud-infrastructure/dockerfile-patterns.md +285 -285
- tapps_agents/experts/knowledge/cloud-infrastructure/infrastructure-as-code.md +187 -187
- tapps_agents/experts/knowledge/cloud-infrastructure/kubernetes-patterns.md +253 -253
- tapps_agents/experts/knowledge/cloud-infrastructure/multi-cloud-strategies.md +155 -155
- tapps_agents/experts/knowledge/cloud-infrastructure/serverless-architecture.md +200 -200
- tapps_agents/experts/knowledge/code-quality-analysis/README.md +16 -16
- tapps_agents/experts/knowledge/code-quality-analysis/code-metrics.md +137 -137
- tapps_agents/experts/knowledge/code-quality-analysis/complexity-analysis.md +181 -181
- tapps_agents/experts/knowledge/code-quality-analysis/technical-debt-patterns.md +191 -191
- tapps_agents/experts/knowledge/data-privacy-compliance/anonymization.md +313 -313
- tapps_agents/experts/knowledge/data-privacy-compliance/ccpa.md +255 -255
- tapps_agents/experts/knowledge/data-privacy-compliance/consent-management.md +282 -282
- tapps_agents/experts/knowledge/data-privacy-compliance/data-minimization.md +275 -275
- tapps_agents/experts/knowledge/data-privacy-compliance/data-retention.md +297 -297
- tapps_agents/experts/knowledge/data-privacy-compliance/data-subject-rights.md +383 -383
- tapps_agents/experts/knowledge/data-privacy-compliance/encryption-privacy.md +285 -285
- tapps_agents/experts/knowledge/data-privacy-compliance/gdpr.md +344 -344
- tapps_agents/experts/knowledge/data-privacy-compliance/hipaa.md +385 -385
- tapps_agents/experts/knowledge/data-privacy-compliance/privacy-by-design.md +280 -280
- tapps_agents/experts/knowledge/database-data-management/acid-vs-cap.md +164 -164
- tapps_agents/experts/knowledge/database-data-management/backup-and-recovery.md +182 -182
- tapps_agents/experts/knowledge/database-data-management/data-modeling.md +172 -172
- tapps_agents/experts/knowledge/database-data-management/database-design.md +187 -187
- tapps_agents/experts/knowledge/database-data-management/flux-query-optimization.md +342 -342
- tapps_agents/experts/knowledge/database-data-management/influxdb-connection-patterns.md +432 -432
- tapps_agents/experts/knowledge/database-data-management/influxdb-patterns.md +442 -442
- tapps_agents/experts/knowledge/database-data-management/migration-strategies.md +216 -216
- tapps_agents/experts/knowledge/database-data-management/nosql-patterns.md +259 -259
- tapps_agents/experts/knowledge/database-data-management/scalability-patterns.md +184 -184
- tapps_agents/experts/knowledge/database-data-management/sql-optimization.md +175 -175
- tapps_agents/experts/knowledge/database-data-management/time-series-modeling.md +444 -444
- tapps_agents/experts/knowledge/development-workflow/README.md +16 -16
- tapps_agents/experts/knowledge/development-workflow/automation-best-practices.md +216 -216
- tapps_agents/experts/knowledge/development-workflow/build-strategies.md +198 -198
- tapps_agents/experts/knowledge/development-workflow/deployment-patterns.md +205 -205
- tapps_agents/experts/knowledge/development-workflow/git-workflows.md +205 -205
- tapps_agents/experts/knowledge/documentation-knowledge-management/README.md +16 -16
- tapps_agents/experts/knowledge/documentation-knowledge-management/api-documentation-patterns.md +231 -231
- tapps_agents/experts/knowledge/documentation-knowledge-management/documentation-standards.md +191 -191
- tapps_agents/experts/knowledge/documentation-knowledge-management/knowledge-management.md +171 -171
- tapps_agents/experts/knowledge/documentation-knowledge-management/technical-writing-guide.md +192 -192
- tapps_agents/experts/knowledge/observability-monitoring/alerting-patterns.md +461 -461
- tapps_agents/experts/knowledge/observability-monitoring/apm-tools.md +459 -459
- tapps_agents/experts/knowledge/observability-monitoring/distributed-tracing.md +367 -367
- tapps_agents/experts/knowledge/observability-monitoring/logging-strategies.md +478 -478
- tapps_agents/experts/knowledge/observability-monitoring/metrics-and-monitoring.md +510 -510
- tapps_agents/experts/knowledge/observability-monitoring/observability-best-practices.md +492 -492
- tapps_agents/experts/knowledge/observability-monitoring/open-telemetry.md +573 -573
- tapps_agents/experts/knowledge/observability-monitoring/slo-sli-sla.md +419 -419
- tapps_agents/experts/knowledge/performance/anti-patterns.md +284 -284
- tapps_agents/experts/knowledge/performance/api-performance.md +256 -256
- tapps_agents/experts/knowledge/performance/caching.md +327 -327
- tapps_agents/experts/knowledge/performance/database-performance.md +252 -252
- tapps_agents/experts/knowledge/performance/optimization-patterns.md +327 -327
- tapps_agents/experts/knowledge/performance/profiling.md +297 -297
- tapps_agents/experts/knowledge/performance/resource-management.md +293 -293
- tapps_agents/experts/knowledge/performance/scalability.md +306 -306
- tapps_agents/experts/knowledge/security/owasp-top10.md +209 -209
- tapps_agents/experts/knowledge/security/secure-coding-practices.md +207 -207
- tapps_agents/experts/knowledge/security/threat-modeling.md +220 -220
- tapps_agents/experts/knowledge/security/vulnerability-patterns.md +342 -342
- tapps_agents/experts/knowledge/software-architecture/docker-compose-patterns.md +314 -314
- tapps_agents/experts/knowledge/software-architecture/microservices-patterns.md +379 -379
- tapps_agents/experts/knowledge/software-architecture/service-communication.md +316 -316
- tapps_agents/experts/knowledge/testing/best-practices.md +310 -310
- tapps_agents/experts/knowledge/testing/coverage-analysis.md +293 -293
- tapps_agents/experts/knowledge/testing/mocking.md +256 -256
- tapps_agents/experts/knowledge/testing/test-automation.md +276 -276
- tapps_agents/experts/knowledge/testing/test-data.md +271 -271
- tapps_agents/experts/knowledge/testing/test-design-patterns.md +280 -280
- tapps_agents/experts/knowledge/testing/test-maintenance.md +236 -236
- tapps_agents/experts/knowledge/testing/test-strategies.md +311 -311
- tapps_agents/experts/knowledge/user-experience/information-architecture.md +325 -325
- tapps_agents/experts/knowledge/user-experience/interaction-design.md +363 -363
- tapps_agents/experts/knowledge/user-experience/prototyping.md +293 -293
- tapps_agents/experts/knowledge/user-experience/usability-heuristics.md +337 -337
- tapps_agents/experts/knowledge/user-experience/usability-testing.md +311 -311
- tapps_agents/experts/knowledge/user-experience/user-journeys.md +296 -296
- tapps_agents/experts/knowledge/user-experience/user-research.md +373 -373
- tapps_agents/experts/knowledge/user-experience/ux-principles.md +340 -340
- tapps_agents/experts/knowledge_freshness.py +321 -321
- tapps_agents/experts/knowledge_ingestion.py +438 -438
- tapps_agents/experts/knowledge_need_detector.py +93 -93
- tapps_agents/experts/knowledge_validator.py +382 -382
- tapps_agents/experts/observability.py +440 -440
- tapps_agents/experts/passive_notifier.py +238 -238
- tapps_agents/experts/proactive_orchestrator.py +32 -32
- tapps_agents/experts/rag_chunker.py +205 -205
- tapps_agents/experts/rag_embedder.py +152 -152
- tapps_agents/experts/rag_evaluation.py +299 -299
- tapps_agents/experts/rag_index.py +303 -303
- tapps_agents/experts/rag_metrics.py +293 -293
- tapps_agents/experts/rag_safety.py +263 -263
- tapps_agents/experts/report_generator.py +296 -296
- tapps_agents/experts/setup_wizard.py +441 -441
- tapps_agents/experts/simple_rag.py +431 -431
- tapps_agents/experts/vector_rag.py +354 -354
- tapps_agents/experts/weight_distributor.py +304 -304
- tapps_agents/health/__init__.py +24 -24
- tapps_agents/health/base.py +75 -75
- tapps_agents/health/checks/__init__.py +22 -22
- tapps_agents/health/checks/automation.py +127 -127
- tapps_agents/health/checks/context7_cache.py +210 -210
- tapps_agents/health/checks/environment.py +116 -116
- tapps_agents/health/checks/execution.py +170 -170
- tapps_agents/health/checks/knowledge_base.py +187 -187
- tapps_agents/health/checks/outcomes.py +324 -324
- tapps_agents/health/collector.py +280 -280
- tapps_agents/health/dashboard.py +137 -137
- tapps_agents/health/metrics.py +151 -151
- tapps_agents/health/orchestrator.py +271 -271
- tapps_agents/health/registry.py +166 -166
- tapps_agents/hooks/__init__.py +33 -33
- tapps_agents/hooks/config.py +140 -140
- tapps_agents/hooks/events.py +135 -135
- tapps_agents/hooks/executor.py +128 -128
- tapps_agents/hooks/manager.py +143 -143
- tapps_agents/integration/__init__.py +8 -8
- tapps_agents/integration/service_integrator.py +121 -121
- tapps_agents/integrations/__init__.py +10 -10
- tapps_agents/integrations/clawdbot.py +525 -525
- tapps_agents/integrations/memory_bridge.py +356 -356
- tapps_agents/mcp/__init__.py +18 -18
- tapps_agents/mcp/gateway.py +112 -112
- tapps_agents/mcp/servers/__init__.py +13 -13
- tapps_agents/mcp/servers/analysis.py +204 -204
- tapps_agents/mcp/servers/context7.py +198 -198
- tapps_agents/mcp/servers/filesystem.py +218 -218
- tapps_agents/mcp/servers/git.py +201 -201
- tapps_agents/mcp/tool_registry.py +115 -115
- tapps_agents/quality/__init__.py +54 -54
- tapps_agents/quality/coverage_analyzer.py +379 -379
- tapps_agents/quality/enforcement.py +82 -82
- tapps_agents/quality/gates/__init__.py +37 -37
- tapps_agents/quality/gates/approval_gate.py +255 -255
- tapps_agents/quality/gates/base.py +84 -84
- tapps_agents/quality/gates/exceptions.py +43 -43
- tapps_agents/quality/gates/policy_gate.py +195 -195
- tapps_agents/quality/gates/registry.py +239 -239
- tapps_agents/quality/gates/security_gate.py +156 -156
- tapps_agents/quality/quality_gates.py +369 -369
- tapps_agents/quality/secret_scanner.py +335 -335
- tapps_agents/session/__init__.py +19 -19
- tapps_agents/session/manager.py +256 -256
- tapps_agents/simple_mode/__init__.py +66 -66
- tapps_agents/simple_mode/agent_contracts.py +357 -357
- tapps_agents/simple_mode/beads_hooks.py +151 -151
- tapps_agents/simple_mode/code_snippet_handler.py +382 -382
- tapps_agents/simple_mode/documentation_manager.py +395 -395
- tapps_agents/simple_mode/documentation_reader.py +187 -187
- tapps_agents/simple_mode/file_inference.py +292 -292
- tapps_agents/simple_mode/framework_change_detector.py +268 -268
- tapps_agents/simple_mode/intent_parser.py +510 -510
- tapps_agents/simple_mode/learning_progression.py +358 -358
- tapps_agents/simple_mode/nl_handler.py +700 -700
- tapps_agents/simple_mode/onboarding.py +253 -253
- tapps_agents/simple_mode/orchestrators/__init__.py +38 -38
- tapps_agents/simple_mode/orchestrators/base.py +185 -185
- tapps_agents/simple_mode/orchestrators/breakdown_orchestrator.py +49 -49
- tapps_agents/simple_mode/orchestrators/brownfield_orchestrator.py +135 -135
- tapps_agents/simple_mode/orchestrators/build_orchestrator.py +2700 -2667
- tapps_agents/simple_mode/orchestrators/deliverable_checklist.py +349 -349
- tapps_agents/simple_mode/orchestrators/enhance_orchestrator.py +53 -53
- tapps_agents/simple_mode/orchestrators/epic_orchestrator.py +122 -122
- tapps_agents/simple_mode/orchestrators/explore_orchestrator.py +184 -184
- tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +723 -723
- tapps_agents/simple_mode/orchestrators/plan_analysis_orchestrator.py +206 -206
- tapps_agents/simple_mode/orchestrators/pr_orchestrator.py +237 -237
- tapps_agents/simple_mode/orchestrators/refactor_orchestrator.py +222 -222
- tapps_agents/simple_mode/orchestrators/requirements_tracer.py +262 -262
- tapps_agents/simple_mode/orchestrators/resume_orchestrator.py +210 -210
- tapps_agents/simple_mode/orchestrators/review_orchestrator.py +161 -161
- tapps_agents/simple_mode/orchestrators/test_orchestrator.py +82 -82
- tapps_agents/simple_mode/output_aggregator.py +340 -340
- tapps_agents/simple_mode/result_formatters.py +598 -598
- tapps_agents/simple_mode/step_dependencies.py +382 -382
- tapps_agents/simple_mode/step_results.py +276 -276
- tapps_agents/simple_mode/streaming.py +388 -388
- tapps_agents/simple_mode/variations.py +129 -129
- tapps_agents/simple_mode/visual_feedback.py +238 -238
- tapps_agents/simple_mode/zero_config.py +274 -274
- tapps_agents/suggestions/__init__.py +8 -8
- tapps_agents/suggestions/inline_suggester.py +52 -52
- tapps_agents/templates/__init__.py +8 -8
- tapps_agents/templates/microservice_generator.py +274 -274
- tapps_agents/utils/env_validator.py +291 -291
- tapps_agents/workflow/__init__.py +171 -171
- tapps_agents/workflow/acceptance_verifier.py +132 -132
- tapps_agents/workflow/agent_handlers/__init__.py +41 -41
- tapps_agents/workflow/agent_handlers/analyst_handler.py +75 -75
- tapps_agents/workflow/agent_handlers/architect_handler.py +107 -107
- tapps_agents/workflow/agent_handlers/base.py +84 -84
- tapps_agents/workflow/agent_handlers/debugger_handler.py +100 -100
- tapps_agents/workflow/agent_handlers/designer_handler.py +110 -110
- tapps_agents/workflow/agent_handlers/documenter_handler.py +94 -94
- tapps_agents/workflow/agent_handlers/implementer_handler.py +235 -235
- tapps_agents/workflow/agent_handlers/ops_handler.py +62 -62
- tapps_agents/workflow/agent_handlers/orchestrator_handler.py +43 -43
- tapps_agents/workflow/agent_handlers/planner_handler.py +98 -98
- tapps_agents/workflow/agent_handlers/registry.py +119 -119
- tapps_agents/workflow/agent_handlers/reviewer_handler.py +119 -119
- tapps_agents/workflow/agent_handlers/tester_handler.py +69 -69
- tapps_agents/workflow/analytics_accessor.py +337 -337
- tapps_agents/workflow/analytics_alerts.py +416 -416
- tapps_agents/workflow/analytics_dashboard_cursor.py +281 -281
- tapps_agents/workflow/analytics_dual_write.py +103 -103
- tapps_agents/workflow/analytics_integration.py +119 -119
- tapps_agents/workflow/analytics_query_parser.py +278 -278
- tapps_agents/workflow/analytics_visualizer.py +259 -259
- tapps_agents/workflow/artifact_helper.py +204 -204
- tapps_agents/workflow/audit_logger.py +263 -263
- tapps_agents/workflow/auto_execution_config.py +340 -340
- tapps_agents/workflow/auto_progression.py +586 -586
- tapps_agents/workflow/branch_cleanup.py +349 -349
- tapps_agents/workflow/checkpoint.py +256 -256
- tapps_agents/workflow/checkpoint_manager.py +178 -178
- tapps_agents/workflow/code_artifact.py +179 -179
- tapps_agents/workflow/common_enums.py +96 -96
- tapps_agents/workflow/confirmation_handler.py +130 -130
- tapps_agents/workflow/context_analyzer.py +222 -222
- tapps_agents/workflow/context_artifact.py +230 -230
- tapps_agents/workflow/cursor_chat.py +94 -94
- tapps_agents/workflow/cursor_executor.py +2337 -2196
- tapps_agents/workflow/cursor_skill_helper.py +516 -516
- tapps_agents/workflow/dependency_resolver.py +244 -244
- tapps_agents/workflow/design_artifact.py +156 -156
- tapps_agents/workflow/detector.py +751 -751
- tapps_agents/workflow/direct_execution_fallback.py +301 -301
- tapps_agents/workflow/docs_artifact.py +168 -168
- tapps_agents/workflow/enforcer.py +389 -389
- tapps_agents/workflow/enhancement_artifact.py +142 -142
- tapps_agents/workflow/error_recovery.py +806 -806
- tapps_agents/workflow/event_bus.py +183 -183
- tapps_agents/workflow/event_log.py +612 -612
- tapps_agents/workflow/events.py +63 -63
- tapps_agents/workflow/exceptions.py +43 -43
- tapps_agents/workflow/execution_graph.py +498 -498
- tapps_agents/workflow/execution_plan.py +126 -126
- tapps_agents/workflow/file_utils.py +186 -186
- tapps_agents/workflow/gate_evaluator.py +182 -182
- tapps_agents/workflow/gate_integration.py +200 -200
- tapps_agents/workflow/graph_visualizer.py +130 -130
- tapps_agents/workflow/health_checker.py +206 -206
- tapps_agents/workflow/logging_helper.py +243 -243
- tapps_agents/workflow/manifest.py +582 -582
- tapps_agents/workflow/marker_writer.py +250 -250
- tapps_agents/workflow/message_formatter.py +188 -188
- tapps_agents/workflow/messaging.py +325 -325
- tapps_agents/workflow/metadata_models.py +91 -91
- tapps_agents/workflow/metrics_integration.py +226 -226
- tapps_agents/workflow/migration_utils.py +116 -116
- tapps_agents/workflow/models.py +148 -111
- tapps_agents/workflow/nlp_config.py +198 -198
- tapps_agents/workflow/nlp_error_handler.py +207 -207
- tapps_agents/workflow/nlp_executor.py +163 -163
- tapps_agents/workflow/nlp_parser.py +528 -528
- tapps_agents/workflow/observability_dashboard.py +451 -451
- tapps_agents/workflow/observer.py +170 -170
- tapps_agents/workflow/ops_artifact.py +257 -257
- tapps_agents/workflow/output_passing.py +214 -214
- tapps_agents/workflow/parallel_executor.py +463 -463
- tapps_agents/workflow/planning_artifact.py +179 -179
- tapps_agents/workflow/preset_loader.py +285 -285
- tapps_agents/workflow/preset_recommender.py +270 -270
- tapps_agents/workflow/progress_logger.py +145 -145
- tapps_agents/workflow/progress_manager.py +303 -303
- tapps_agents/workflow/progress_monitor.py +186 -186
- tapps_agents/workflow/progress_updates.py +423 -423
- tapps_agents/workflow/quality_artifact.py +158 -158
- tapps_agents/workflow/quality_loopback.py +101 -101
- tapps_agents/workflow/recommender.py +387 -387
- tapps_agents/workflow/remediation_loop.py +166 -166
- tapps_agents/workflow/result_aggregator.py +300 -300
- tapps_agents/workflow/review_artifact.py +185 -185
- tapps_agents/workflow/schema_validator.py +522 -522
- tapps_agents/workflow/session_handoff.py +178 -178
- tapps_agents/workflow/skill_invoker.py +648 -648
- tapps_agents/workflow/state_manager.py +756 -756
- tapps_agents/workflow/state_persistence_config.py +331 -331
- tapps_agents/workflow/status_monitor.py +449 -449
- tapps_agents/workflow/step_checkpoint.py +314 -314
- tapps_agents/workflow/step_details.py +201 -201
- tapps_agents/workflow/story_models.py +147 -147
- tapps_agents/workflow/streaming.py +416 -416
- tapps_agents/workflow/suggestion_engine.py +552 -552
- tapps_agents/workflow/testing_artifact.py +186 -186
- tapps_agents/workflow/timeline.py +158 -158
- tapps_agents/workflow/token_integration.py +209 -209
- tapps_agents/workflow/validation.py +217 -217
- tapps_agents/workflow/visual_feedback.py +391 -391
- tapps_agents/workflow/workflow_chain.py +95 -95
- tapps_agents/workflow/workflow_summary.py +219 -219
- tapps_agents/workflow/worktree_manager.py +724 -724
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/METADATA +672 -672
- tapps_agents-3.6.0.dist-info/RECORD +758 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/licenses/LICENSE +22 -22
- tapps_agents/health/checks/outcomes.backup_20260204_064058.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064256.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064600.py +0 -324
- tapps_agents-3.5.40.dist-info/RECORD +0 -760
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/WHEEL +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/top_level.txt +0 -0
|
@@ -1,331 +1,331 @@
|
|
|
1
|
-
# Accessible Form Design
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Forms are critical for user interaction. Making forms accessible ensures that all users, including those using assistive technologies, can successfully complete and submit forms.
|
|
6
|
-
|
|
7
|
-
## Form Structure
|
|
8
|
-
|
|
9
|
-
### Form Element
|
|
10
|
-
```html
|
|
11
|
-
<form action="/submit" method="post" novalidate>
|
|
12
|
-
<!-- Form fields -->
|
|
13
|
-
</form>
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
### Fieldset and Legend
|
|
17
|
-
```html
|
|
18
|
-
<fieldset>
|
|
19
|
-
<legend>Contact Information</legend>
|
|
20
|
-
<!-- Related fields -->
|
|
21
|
-
</fieldset>
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## Labels
|
|
25
|
-
|
|
26
|
-
### Explicit Labels
|
|
27
|
-
```html
|
|
28
|
-
<label for="email">Email Address</label>
|
|
29
|
-
<input type="email" id="email" name="email">
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### Implicit Labels
|
|
33
|
-
```html
|
|
34
|
-
<label>
|
|
35
|
-
Email Address
|
|
36
|
-
<input type="email" name="email">
|
|
37
|
-
</label>
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### Best Practices
|
|
41
|
-
- Always provide labels
|
|
42
|
-
- Associate labels with inputs
|
|
43
|
-
- Use clear, descriptive labels
|
|
44
|
-
- Place labels before inputs
|
|
45
|
-
|
|
46
|
-
## Input Types
|
|
47
|
-
|
|
48
|
-
### Text Inputs
|
|
49
|
-
```html
|
|
50
|
-
<label for="name">Full Name</label>
|
|
51
|
-
<input type="text" id="name" name="name" required>
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Email Inputs
|
|
55
|
-
```html
|
|
56
|
-
<label for="email">Email Address</label>
|
|
57
|
-
<input type="email" id="email" name="email" required>
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### Number Inputs
|
|
61
|
-
```html
|
|
62
|
-
<label for="age">Age</label>
|
|
63
|
-
<input type="number" id="age" name="age" min="0" max="120">
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Date Inputs
|
|
67
|
-
```html
|
|
68
|
-
<label for="birthdate">Birth Date</label>
|
|
69
|
-
<input type="date" id="birthdate" name="birthdate">
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Checkboxes
|
|
73
|
-
```html
|
|
74
|
-
<label>
|
|
75
|
-
<input type="checkbox" name="newsletter" value="yes">
|
|
76
|
-
Subscribe to newsletter
|
|
77
|
-
</label>
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Radio Buttons
|
|
81
|
-
```html
|
|
82
|
-
<fieldset>
|
|
83
|
-
<legend>Preferred Contact Method</legend>
|
|
84
|
-
<label>
|
|
85
|
-
<input type="radio" name="contact" value="email" checked>
|
|
86
|
-
Email
|
|
87
|
-
</label>
|
|
88
|
-
<label>
|
|
89
|
-
<input type="radio" name="contact" value="phone">
|
|
90
|
-
Phone
|
|
91
|
-
</label>
|
|
92
|
-
</fieldset>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### Select Dropdowns
|
|
96
|
-
```html
|
|
97
|
-
<label for="country">Country</label>
|
|
98
|
-
<select id="country" name="country">
|
|
99
|
-
<option value="">Select a country</option>
|
|
100
|
-
<option value="us">United States</option>
|
|
101
|
-
<option value="ca">Canada</option>
|
|
102
|
-
</select>
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
### Textareas
|
|
106
|
-
```html
|
|
107
|
-
<label for="message">Message</label>
|
|
108
|
-
<textarea id="message" name="message" rows="5" cols="50"></textarea>
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Required Fields
|
|
112
|
-
|
|
113
|
-
### HTML5 Required
|
|
114
|
-
```html
|
|
115
|
-
<label for="email">Email Address *</label>
|
|
116
|
-
<input type="email" id="email" name="email" required aria-required="true">
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### Visual Indicators
|
|
120
|
-
- Asterisk (*) for required fields
|
|
121
|
-
- "Required" text
|
|
122
|
-
- Different styling
|
|
123
|
-
- Clear indication
|
|
124
|
-
|
|
125
|
-
### ARIA Required
|
|
126
|
-
```html
|
|
127
|
-
<input type="email" id="email" aria-required="true">
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## Error Messages
|
|
131
|
-
|
|
132
|
-
### Inline Errors
|
|
133
|
-
```html
|
|
134
|
-
<label for="email">Email Address</label>
|
|
135
|
-
<input type="email" id="email" aria-invalid="true" aria-describedby="email-error">
|
|
136
|
-
<span id="email-error" role="alert">Please enter a valid email address</span>
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
### Error Summary
|
|
140
|
-
```html
|
|
141
|
-
<div role="alert" aria-labelledby="error-summary">
|
|
142
|
-
<h2 id="error-summary">Please correct the following errors:</h2>
|
|
143
|
-
<ul>
|
|
144
|
-
<li><a href="#email">Email is required</a></li>
|
|
145
|
-
<li><a href="#name">Name is required</a></li>
|
|
146
|
-
</ul>
|
|
147
|
-
</div>
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
### Best Practices
|
|
151
|
-
- Provide clear error messages
|
|
152
|
-
- Associate errors with fields
|
|
153
|
-
- Use aria-invalid
|
|
154
|
-
- Use aria-describedby
|
|
155
|
-
- Announce errors to screen readers
|
|
156
|
-
|
|
157
|
-
## Help Text
|
|
158
|
-
|
|
159
|
-
### Descriptions
|
|
160
|
-
```html
|
|
161
|
-
<label for="password">Password</label>
|
|
162
|
-
<input type="password" id="password" aria-describedby="password-help">
|
|
163
|
-
<span id="password-help">Must be at least 8 characters</span>
|
|
164
|
-
```
|
|
165
|
-
|
|
166
|
-
### Instructions
|
|
167
|
-
```html
|
|
168
|
-
<label for="username">Username</label>
|
|
169
|
-
<input type="text" id="username" aria-describedby="username-help">
|
|
170
|
-
<span id="username-help">Letters and numbers only, 3-20 characters</span>
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
## Validation
|
|
174
|
-
|
|
175
|
-
### HTML5 Validation
|
|
176
|
-
```html
|
|
177
|
-
<input type="email" id="email" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$">
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### ARIA Validation
|
|
181
|
-
```html
|
|
182
|
-
<input type="email" id="email"
|
|
183
|
-
aria-invalid="true"
|
|
184
|
-
aria-describedby="email-error">
|
|
185
|
-
<span id="email-error" role="alert">Invalid email format</span>
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
### Real-time Validation
|
|
189
|
-
- Validate on blur
|
|
190
|
-
- Provide immediate feedback
|
|
191
|
-
- Don't validate on every keystroke
|
|
192
|
-
- Clear errors when fixed
|
|
193
|
-
|
|
194
|
-
## Grouping Related Fields
|
|
195
|
-
|
|
196
|
-
### Fieldset
|
|
197
|
-
```html
|
|
198
|
-
<fieldset>
|
|
199
|
-
<legend>Billing Address</legend>
|
|
200
|
-
<label for="street">Street</label>
|
|
201
|
-
<input type="text" id="street" name="street">
|
|
202
|
-
<!-- More fields -->
|
|
203
|
-
</fieldset>
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
### ARIA Groups
|
|
207
|
-
```html
|
|
208
|
-
<div role="group" aria-labelledby="billing-label">
|
|
209
|
-
<h3 id="billing-label">Billing Address</h3>
|
|
210
|
-
<!-- Fields -->
|
|
211
|
-
</div>
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
## Autocomplete
|
|
215
|
-
|
|
216
|
-
### HTML5 Autocomplete
|
|
217
|
-
```html
|
|
218
|
-
<label for="email">Email</label>
|
|
219
|
-
<input type="email" id="email" autocomplete="email">
|
|
220
|
-
|
|
221
|
-
<label for="name">Full Name</label>
|
|
222
|
-
<input type="text" id="name" autocomplete="name">
|
|
223
|
-
|
|
224
|
-
<label for="phone">Phone</label>
|
|
225
|
-
<input type="tel" id="phone" autocomplete="tel">
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
### Benefits
|
|
229
|
-
- Helps users with cognitive disabilities
|
|
230
|
-
- Faster form completion
|
|
231
|
-
- Reduces errors
|
|
232
|
-
- Improves user experience
|
|
233
|
-
|
|
234
|
-
## Keyboard Navigation
|
|
235
|
-
|
|
236
|
-
### Tab Order
|
|
237
|
-
- Logical tab sequence
|
|
238
|
-
- Follow visual order
|
|
239
|
-
- All fields focusable
|
|
240
|
-
- No keyboard traps
|
|
241
|
-
|
|
242
|
-
### Focus Management
|
|
243
|
-
- Set focus to first error
|
|
244
|
-
- Return focus after submission
|
|
245
|
-
- Maintain focus context
|
|
246
|
-
- Visible focus indicators
|
|
247
|
-
|
|
248
|
-
## Common Issues
|
|
249
|
-
|
|
250
|
-
### Missing Labels
|
|
251
|
-
- Form controls without labels
|
|
252
|
-
- Placeholder text as label
|
|
253
|
-
- Visual labels only
|
|
254
|
-
- Not associated with inputs
|
|
255
|
-
|
|
256
|
-
### Poor Error Handling
|
|
257
|
-
- Errors not announced
|
|
258
|
-
- Unclear error messages
|
|
259
|
-
- Errors not associated with fields
|
|
260
|
-
- No error summary
|
|
261
|
-
|
|
262
|
-
### Inaccessible Validation
|
|
263
|
-
- Validation not announced
|
|
264
|
-
- No clear error messages
|
|
265
|
-
- Errors not associated with fields
|
|
266
|
-
- Poor error recovery
|
|
267
|
-
|
|
268
|
-
### Missing Required Indicators
|
|
269
|
-
- No indication of required fields
|
|
270
|
-
- Unclear which fields are required
|
|
271
|
-
- Inconsistent indicators
|
|
272
|
-
- Not programmatically indicated
|
|
273
|
-
|
|
274
|
-
## Best Practices
|
|
275
|
-
|
|
276
|
-
### 1. Always Provide Labels
|
|
277
|
-
- Every form control needs a label
|
|
278
|
-
- Associate labels with inputs
|
|
279
|
-
- Use clear, descriptive labels
|
|
280
|
-
- Place labels appropriately
|
|
281
|
-
|
|
282
|
-
### 2. Group Related Fields
|
|
283
|
-
- Use fieldset and legend
|
|
284
|
-
- Logical grouping
|
|
285
|
-
- Clear organization
|
|
286
|
-
- Better understanding
|
|
287
|
-
|
|
288
|
-
### 3. Provide Help Text
|
|
289
|
-
- Instructions when needed
|
|
290
|
-
- Format requirements
|
|
291
|
-
- Examples
|
|
292
|
-
- Associate with aria-describedby
|
|
293
|
-
|
|
294
|
-
### 4. Handle Errors Properly
|
|
295
|
-
- Clear error messages
|
|
296
|
-
- Associate with fields
|
|
297
|
-
- Announce to screen readers
|
|
298
|
-
- Provide error summary
|
|
299
|
-
|
|
300
|
-
### 5. Support Keyboard Navigation
|
|
301
|
-
- Logical tab order
|
|
302
|
-
- All fields keyboard accessible
|
|
303
|
-
- Visible focus indicators
|
|
304
|
-
- No keyboard traps
|
|
305
|
-
|
|
306
|
-
## Testing Checklist
|
|
307
|
-
|
|
308
|
-
- [ ] All form controls have labels
|
|
309
|
-
- [ ] Labels are associated with inputs
|
|
310
|
-
- [ ] Required fields are indicated
|
|
311
|
-
- [ ] Error messages are clear
|
|
312
|
-
- [ ] Errors are associated with fields
|
|
313
|
-
- [ ] Errors are announced to screen readers
|
|
314
|
-
- [ ] Help text is provided when needed
|
|
315
|
-
- [ ] Forms are keyboard navigable
|
|
316
|
-
- [ ] Focus indicators are visible
|
|
317
|
-
- [ ] Forms work with screen readers
|
|
318
|
-
|
|
319
|
-
## Best Practices Summary
|
|
320
|
-
|
|
321
|
-
1. **Labels**: Always provide and associate labels
|
|
322
|
-
2. **Grouping**: Use fieldset for related fields
|
|
323
|
-
3. **Required Fields**: Clearly indicate required fields
|
|
324
|
-
4. **Error Handling**: Provide clear, associated errors
|
|
325
|
-
5. **Help Text**: Provide instructions when needed
|
|
326
|
-
6. **Keyboard Navigation**: Ensure full keyboard access
|
|
327
|
-
7. **Validation**: Provide accessible validation
|
|
328
|
-
8. **Autocomplete**: Use autocomplete attributes
|
|
329
|
-
9. **Testing**: Test with assistive technologies
|
|
330
|
-
10. **User Feedback**: Gather feedback from users
|
|
331
|
-
|
|
1
|
+
# Accessible Form Design
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Forms are critical for user interaction. Making forms accessible ensures that all users, including those using assistive technologies, can successfully complete and submit forms.
|
|
6
|
+
|
|
7
|
+
## Form Structure
|
|
8
|
+
|
|
9
|
+
### Form Element
|
|
10
|
+
```html
|
|
11
|
+
<form action="/submit" method="post" novalidate>
|
|
12
|
+
<!-- Form fields -->
|
|
13
|
+
</form>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Fieldset and Legend
|
|
17
|
+
```html
|
|
18
|
+
<fieldset>
|
|
19
|
+
<legend>Contact Information</legend>
|
|
20
|
+
<!-- Related fields -->
|
|
21
|
+
</fieldset>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Labels
|
|
25
|
+
|
|
26
|
+
### Explicit Labels
|
|
27
|
+
```html
|
|
28
|
+
<label for="email">Email Address</label>
|
|
29
|
+
<input type="email" id="email" name="email">
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Implicit Labels
|
|
33
|
+
```html
|
|
34
|
+
<label>
|
|
35
|
+
Email Address
|
|
36
|
+
<input type="email" name="email">
|
|
37
|
+
</label>
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Best Practices
|
|
41
|
+
- Always provide labels
|
|
42
|
+
- Associate labels with inputs
|
|
43
|
+
- Use clear, descriptive labels
|
|
44
|
+
- Place labels before inputs
|
|
45
|
+
|
|
46
|
+
## Input Types
|
|
47
|
+
|
|
48
|
+
### Text Inputs
|
|
49
|
+
```html
|
|
50
|
+
<label for="name">Full Name</label>
|
|
51
|
+
<input type="text" id="name" name="name" required>
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Email Inputs
|
|
55
|
+
```html
|
|
56
|
+
<label for="email">Email Address</label>
|
|
57
|
+
<input type="email" id="email" name="email" required>
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Number Inputs
|
|
61
|
+
```html
|
|
62
|
+
<label for="age">Age</label>
|
|
63
|
+
<input type="number" id="age" name="age" min="0" max="120">
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Date Inputs
|
|
67
|
+
```html
|
|
68
|
+
<label for="birthdate">Birth Date</label>
|
|
69
|
+
<input type="date" id="birthdate" name="birthdate">
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Checkboxes
|
|
73
|
+
```html
|
|
74
|
+
<label>
|
|
75
|
+
<input type="checkbox" name="newsletter" value="yes">
|
|
76
|
+
Subscribe to newsletter
|
|
77
|
+
</label>
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Radio Buttons
|
|
81
|
+
```html
|
|
82
|
+
<fieldset>
|
|
83
|
+
<legend>Preferred Contact Method</legend>
|
|
84
|
+
<label>
|
|
85
|
+
<input type="radio" name="contact" value="email" checked>
|
|
86
|
+
Email
|
|
87
|
+
</label>
|
|
88
|
+
<label>
|
|
89
|
+
<input type="radio" name="contact" value="phone">
|
|
90
|
+
Phone
|
|
91
|
+
</label>
|
|
92
|
+
</fieldset>
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Select Dropdowns
|
|
96
|
+
```html
|
|
97
|
+
<label for="country">Country</label>
|
|
98
|
+
<select id="country" name="country">
|
|
99
|
+
<option value="">Select a country</option>
|
|
100
|
+
<option value="us">United States</option>
|
|
101
|
+
<option value="ca">Canada</option>
|
|
102
|
+
</select>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Textareas
|
|
106
|
+
```html
|
|
107
|
+
<label for="message">Message</label>
|
|
108
|
+
<textarea id="message" name="message" rows="5" cols="50"></textarea>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Required Fields
|
|
112
|
+
|
|
113
|
+
### HTML5 Required
|
|
114
|
+
```html
|
|
115
|
+
<label for="email">Email Address *</label>
|
|
116
|
+
<input type="email" id="email" name="email" required aria-required="true">
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### Visual Indicators
|
|
120
|
+
- Asterisk (*) for required fields
|
|
121
|
+
- "Required" text
|
|
122
|
+
- Different styling
|
|
123
|
+
- Clear indication
|
|
124
|
+
|
|
125
|
+
### ARIA Required
|
|
126
|
+
```html
|
|
127
|
+
<input type="email" id="email" aria-required="true">
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Error Messages
|
|
131
|
+
|
|
132
|
+
### Inline Errors
|
|
133
|
+
```html
|
|
134
|
+
<label for="email">Email Address</label>
|
|
135
|
+
<input type="email" id="email" aria-invalid="true" aria-describedby="email-error">
|
|
136
|
+
<span id="email-error" role="alert">Please enter a valid email address</span>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Error Summary
|
|
140
|
+
```html
|
|
141
|
+
<div role="alert" aria-labelledby="error-summary">
|
|
142
|
+
<h2 id="error-summary">Please correct the following errors:</h2>
|
|
143
|
+
<ul>
|
|
144
|
+
<li><a href="#email">Email is required</a></li>
|
|
145
|
+
<li><a href="#name">Name is required</a></li>
|
|
146
|
+
</ul>
|
|
147
|
+
</div>
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Best Practices
|
|
151
|
+
- Provide clear error messages
|
|
152
|
+
- Associate errors with fields
|
|
153
|
+
- Use aria-invalid
|
|
154
|
+
- Use aria-describedby
|
|
155
|
+
- Announce errors to screen readers
|
|
156
|
+
|
|
157
|
+
## Help Text
|
|
158
|
+
|
|
159
|
+
### Descriptions
|
|
160
|
+
```html
|
|
161
|
+
<label for="password">Password</label>
|
|
162
|
+
<input type="password" id="password" aria-describedby="password-help">
|
|
163
|
+
<span id="password-help">Must be at least 8 characters</span>
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Instructions
|
|
167
|
+
```html
|
|
168
|
+
<label for="username">Username</label>
|
|
169
|
+
<input type="text" id="username" aria-describedby="username-help">
|
|
170
|
+
<span id="username-help">Letters and numbers only, 3-20 characters</span>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Validation
|
|
174
|
+
|
|
175
|
+
### HTML5 Validation
|
|
176
|
+
```html
|
|
177
|
+
<input type="email" id="email" required pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$">
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### ARIA Validation
|
|
181
|
+
```html
|
|
182
|
+
<input type="email" id="email"
|
|
183
|
+
aria-invalid="true"
|
|
184
|
+
aria-describedby="email-error">
|
|
185
|
+
<span id="email-error" role="alert">Invalid email format</span>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### Real-time Validation
|
|
189
|
+
- Validate on blur
|
|
190
|
+
- Provide immediate feedback
|
|
191
|
+
- Don't validate on every keystroke
|
|
192
|
+
- Clear errors when fixed
|
|
193
|
+
|
|
194
|
+
## Grouping Related Fields
|
|
195
|
+
|
|
196
|
+
### Fieldset
|
|
197
|
+
```html
|
|
198
|
+
<fieldset>
|
|
199
|
+
<legend>Billing Address</legend>
|
|
200
|
+
<label for="street">Street</label>
|
|
201
|
+
<input type="text" id="street" name="street">
|
|
202
|
+
<!-- More fields -->
|
|
203
|
+
</fieldset>
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### ARIA Groups
|
|
207
|
+
```html
|
|
208
|
+
<div role="group" aria-labelledby="billing-label">
|
|
209
|
+
<h3 id="billing-label">Billing Address</h3>
|
|
210
|
+
<!-- Fields -->
|
|
211
|
+
</div>
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Autocomplete
|
|
215
|
+
|
|
216
|
+
### HTML5 Autocomplete
|
|
217
|
+
```html
|
|
218
|
+
<label for="email">Email</label>
|
|
219
|
+
<input type="email" id="email" autocomplete="email">
|
|
220
|
+
|
|
221
|
+
<label for="name">Full Name</label>
|
|
222
|
+
<input type="text" id="name" autocomplete="name">
|
|
223
|
+
|
|
224
|
+
<label for="phone">Phone</label>
|
|
225
|
+
<input type="tel" id="phone" autocomplete="tel">
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Benefits
|
|
229
|
+
- Helps users with cognitive disabilities
|
|
230
|
+
- Faster form completion
|
|
231
|
+
- Reduces errors
|
|
232
|
+
- Improves user experience
|
|
233
|
+
|
|
234
|
+
## Keyboard Navigation
|
|
235
|
+
|
|
236
|
+
### Tab Order
|
|
237
|
+
- Logical tab sequence
|
|
238
|
+
- Follow visual order
|
|
239
|
+
- All fields focusable
|
|
240
|
+
- No keyboard traps
|
|
241
|
+
|
|
242
|
+
### Focus Management
|
|
243
|
+
- Set focus to first error
|
|
244
|
+
- Return focus after submission
|
|
245
|
+
- Maintain focus context
|
|
246
|
+
- Visible focus indicators
|
|
247
|
+
|
|
248
|
+
## Common Issues
|
|
249
|
+
|
|
250
|
+
### Missing Labels
|
|
251
|
+
- Form controls without labels
|
|
252
|
+
- Placeholder text as label
|
|
253
|
+
- Visual labels only
|
|
254
|
+
- Not associated with inputs
|
|
255
|
+
|
|
256
|
+
### Poor Error Handling
|
|
257
|
+
- Errors not announced
|
|
258
|
+
- Unclear error messages
|
|
259
|
+
- Errors not associated with fields
|
|
260
|
+
- No error summary
|
|
261
|
+
|
|
262
|
+
### Inaccessible Validation
|
|
263
|
+
- Validation not announced
|
|
264
|
+
- No clear error messages
|
|
265
|
+
- Errors not associated with fields
|
|
266
|
+
- Poor error recovery
|
|
267
|
+
|
|
268
|
+
### Missing Required Indicators
|
|
269
|
+
- No indication of required fields
|
|
270
|
+
- Unclear which fields are required
|
|
271
|
+
- Inconsistent indicators
|
|
272
|
+
- Not programmatically indicated
|
|
273
|
+
|
|
274
|
+
## Best Practices
|
|
275
|
+
|
|
276
|
+
### 1. Always Provide Labels
|
|
277
|
+
- Every form control needs a label
|
|
278
|
+
- Associate labels with inputs
|
|
279
|
+
- Use clear, descriptive labels
|
|
280
|
+
- Place labels appropriately
|
|
281
|
+
|
|
282
|
+
### 2. Group Related Fields
|
|
283
|
+
- Use fieldset and legend
|
|
284
|
+
- Logical grouping
|
|
285
|
+
- Clear organization
|
|
286
|
+
- Better understanding
|
|
287
|
+
|
|
288
|
+
### 3. Provide Help Text
|
|
289
|
+
- Instructions when needed
|
|
290
|
+
- Format requirements
|
|
291
|
+
- Examples
|
|
292
|
+
- Associate with aria-describedby
|
|
293
|
+
|
|
294
|
+
### 4. Handle Errors Properly
|
|
295
|
+
- Clear error messages
|
|
296
|
+
- Associate with fields
|
|
297
|
+
- Announce to screen readers
|
|
298
|
+
- Provide error summary
|
|
299
|
+
|
|
300
|
+
### 5. Support Keyboard Navigation
|
|
301
|
+
- Logical tab order
|
|
302
|
+
- All fields keyboard accessible
|
|
303
|
+
- Visible focus indicators
|
|
304
|
+
- No keyboard traps
|
|
305
|
+
|
|
306
|
+
## Testing Checklist
|
|
307
|
+
|
|
308
|
+
- [ ] All form controls have labels
|
|
309
|
+
- [ ] Labels are associated with inputs
|
|
310
|
+
- [ ] Required fields are indicated
|
|
311
|
+
- [ ] Error messages are clear
|
|
312
|
+
- [ ] Errors are associated with fields
|
|
313
|
+
- [ ] Errors are announced to screen readers
|
|
314
|
+
- [ ] Help text is provided when needed
|
|
315
|
+
- [ ] Forms are keyboard navigable
|
|
316
|
+
- [ ] Focus indicators are visible
|
|
317
|
+
- [ ] Forms work with screen readers
|
|
318
|
+
|
|
319
|
+
## Best Practices Summary
|
|
320
|
+
|
|
321
|
+
1. **Labels**: Always provide and associate labels
|
|
322
|
+
2. **Grouping**: Use fieldset for related fields
|
|
323
|
+
3. **Required Fields**: Clearly indicate required fields
|
|
324
|
+
4. **Error Handling**: Provide clear, associated errors
|
|
325
|
+
5. **Help Text**: Provide instructions when needed
|
|
326
|
+
6. **Keyboard Navigation**: Ensure full keyboard access
|
|
327
|
+
7. **Validation**: Provide accessible validation
|
|
328
|
+
8. **Autocomplete**: Use autocomplete attributes
|
|
329
|
+
9. **Testing**: Test with assistive technologies
|
|
330
|
+
10. **User Feedback**: Gather feedback from users
|
|
331
|
+
|