LAKA-WCAG-MODAL-PATTERN
implementation_pattern change level: Major Change execution: NOT_TESTED
Object
modal dialog — A concrete authorized component instance; bind before execution.
States: closed open closed-after-action
Applicability — IF
- dialog.is_modal
Requirement — THEN REQUIRE
- AND
- dialog.named
- dialog.initial_focus_appropriate
- dialog.focus_contained
- dialog.background_inert
- dialog.keyboard_exit_works
- dialog.focus_restored_logically
WCAG references
Implementation
Implement the selected modal pattern; evaluate each underlying WCAG criterion separately.
LAKA instantiation
- Object
- modal dialog in the declared test scope.
- Conditions
- Use the listed states with a recorded role, fixture and environment.
- Actions
- Execute the named task and its relevant recovery transitions.
- Tools
- Use repository test adapters and qualified manual review where needed.
- Resources
- Synthetic fixtures, a test environment, accountable owner and evidence store.
- Outcomes
- The chosen modal contract is operable and preserves task continuity.
- Feedback
- Preserve observations and create a linked regression check after repair.
- Constraints
- Do not weaken security, erase information or reduce task functionality.
- Value
- Support independent operation of this task without the recorded barrier.
- Failure mode
- An assertion fails, remains unknown or regresses in a relevant state.
Measurement lenses: Scope Detectability Propagation Reversibility
Full record
{
"id": "LAKA-WCAG-MODAL-PATTERN",
"version": "1.0.0",
"authority": "implementation_pattern",
"source_refs": [
"S-DIALOG"
],
"wcag_refs": [
{
"criterion_id": "2.1.2",
"level": "A"
},
{
"criterion_id": "2.4.3",
"level": "A"
},
{
"criterion_id": "4.1.2",
"level": "A"
}
],
"covers_full_criteria": false,
"object": {
"type": "modal dialog",
"scope": "A concrete authorized component instance; bind before execution.",
"states": [
"closed",
"open",
"closed-after-action"
]
},
"applicability": {
"predicate": "dialog.is_modal"
},
"require": {
"all": [
{
"predicate": "dialog.named"
},
{
"predicate": "dialog.initial_focus_appropriate"
},
{
"predicate": "dialog.focus_contained"
},
{
"predicate": "dialog.background_inert"
},
{
"predicate": "dialog.keyboard_exit_works"
},
{
"predicate": "dialog.focus_restored_logically"
}
]
},
"exceptions": [],
"implementation": "Implement the selected modal pattern; evaluate each underlying WCAG criterion separately.",
"laka": {
"change_level": "Major Change",
"internal_variables": {
"Object": "modal dialog in the declared test scope.",
"Conditions": "Use the listed states with a recorded role, fixture and environment.",
"Actions": "Execute the named task and its relevant recovery transitions.",
"Tools": "Use repository test adapters and qualified manual review where needed.",
"Resources": "Synthetic fixtures, a test environment, accountable owner and evidence store.",
"Outcomes": "The chosen modal contract is operable and preserves task continuity.",
"Feedback": "Preserve observations and create a linked regression check after repair.",
"Constraints": "Do not weaken security, erase information or reduce task functionality.",
"Value": "Support independent operation of this task without the recorded barrier.",
"Failure mode": "An assertion fails, remains unknown or regresses in a relevant state."
},
"meta_variables": [
"Scope",
"Detectability",
"Propagation",
"Reversibility"
]
},
"tests": [
{
"method": "mixed",
"steps": [
"Open with keyboard.",
"Inspect name and initial focus.",
"Traverse the dialog.",
"Close and inspect focus continuation."
],
"expected": "The chosen modal contract is operable and preserves task continuity.",
"evidence_required": [
"build and test fixture",
"rendered interaction observations",
"reviewed manual evidence where required"
]
}
],
"metrics": [
{
"measure": "supported required assertions",
"unit": "count",
"decision": "No false or unresolved required assertions.",
"denominator": "All applicable planned assertions for this bound instance."
}
],
"guardrails": [
"Do not focus hidden content.",
"Do not treat pattern success as full criterion coverage."
],
"owner": "Assigned accessibility implementation owner",
"execution_status": "NOT_TESTED"
}