Bow Tie Kreative WCAG Grammar

Example rules

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

examples/laka-wcag-modal-pattern.json
{
  "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"
}

This rule as JSON →