Bow Tie Kreative WCAG Grammar

Example rules

LAKA-WCAG-FOCUS-VISIBILITY

wcag_requirement change level: Minor Change execution: NOT_TESTED

Object

focused control — A concrete authorized component instance; bind before execution.

States: focused overlay-open

Applicability — IF

  • control.receives_keyboard_focus

Requirement — THEN REQUIRE

  • OR
    • focus.control_not_entirely_obscured_by_authored_content
    • focus.criterion_note_conditions_verified

WCAG references

Implementation

Adjust the layout, scrolling or overlay interaction while preserving a meaningful focus path.

LAKA instantiation

Object
focused control 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 AA obstruction requirement holds for the concrete focused control.
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-focus-visibility.json
{
  "id": "LAKA-WCAG-FOCUS-VISIBILITY",
  "version": "1.0.0",
  "authority": "wcag_requirement",
  "source_refs": [
    "SC-2.4.11"
  ],
  "wcag_refs": [
    {
      "criterion_id": "2.4.11",
      "level": "AA"
    }
  ],
  "covers_full_criteria": false,
  "object": {
    "type": "focused control",
    "scope": "A concrete authorized component instance; bind before execution.",
    "states": [
      "focused",
      "overlay-open"
    ]
  },
  "applicability": {
    "predicate": "control.receives_keyboard_focus"
  },
  "require": {
    "any": [
      {
        "predicate": "focus.control_not_entirely_obscured_by_authored_content"
      },
      {
        "predicate": "focus.criterion_note_conditions_verified"
      }
    ]
  },
  "exceptions": [
    {
      "clause": "2.4.11 notes on user-movable or user-opened content",
      "instance_scope": "Only the specific overlay and focus interaction.",
      "proof_required": true,
      "review_required": true
    }
  ],
  "implementation": "Adjust the layout, scrolling or overlay interaction while preserving a meaningful focus path.",
  "laka": {
    "change_level": "Minor Change",
    "internal_variables": {
      "Object": "focused control 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 AA obstruction requirement holds for the concrete focused control.",
      "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 relevant authored overlays.",
        "Navigate to the control by keyboard.",
        "Inspect the focused item and any permitted dismissal behavior."
      ],
      "expected": "The AA obstruction requirement holds for the concrete focused control.",
      "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 remove focus indicators.",
    "Keep stronger complete-visibility policy results separate."
  ],
  "owner": "Assigned accessibility implementation owner",
  "execution_status": "NOT_TESTED"
}

This rule as JSON →