{
  "test_case_id": "A11Y-MOB-015",
  "title": "iOS captions and hearing settings",
  "category": "mobile_accessibility",
  "procedure_version": "2026.08.27-rc.9",
  "rule_type": "journey",
  "wcag_criteria": [
    "1.3.4",
    "1.4.10",
    "2.1.1",
    "2.4.11",
    "2.5.8"
  ],
  "level": "AA",
  "risk": "medium",
  "risk_basis": "Checks iOS captions and hearing settings on physical supported mobile hardware. People most likely affected: disabled mobile users who rely on voice, switches, keyboards, magnification, captions, reduced motion or adapted input. The named mobile configuration may prevent task completion, error recovery or state preservation. In the recorded ios-alternative-input environment, exercise the physical device in each required orientation, text size and input mode; touch geometry, on-screen keyboards, system bars and responsive state changes can expose device-only blockers.",
  "review_status": "draft",
  "reviewed_at": "",
  "review_note": "Template content is subject to a hash-bound internal consistency review. Formal assessment claims require competent execution, current evidence and the applicable legal, participant and organisational authority.",
  "method_label": "Mobile accessibility journey",
  "tester_level": "Experienced mobile accessibility tester",
  "estimated_duration": "Typically 69–100 minutes for the stated single-target assumptions; use the component breakdown when estimating a real sample.",
  "execution_class": "real_device_manual",
  "automation_support": "supporting_evidence_only",
  "simulation_policy": "simulation_prohibited_for_coverage",
  "plain_summary": "Checks iOS captions and hearing settings on physical supported mobile hardware.",
  "objective": "Verify iOS captions and hearing settings on physical supported mobile hardware.",
  "test_subject": "The frozen mobile task executed on the named physical device and input or display configuration.",
  "test_targets": [
    "The selected complete task and states relevant to iOS captions and hearing settings on physical hardware."
  ],
  "applicability": "Apply iOS captions and hearing settings when the frozen mobile task executed on the named physical device and input or display configuration. The selected focus is iOS captions and hearing settings.",
  "applicability_questions": [
    "Does the frozen scope contain a target relevant to iOS captions and hearing settings?",
    "Are the required real environments, versions and settings identified separately from diagnostic simulations?",
    "Which default, revealed, error, interruption, recovery and confirmation states can change the result?",
    "Does a scope exclusion need to be reported separately from target applicability?"
  ],
  "inapplicability_conditions": [
    "The frozen mobile scope contains no task, control or media relevant to iOS captions and hearing settings."
  ],
  "assumptions": [
    "The selected scope identifies the product version, technologies, states and important user journeys being evaluated.",
    "The tester knows how to use this method and any required assistive technology.",
    "Known browser or assistive-technology limitations are recorded instead of being assigned to the product without evidence."
  ],
  "accessibility_support_assumptions": [
    "The result covers only the browsers, platforms, readers and assistive technologies that were actually tested.",
    "Do not apply a result from one technology combination to an untested combination or to every user."
  ],
  "prerequisites": [
    "The product area and test targets are agreed before testing starts.",
    "The operating system, browser, viewport and input method are recorded.",
    "Test data is safe to use and does not expose unnecessary personal information."
  ],
  "required_environment_fields": [
    "operating_system",
    "operating_system_version",
    "browser",
    "browser_version",
    "viewport_css_pixels",
    "input_method",
    "assistive_technology",
    "assistive_technology_version",
    "device_model",
    "orientation"
  ],
  "steps": [
    {
      "step_id": "S1",
      "title": "Prepare the scope, target and environment",
      "phase": "prepare",
      "test_target": "The selected complete task and states relevant to iOS captions and hearing settings on physical hardware.",
      "required_state": "For iOS captions and hearing settings, the product version and scope are frozen; every selected target and material starting state is uniquely identified.",
      "tool_or_command": "Use the scope record and worksheet environment fields for iOS captions and hearing settings: operating_system, operating_system_version, browser, browser_version, viewport_css_pixels, input_method, assistive_technology, assistive_technology_version, device_model, orientation.",
      "action": "Before executing iOS captions and hearing settings, freeze the product version and scope. Inventory each applicable target, select the required starting states, prepare safe test data and record every required environment value. Complete any named known-good calibration before attributing an observation to the product.",
      "expected": "The selected targets, states, test data, environment and any scope limitations are complete enough for another qualified tester to reproduce the setup.",
      "failure_observation": "During iOS captions and hearing settings, the target, starting state, environment or scope record remains ambiguous for the scenario named Prepare the scope, target and environment. The preparation result cannot be demonstrated: The selected targets, states, test data, environment and any scope limitations are complete enough for another qualified tester to reproduce the setup.",
      "evidence_to_record": "Scope/version reference; target inventory; starting states; safe-data reference; every required environment value; calibration result or reason it is not required.",
      "decision_effect": "For iOS captions and hearing settings, an incomplete setup blocks the affected execution or leaves the omitted target untested; it never creates a pass or product failure.",
      "recovery_or_repeat": "For iOS captions and hearing settings, correct the setup gap, preserve the original blocked record and start a new execution observation before proceeding.",
      "novice_guidance": "For iOS captions and hearing settings, do not begin from an undocumented browser tab, document copy, device state, participant plan or evidence set. Record the exact item you will test first.",
      "limitations_and_claim_boundary": "This scenario records the action named Prepare the scope, target and environment for iOS captions and hearing settings in ios-alternative-input. It does not establish behaviour for another target, state or environment and does not set a WCAG conformance decision.",
      "scenario_purpose": "For iOS captions and hearing settings, prepare the named scenario: Prepare the scope, target and environment. Target: The selected complete task and states relevant to iOS captions and hearing settings on physical hardware. The preparation must establish this result: The selected targets, states, test data, environment and any scope limitations are complete enough for another qualified tester to reproduce the setup.",
      "user_impact": "The named mobile configuration may prevent task completion, error recovery or state preservation. This scenario isolates that risk in the action named Prepare the scope, target and environment.",
      "decision_rules": {
        "passed": "Record passed for the iOS captions and hearing settings scenario named Prepare the scope, target and environment only when the evidence (Scope/version reference; target inventory; starting states; safe-data reference; every required environment value; calibration result or reason it is not required.) supports: The selected targets, states, test data, environment and any scope limitations are complete enough for another qualified tester to reproduce the setup.",
        "failed": "Record failed when the action is completed and this failure observation is reproduced: During iOS captions and hearing settings, the target, starting state, environment or scope record remains ambiguous for the scenario named Prepare the scope, target and environment. The preparation result cannot be demonstrated: The selected targets, states, test data, environment and any scope limitations are complete enough for another qualified tester to reproduce the setup.",
        "not_applicable": "The frozen mobile scope contains no task, control or media relevant to iOS captions and hearing settings.",
        "blocked": "Record blocked, not passed, when An applicable target, required state, complete process or named real environment was not executed."
      }
    },
    {
      "step_id": "S2",
      "title": "Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device",
      "phase": "test",
      "action": "Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device.",
      "expected": "Captions/transcripts expose audio information and supported appearance preferences remain legible.",
      "evidence_to_record": "Exact command, gesture, switch, key or setting and resulting target/focus/state. Capture screen recording, displayed speech/command output or detailed contemporaneous notes and record every fallback intervention.",
      "test_target": "The selected complete task and states relevant to iOS captions and hearing settings on physical hardware.",
      "required_state": "For iOS captions and hearing settings, begin in the recorded default state for the selected iOS captions and hearing settings target before this action; preserve the exact content, account, platform and configuration used.",
      "tool_or_command": "In ios-alternative-input, Use the named accessibility feature on the recorded physical iOS, iPadOS or Android device. Follow the platform's current first-party setup path and perform the exact gesture, switch, keyboard or voice command stated in the action.",
      "decision_effect": "For iOS captions and hearing settings, compare the recorded observation with this expected result: Captions/transcripts expose audio information and supported appearance preferences remain legible. A material mismatch fails this target expectation; conflicting platform or responsibility evidence is cannot tell, not a pass.",
      "recovery_or_repeat": "Repeat success, error and recovery paths without falling back to unrecorded touch or visual assistance. Repeat in portrait and landscape where supported and through backgrounding, interruption, validation and recovery states that can change the task. Preserve the first iOS captions and hearing settings observation when repeating.",
      "novice_guidance": "For iOS captions and hearing settings: Record device model, operating-system version, app or browser version, orientation and accessibility-feature configuration before testing; emulators and desktop device modes are diagnostic only.",
      "scenario_purpose": "For iOS captions and hearing settings, execute the named scenario: Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device. Target: The selected complete task and states relevant to iOS captions and hearing settings on physical hardware. Compare the observation with this result: Captions/transcripts expose audio information and supported appearance preferences remain legible.",
      "user_impact": "The named mobile configuration may prevent task completion, error recovery or state preservation. This scenario isolates that risk in the action named Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device.",
      "failure_observation": "After the tester completes the iOS captions and hearing settings scenario named Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device, the recorded observation for the target is inconsistent with the required result: Captions/transcripts expose audio information and supported appearance preferences remain legible.",
      "decision_rules": {
        "passed": "Record passed for the iOS captions and hearing settings scenario named Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device only when the evidence (Exact command, gesture, switch, key or setting and resulting target/focus/state. Capture screen recording, displayed speech/command output or detailed contemporaneous notes and record every fallback intervention.) supports: Captions/transcripts expose audio information and supported appearance preferences remain legible.",
        "failed": "Record failed when the action is completed and this failure observation is reproduced: After the tester completes the iOS captions and hearing settings scenario named Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device, the recorded observation for the target is inconsistent with the required result: Captions/transcripts expose audio information and supported appearance preferences remain legible.",
        "not_applicable": "The frozen mobile scope contains no task, control or media relevant to iOS captions and hearing settings.",
        "blocked": "Record blocked, not passed, when An applicable target, required state, complete process or named real environment was not executed."
      },
      "limitations_and_claim_boundary": "This scenario records the action named Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device for iOS captions and hearing settings in ios-alternative-input. It does not establish behaviour for another target, state or environment and does not set a WCAG conformance decision."
    },
    {
      "step_id": "S3",
      "title": "Repeat material variations and recovery",
      "phase": "test",
      "test_target": "The selected complete task and states relevant to iOS captions and hearing settings on physical hardware.",
      "required_state": "For iOS captions and hearing settings: Default, revealed, loading, empty, validation error, interruption, recovery and confirmation where meaningful. Every required environment, viewport, orientation, language and authenticated state recorded in the frozen scope.",
      "tool_or_command": "For iOS captions and hearing settings, use the same recorded method, then change only the state, environment or recovery condition being compared.",
      "action": "Repeat the iOS captions and hearing settings action for each inventoried variation that can change the outcome. Include relevant default, revealed, error, interruption, recovery and confirmation states and complete the selected process from start to finish where this test can affect task completion.",
      "expected": "Every material variation and required recovery path has its own reproducible observation; no unexecuted state is merged into a passing result.",
      "failure_observation": "After the tester completes the iOS captions and hearing settings scenario named Repeat material variations and recovery, the recorded observation for the target is inconsistent with the required result: Every material variation and required recovery path has its own reproducible observation; no unexecuted state is merged into a passing result.",
      "evidence_to_record": "Variation identifier; changed state or environment; start and end points; actual observation; recovery result; intervention; evidence reference and target outcome.",
      "decision_effect": "For iOS captions and hearing settings, a reproduced mismatch fails the affected target; an omitted required variation remains untested; conflicting evidence remains cannot tell.",
      "recovery_or_repeat": "Repeat this action for every required variation of iOS captions and hearing settings and after a material target, content, state, environment or configuration change. Preserve the original observation.",
      "novice_guidance": "For iOS captions and hearing settings, change one material condition at a time where practical. Do not assume that a passing default state covers errors, overlays, orientation changes, interruptions or recovery.",
      "limitations_and_claim_boundary": "This scenario records the action named Repeat material variations and recovery for iOS captions and hearing settings in ios-alternative-input. It does not establish behaviour for another target, state or environment and does not set a WCAG conformance decision.",
      "scenario_purpose": "For iOS captions and hearing settings, execute the named scenario: Repeat material variations and recovery. Target: The selected complete task and states relevant to iOS captions and hearing settings on physical hardware. Compare the observation with this result: Every material variation and required recovery path has its own reproducible observation; no unexecuted state is merged into a passing result.",
      "user_impact": "The named mobile configuration may prevent task completion, error recovery or state preservation. This scenario isolates that risk in the action named Repeat material variations and recovery.",
      "decision_rules": {
        "passed": "Record passed for the iOS captions and hearing settings scenario named Repeat material variations and recovery only when the evidence (Variation identifier; changed state or environment; start and end points; actual observation; recovery result; intervention; evidence reference and target outcome.) supports: Every material variation and required recovery path has its own reproducible observation; no unexecuted state is merged into a passing result.",
        "failed": "Record failed when the action is completed and this failure observation is reproduced: After the tester completes the iOS captions and hearing settings scenario named Repeat material variations and recovery, the recorded observation for the target is inconsistent with the required result: Every material variation and required recovery path has its own reproducible observation; no unexecuted state is merged into a passing result.",
        "not_applicable": "The frozen mobile scope contains no task, control or media relevant to iOS captions and hearing settings.",
        "blocked": "Record blocked, not passed, when An applicable target, required state, complete process or named real environment was not executed."
      }
    }
  ],
  "expectations": [
    {
      "expectation_id": "E1",
      "statement": "Captions/transcripts expose audio information and supported appearance preferences remain legible.",
      "outcome_if_unmet": "failed"
    }
  ],
  "exceptions": [
    "Use only an exception stated in the relevant standard, or an agreed out-of-scope decision. Record the reason and evidence.",
    "A tool limitation, lack of time or unavailable assistive technology is a limitation or incomplete result, not a pass."
  ],
  "outcome_definitions": {
    "passed": "The applicable test target meets every expectation in this rule or procedure.",
    "failed": "The applicable test target does not meet at least one expectation in this rule or procedure.",
    "inapplicable": "The test subject contains no target that matches this rule or procedure's applicability.",
    "cantTell": "The tester cannot fully determine applicability or whether every expectation is met.",
    "untested": "The test subject or target was not evaluated using this rule or procedure."
  },
  "examples": [
    {
      "example_id": "A11Y-MOB-015-EX-PASSED",
      "outcome": "passed",
      "scenario": "Representative calibration example, not client evidence. Procedure: iOS captions and hearing settings. Target: The selected complete task and states relevant to iOS captions and hearing settings on physical hardware. Action: Before executing iOS captions and hearing settings, freeze the product version and scope. Inventory each applicable target, select the required starting states, prepare safe test data and record every required environment value. Complete any named known-good calibration before attributing an observation to the product. Evidence: Scope/version reference; target inventory; starting states; safe-data reference; every required environment value; calibration result or reason it is not required. Observed result: The selected targets, states, test data, environment and any scope limitations are complete enough for another qualified tester to reproduce the setup."
    },
    {
      "example_id": "A11Y-MOB-015-EX-FAILED",
      "outcome": "failed",
      "scenario": "Representative calibration example, not client evidence. Procedure: iOS captions and hearing settings. Target: The selected complete task and states relevant to iOS captions and hearing settings on physical hardware. The tester completes the recorded action, but the captured evidence does not demonstrate: The selected targets, states, test data, environment and any scope limitations are complete enough for another qualified tester to reproduce the setup. The failed target and state remain separate from unexecuted targets."
    },
    {
      "example_id": "A11Y-MOB-015-EX-INAPPLICABLE",
      "outcome": "inapplicable",
      "scenario": "Representative scope example, not client evidence. The frozen mobile scope contains no task, control or media relevant to iOS captions and hearing settings. The completed inventory is retained as the basis for the inapplicable outcome."
    },
    {
      "example_id": "A11Y-MOB-015-EX-CANTTELL",
      "outcome": "cantTell",
      "scenario": "Representative unresolved example, not client evidence. The target is applicable, but conflicting evidence or unresolved responsibility prevents a defensible expectation decision after recorded comparison. The record identifies the conflicting evidence and the expertise or comparison needed to resolve it."
    },
    {
      "example_id": "A11Y-MOB-015-EX-UNTESTED",
      "outcome": "untested",
      "scenario": "Representative execution-gap example, not client evidence. An applicable target, required state, complete process or named real environment was not executed. The missing action, state or environment remains open and is not converted to a pass."
    }
  ],
  "sampling_rule": "Run each selected critical journey from start to finish, including its main error and recovery paths. Record which journeys and states were included.",
  "complete_process_requirement": "If this check is part of a user journey, test the selected journey from start to finish, including relevant errors and recovery. Record any path that was not tested.",
  "pass_criteria": "Captions/transcripts expose audio information and supported appearance preferences remain legible.",
  "fail_criteria": "Fail if any applicable sampled instance does not satisfy: Captions/transcripts expose audio information and supported appearance preferences remain legible.",
  "evidence_requirements": [
    "Device model, operating system, browser/app, accessibility feature/input, versions, orientation and settings.",
    "Exact command, gesture, switch, key or setting and resulting target/focus/state.",
    "Success, validation error, interruption, recovery and confirmation evidence plus every fallback."
  ],
  "official_source_ids": [
    "W3C-WCAG22",
    "W3C-MOBILE",
    "APPLE-A11Y-TESTING",
    "W3C-WCAG22-TECHNIQUES"
  ],
  "act_rule_mapping": {
    "format_alignment": "This is a project-authored manual procedure, not a W3C Approved ACT Rule.",
    "approved_rule_ids": [],
    "approved_rules": [],
    "mapping_status": "No supporting ACT rule selected",
    "registry_reviewed_at": "2026-08-27",
    "registry_source_id": "W3C-ACT-RULES",
    "mapping_rationale": "An ACT result can support only the part of this procedure covered by that rule. It does not replace the remaining manual or assistive-technology checks."
  },
  "technique_traceability": [
    {
      "wcag_criterion": "1.3.4",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/orientation.html",
      "techniques_registry_source_id": "W3C-WCAG22-TECHNIQUES",
      "technique_ids_applied": [],
      "failure_ids_applied": [],
      "selection_status": "Select relevant techniques during the test",
      "selection_note": "Techniques are examples, not extra requirements. Record any technique or common failure used, but decide the result against the success criterion."
    },
    {
      "wcag_criterion": "1.4.10",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/reflow.html",
      "techniques_registry_source_id": "W3C-WCAG22-TECHNIQUES",
      "technique_ids_applied": [],
      "failure_ids_applied": [],
      "selection_status": "Select relevant techniques during the test",
      "selection_note": "Techniques are examples, not extra requirements. Record any technique or common failure used, but decide the result against the success criterion."
    },
    {
      "wcag_criterion": "2.1.1",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/keyboard.html",
      "techniques_registry_source_id": "W3C-WCAG22-TECHNIQUES",
      "technique_ids_applied": [],
      "failure_ids_applied": [],
      "selection_status": "Select relevant techniques during the test",
      "selection_note": "Techniques are examples, not extra requirements. Record any technique or common failure used, but decide the result against the success criterion."
    },
    {
      "wcag_criterion": "2.4.11",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html",
      "techniques_registry_source_id": "W3C-WCAG22-TECHNIQUES",
      "technique_ids_applied": [],
      "failure_ids_applied": [],
      "selection_status": "Select relevant techniques during the test",
      "selection_note": "Techniques are examples, not extra requirements. Record any technique or common failure used, but decide the result against the success criterion."
    },
    {
      "wcag_criterion": "2.5.8",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html",
      "techniques_registry_source_id": "W3C-WCAG22-TECHNIQUES",
      "technique_ids_applied": [],
      "failure_ids_applied": [],
      "selection_status": "Select relevant techniques during the test",
      "selection_note": "Techniques are examples, not extra requirements. Record any technique or common failure used, but decide the result against the success criterion."
    }
  ],
  "platform_ids": [
    "ios-alternative-input"
  ],
  "review_requirement": "A qualified accessibility reviewer must confirm the scope, evidence and result before it is reported as final.",
  "known_issues": [
    "Check relevant browser, tool or assistive-technology release notes before assigning unexpected behaviour to the product.",
    "If responsibility is unclear, record the reproducible behaviour and use cannot tell until it is resolved."
  ],
  "change_log": [
    {
      "version": "2026.08.27-rc.9",
      "change": "Reworked for plain language, case-focused steps, scoped evidence and transparent draft review status."
    },
    {
      "version": "2026.08.27-rc.9",
      "change": "Case-specific specialist content, evidence and platform boundaries completed for hash-bound agent verification."
    },
    {
      "version": "2026.08.27-rc.9",
      "change": "Removed administrative filler steps, added contextual risk and result boundaries, and prepared the concise worksheet flow for internal consistency review."
    }
  ],
  "tags": [
    "alternative-input",
    "mobile",
    "mobile_accessibility",
    "physical-device"
  ],
  "status": "draft",
  "authoring_readiness": "content_complete",
  "short_title": "iOS captions and hearing settings",
  "catalogue_version": "2026.08.27-rc.9",
  "identity": {
    "stable_case_id": "A11Y-MOB-015",
    "procedure_title": "iOS captions and hearing settings",
    "short_user_centred_title": "iOS captions and hearing settings",
    "procedure_version": "2026.08.27-rc.9",
    "catalogue_version": "2026.08.27-rc.9",
    "status": "draft",
    "category": "mobile_accessibility",
    "procedure_type": "journey",
    "execution_class": "real_device_manual",
    "intended_tester_expertise": "Experienced mobile accessibility tester",
    "effort_model": {
      "model": "component_effort_v2",
      "small_scope_minutes": {
        "minimum": 69,
        "maximum": 100
      },
      "warning": "Add a new per-target execution and evidence allowance for each additional target class or state that could produce a different result. Add setup time for each distinct environment.",
      "calculation_guidance": "Add the recorded setup, per-target execution, evidence and technical-review components; then apply the stated variation rule.",
      "unit": "minutes",
      "setup": {
        "typical": 20,
        "includes": "Confirm scope and target, prepare safe data, establish the required state and record the tool or environment version."
      },
      "per_target_execution": {
        "typical": 25,
        "includes": "Perform the procedure once for one target in its selected states; this excludes remediation and retesting."
      },
      "evidence_capture": {
        "typical": 12,
        "includes": "Capture, name and cross-reference the minimum reproducible evidence while removing unnecessary personal or secret data."
      },
      "technical_review": {
        "typical": 12,
        "includes": "Check applicability, observations, outcome logic, evidence sufficiency and report wording before issue publication."
      },
      "typical_total_range": {
        "minimum": 69,
        "maximum": 100
      },
      "assumptions": "one short app journey on one physical device; repeat platforms, orientations and accessibility-service configurations separately",
      "variation": "Add a new per-target execution and evidence allowance for each additional target class or state that could produce a different result. Add setup time for each distinct environment.",
      "excludes": "Client coordination, inaccessible-environment recovery, recruitment, legal review, remediation implementation and waiting time unless the procedure states otherwise."
    },
    "related_procedures": [
      "A11Y-WCAG-010",
      "A11Y-WCAG-017",
      "A11Y-WCAG-021",
      "A11Y-WCAG-034",
      "A11Y-WCAG-040"
    ],
    "replaces": [],
    "replaced_by": []
  },
  "purpose_and_user_impact": {
    "barrier_detected": "Checks iOS captions and hearing settings on physical supported mobile hardware.",
    "people_likely_affected": [
      "Disabled mobile users who rely on voice, switches, keyboards, magnification, captions, reduced motion or adapted input."
    ],
    "functionality_or_information_at_risk": "The named mobile configuration may prevent task completion, error recovery or state preservation.",
    "result_scope": "platform_interoperability",
    "claim_boundary": "This procedure records how iOS captions and hearing settings behaves on ios-alternative-input. It can expose evidence relevant to WCAG 1.3.4, 1.4.10, 2.1.1, 2.4.11 and 2.5.8 for the tested task and environment. Use the linked conformance procedures for WCAG 1.3.4, 1.4.10, 2.1.1, 2.4.11 and 2.5.8 to assess the complete requirements across the declared conformance scope.",
    "why_it_matters": "The named mobile configuration may prevent task completion, error recovery or state preservation. The procedure is necessary because checks iOS captions and hearing settings on physical supported mobile hardware and the result can otherwise conceal a material barrier for the affected people named here."
  },
  "requirement_mappings": [
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "1.3.4",
      "requirement_level": "AA",
      "requirement_type": "secondary",
      "coverage_type": "partial",
      "canonical_source": "https://www.w3.org/TR/WCAG22/",
      "source_status": "W3C Recommendation",
      "source_version_or_publication_date": "WCAG 2.2; 12 December 2024 Recommendation",
      "date_verified": "2026-08-27",
      "reviewer_notes": "The mapping describes the intended scope of this draft procedure. Independent standards review remains required.",
      "limitations": "This Mobile accessibility journey observes iOS captions and hearing settings in the recorded ios-alternative-input environment. Use the linked WCAG 1.3.4 conformance procedure to evaluate all normative parts of WCAG 1.3.4 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ]
    },
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "1.4.10",
      "requirement_level": "AA",
      "requirement_type": "secondary",
      "coverage_type": "partial",
      "canonical_source": "https://www.w3.org/TR/WCAG22/",
      "source_status": "W3C Recommendation",
      "source_version_or_publication_date": "WCAG 2.2; 12 December 2024 Recommendation",
      "date_verified": "2026-08-27",
      "reviewer_notes": "The mapping describes the intended scope of this draft procedure. Independent standards review remains required.",
      "limitations": "This Mobile accessibility journey observes iOS captions and hearing settings in the recorded ios-alternative-input environment. Use the linked WCAG 1.4.10 conformance procedure to evaluate all normative parts of WCAG 1.4.10 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ]
    },
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "2.1.1",
      "requirement_level": "AA",
      "requirement_type": "secondary",
      "coverage_type": "partial",
      "canonical_source": "https://www.w3.org/TR/WCAG22/",
      "source_status": "W3C Recommendation",
      "source_version_or_publication_date": "WCAG 2.2; 12 December 2024 Recommendation",
      "date_verified": "2026-08-27",
      "reviewer_notes": "The mapping describes the intended scope of this draft procedure. Independent standards review remains required.",
      "limitations": "This Mobile accessibility journey observes iOS captions and hearing settings in the recorded ios-alternative-input environment. Use the linked WCAG 2.1.1 conformance procedure to evaluate all normative parts of WCAG 2.1.1 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ]
    },
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "2.4.11",
      "requirement_level": "AA",
      "requirement_type": "secondary",
      "coverage_type": "partial",
      "canonical_source": "https://www.w3.org/TR/WCAG22/",
      "source_status": "W3C Recommendation",
      "source_version_or_publication_date": "WCAG 2.2; 12 December 2024 Recommendation",
      "date_verified": "2026-08-27",
      "reviewer_notes": "The mapping describes the intended scope of this draft procedure. Independent standards review remains required.",
      "limitations": "This Mobile accessibility journey observes iOS captions and hearing settings in the recorded ios-alternative-input environment. Use the linked WCAG 2.4.11 conformance procedure to evaluate all normative parts of WCAG 2.4.11 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ]
    },
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "2.5.8",
      "requirement_level": "AA",
      "requirement_type": "secondary",
      "coverage_type": "partial",
      "canonical_source": "https://www.w3.org/TR/WCAG22/",
      "source_status": "W3C Recommendation",
      "source_version_or_publication_date": "WCAG 2.2; 12 December 2024 Recommendation",
      "date_verified": "2026-08-27",
      "reviewer_notes": "The mapping describes the intended scope of this draft procedure. Independent standards review remains required.",
      "limitations": "This Mobile accessibility journey observes iOS captions and hearing settings in the recorded ios-alternative-input environment. Use the linked WCAG 2.5.8 conformance procedure to evaluate all normative parts of WCAG 2.5.8 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ]
    },
    {
      "source_id": "W3C-MOBILE",
      "requirement_id": "W3C-MOBILE",
      "requirement_level": "informative",
      "requirement_type": "platform",
      "coverage_type": "supporting",
      "canonical_source": "https://www.w3.org/WAI/standards-guidelines/mobile/",
      "source_status": "living_guidance",
      "source_version_or_publication_date": "Current first-party publication; exact version pending source review",
      "date_verified": "2026-08-27",
      "reviewer_notes": "Supporting source. Procedure-level content review remains recorded separately.",
      "limitations": "This source does not override WCAG or create an additional WCAG conformance requirement.",
      "dependent_fields": [
        "prerequisites",
        "environment",
        "steps"
      ]
    },
    {
      "source_id": "APPLE-A11Y-TESTING",
      "requirement_id": "APPLE-A11Y-TESTING",
      "requirement_level": "informative",
      "requirement_type": "platform",
      "coverage_type": "supporting",
      "canonical_source": "https://developer.apple.com/documentation/accessibility/performing-accessibility-testing-for-your-app",
      "source_status": "vendor_guidance",
      "source_version_or_publication_date": "Current first-party publication; exact version pending source review",
      "date_verified": "2026-08-27",
      "reviewer_notes": "Supporting source. Procedure-level content review remains recorded separately.",
      "limitations": "This source does not override WCAG or create an additional WCAG conformance requirement.",
      "dependent_fields": [
        "prerequisites",
        "environment",
        "steps"
      ]
    },
    {
      "source_id": "W3C-WCAG22-TECHNIQUES",
      "requirement_id": "W3C-WCAG22-TECHNIQUES",
      "requirement_level": "informative",
      "requirement_type": "platform",
      "coverage_type": "supporting",
      "canonical_source": "https://www.w3.org/WAI/WCAG22/Techniques/",
      "source_status": "living_guidance",
      "source_version_or_publication_date": "Techniques for WCAG 2.2",
      "date_verified": "2026-08-27",
      "reviewer_notes": "Supporting source. Procedure-level content review remains recorded separately.",
      "limitations": "This source does not override WCAG or create an additional WCAG conformance requirement.",
      "dependent_fields": [
        "prerequisites",
        "environment",
        "steps"
      ]
    }
  ],
  "applicability_model": {
    "test_subject": "The frozen mobile task executed on the named physical device and input or display configuration.",
    "test_targets": [
      "The selected complete task and states relevant to iOS captions and hearing settings on physical hardware."
    ],
    "objective_questions": [
      "Does the frozen scope contain a target relevant to iOS captions and hearing settings?",
      "Are the required real environments, versions and settings identified separately from diagnostic simulations?",
      "Which default, revealed, error, interruption, recovery and confirmation states can change the result?",
      "Does a scope exclusion need to be reported separately from target applicability?"
    ],
    "subjective_judgements": [
      "Record any judgement about meaning, equivalence, task success, platform responsibility or exception use with evidence for independent review."
    ],
    "inapplicability_conditions": [
      "The frozen mobile scope contains no task, control or media relevant to iOS captions and hearing settings."
    ],
    "scope_exclusions": [
      "An agreed exclusion is a reporting limitation, not an inapplicable target and not a pass."
    ],
    "required_states_and_variations": [
      "Default, revealed, loading, empty, validation error, interruption, recovery and confirmation where meaningful.",
      "Every required environment, viewport, orientation, language and authenticated state recorded in the frozen scope."
    ],
    "complete_process_dependencies": "Run each selected critical process from its defined start through success, at least one representative error, interruption and recovery, and confirmation where the focus can affect task completion.",
    "conforming_alternate_version_considerations": "A conforming alternate version can affect a WCAG report only when all WCAG conformance conditions are verified separately. It does not erase a platform or usability observation."
  },
  "normative_exceptions": [],
  "normative_exceptions_absent_reason": "This platform, journey, usability or quality procedure creates no additional normative exception. Apply exceptions only in the linked atomic or criterion-level conformance procedure and preserve that separate decision.",
  "environment": {
    "required_tester_expertise": "Experienced mobile accessibility tester",
    "required_platforms": [
      "ios-alternative-input"
    ],
    "minimum_environment_fields": [
      "operating_system",
      "operating_system_version",
      "browser",
      "browser_version",
      "viewport_css_pixels",
      "input_method",
      "assistive_technology",
      "assistive_technology_version",
      "device_model",
      "orientation"
    ],
    "product_and_content_version_required": true,
    "viewport_and_orientation_required": true,
    "input_mode_required": true,
    "relevant_settings": [
      "Physical device model",
      "Operating system",
      "Browser or app",
      "Input/accessibility feature",
      "Orientation",
      "Display and text size"
    ],
    "known_platform_limitations": [
      "Only the recorded physical-device execution counts. Results do not represent every device, operating-system release or accessibility configuration.",
      "Check relevant browser, tool or assistive-technology release notes before assigning unexpected behaviour to the product.",
      "If responsibility is unclear, record the reproducible behaviour and use cannot tell until it is resolved."
    ],
    "clean_state_requirements": [
      "Complete a known-good calibration in the same environment before product testing.",
      "Start from a recorded clean or known state and preserve any prior preferences, extensions, cache or profile settings that can affect output."
    ],
    "test_data_and_privacy_constraints": [
      "Use authorised synthetic or controlled data.",
      "Do not record credentials, secrets or unnecessary personal data."
    ],
    "coverage_boundary": "Only the recorded physical-device execution counts. Results do not represent every device, operating-system release or accessibility configuration."
  },
  "decision_logic": {
    "target_passed": "Captions/transcripts expose audio information and supported appearance preferences remain legible.",
    "target_failed": "An applicable iOS captions and hearing settings target has a reproducible material barrier against one or more stated expectations; identify the exact expectation, state and evidence.",
    "target_inapplicable": "The frozen mobile scope contains no task, control or media relevant to iOS captions and hearing settings.",
    "target_cant_tell": "The target is applicable, but conflicting evidence or unresolved responsibility prevents a defensible expectation decision after recorded comparison.",
    "target_untested": "An applicable target, required state, complete process or named real environment was not executed.",
    "aggregation": "Preserve every target/environment outcome. Any failed target prevents an overall passed procedure result. cantTell and untested remain unresolved; inapplicable is valid only when the completed inventory contains no applicable target.",
    "wcag_requirement_decision": "This specialist, platform, document, usability or quality result does not set a WCAG success criterion to satisfied or not_satisfied automatically. Use linked atomic and criterion-level procedures for that separate decision.",
    "conforming_alternate_version_effect": "Record alternate-version evidence separately. It does not erase a barrier in this tested version or environment.",
    "passed_automation_follow_up": "A checker, accessibility-tree inspection, emulator or simulated assistive technology is diagnostic evidence only. Complete every required manual, real-platform, contextual and exception check.",
    "platform_responsibility": "Compare the product with a known-good control and an authorised alternate environment. Record product defect, external limitation or unresolved responsibility only when evidence supports it; otherwise use cantTell.",
    "claim_readiness": "Schema validation or a passed target never creates a conformance or release claim. Required executions, a distinct competent review, limitations and any applicable legal, participant or organisational authority remain separate gates."
  },
  "evidence_specification": [
    {
      "evidence_id": "EV1",
      "method": "physical_device_record",
      "record": "Device model, operating system, browser/app, accessibility feature/input, versions, orientation and settings.",
      "review_purpose": "Allow an independent reviewer to reproduce the target, environment, action, actual behaviour and decision.",
      "privacy_and_security": "Reference or redact sensitive material. Do not store credentials, secrets, unnecessary personal data or unconsented participant data.",
      "required_for_formal_result": true
    },
    {
      "evidence_id": "EV2",
      "method": "interaction_sequence",
      "record": "Exact command, gesture, switch, key or setting and resulting target/focus/state.",
      "review_purpose": "Allow an independent reviewer to reproduce the target, environment, action, actual behaviour and decision.",
      "privacy_and_security": "Reference or redact sensitive material. Do not store credentials, secrets, unnecessary personal data or unconsented participant data.",
      "required_for_formal_result": true
    },
    {
      "evidence_id": "EV3",
      "method": "journey_record",
      "record": "Success, validation error, interruption, recovery and confirmation evidence plus every fallback.",
      "review_purpose": "Allow an independent reviewer to reproduce the target, environment, action, actual behaviour and decision.",
      "privacy_and_security": "Reference or redact sensitive material. Do not store credentials, secrets, unnecessary personal data or unconsented participant data.",
      "required_for_formal_result": true
    }
  ],
  "calibration_examples": [
    {
      "example_id": "A11Y-MOB-015-EX-PASS",
      "outcome": "passed",
      "scenario": "In ios-alternative-input, the selected iOS captions and hearing settings target completes the recorded action and meets this expectation: Captions/transcripts expose audio information and supported appearance preferences remain legible.",
      "explanation": "The example is a calibration scenario, not an execution or approval.",
      "fixture_id": "",
      "fixture_version": "",
      "machine_testable": false
    },
    {
      "example_id": "A11Y-MOB-015-EX-FAIL",
      "outcome": "failed",
      "scenario": "An applicable iOS captions and hearing settings target produces a reproducible barrier during the named action, with the exact state and affected user task recorded.",
      "explanation": "A failed target remains failed even if another environment or target passes.",
      "fixture_id": "",
      "fixture_version": "",
      "machine_testable": false
    },
    {
      "example_id": "A11Y-MOB-015-EX-INAPPLICABLE",
      "outcome": "inapplicable",
      "scenario": "The frozen mobile scope contains no task, control or media relevant to iOS captions and hearing settings.",
      "explanation": "Inapplicable requires a completed inventory showing that no target matches applicability; a missing environment is not inapplicable.",
      "fixture_id": "",
      "fixture_version": "",
      "machine_testable": false
    },
    {
      "example_id": "A11Y-MOB-015-EX-CANTTELL",
      "outcome": "cantTell",
      "scenario": "The iOS captions and hearing settings target is applicable, but conflicting product/platform evidence or missing authoritative information prevents a defensible responsibility or expectation decision.",
      "explanation": "Record the conflict, comparisons attempted and person or evidence needed to resolve it.",
      "fixture_id": "",
      "fixture_version": "",
      "machine_testable": false
    },
    {
      "example_id": "A11Y-MOB-015-EX-UNTESTED",
      "outcome": "untested",
      "scenario": "The iOS captions and hearing settings target is applicable, but a required state, complete process or real environment was not executed.",
      "explanation": "Untested remains incomplete and cannot be converted to passed or inapplicable.",
      "fixture_id": "",
      "fixture_version": "",
      "machine_testable": false
    }
  ],
  "review_record": {
    "author": "",
    "method_reviewer": "",
    "independent_standards_reviewer": "",
    "accessibility_ui_reviewer": "",
    "author_date": "",
    "method_review_date": "",
    "standards_review_date": "",
    "ui_review_date": "",
    "source_versions_reviewed": [],
    "exceptions_reviewed": false,
    "known_limitations": [
      "Only the recorded physical-device execution counts. Results do not represent every device, operating-system release or accessibility configuration.",
      "Real execution evidence and any customer-required legal, participant or organisational authority remain separate."
    ],
    "open_issues": [
      "Execute all required real environments and calibration cases.",
      "Complete a distinct competent review and retain any unresolved material finding as blocked or cantTell."
    ],
    "decision": "pending",
    "next_review_date": "",
    "status_transition_reason": "",
    "release_gate_id": "",
    "release_gate_completed_at": "",
    "approval_authority": "",
    "approval_date": ""
  },
  "privacy_and_security": {
    "browser_storage": "Worksheet data is stored only in this browser's local storage until the user exports or clears it.",
    "network_transmission": "The static library does not upload worksheet data.",
    "data_minimisation": "Record only evidence necessary to reproduce and review the decision.",
    "redaction": "Remove credentials, secrets and unnecessary personal or participant data before export or sharing.",
    "retention_and_deletion": "Apply the engagement retention schedule and clear local browser data when it is no longer required."
  },
  "version_history": [
    {
      "version": "2026.08.27-rc.9",
      "change": "Reworked for plain language, case-focused steps, scoped evidence and transparent draft review status."
    },
    {
      "version": "2026.08.27-rc.9",
      "change": "Migrated to professional catalogue schema v3 with separated outcomes, structured authority, applicability, evidence, decision and review records."
    },
    {
      "version": "2026.08.27-rc.9",
      "change": "Specialist procedure mapped to its task family and current first-party platform guidance and checked for internal consistency; competent review and real execution remain separate."
    },
    {
      "version": "2026.08.27-rc.9",
      "change": "Added explicit preparation and variation/recovery steps plus a bounded representative worked example for paid-template use."
    },
    {
      "version": "2026.08.27-rc.9",
      "change": "Procedure guidance and presentation simplified without changing draft governance status."
    }
  ],
  "migration": {
    "from_schema": "accessibility-test-catalog.v2",
    "from_procedure_version": "2026.08.04.1",
    "migrated_at": "2026-08-27",
    "content_review_state": "commercial_completeness_upgrade_agent_verified",
    "stable_identifier_preserved": true,
    "legacy_url_preserved": true,
    "delivery_model": "professional_delivery_v2",
    "agent_content_validation": {
      "status": "complete",
      "method": "case_specific_semantic_and_operational_checks_v1",
      "checked_fields": [
        "target",
        "state",
        "tool",
        "action",
        "expected_observation",
        "failure_observation",
        "evidence",
        "outcome_rules",
        "claim_boundary",
        "compact_examples"
      ],
      "human_approval_effect": "none"
    }
  },
  "test_type": "platform_interoperability",
  "related_procedures": [
    "A11Y-WCAG-010",
    "A11Y-WCAG-017",
    "A11Y-WCAG-021",
    "A11Y-WCAG-034",
    "A11Y-WCAG-040"
  ],
  "platform_validation": {
    "required": true,
    "evidence_status": "not_executed",
    "real_device_or_at_claimed": false,
    "required_environment_ids": [
      "ios-alternative-input"
    ],
    "calibration_required": true,
    "evidence_refs": [],
    "limitations": "Only the recorded physical-device execution counts. Results do not represent every device, operating-system release or accessibility configuration."
  },
  "effort_guidance": {
    "unit": "minutes",
    "setup": {
      "typical": 20,
      "includes": "Confirm scope and target, prepare safe data, establish the required state and record the tool or environment version."
    },
    "per_target_execution": {
      "typical": 25,
      "includes": "Perform the procedure once for one target in its selected states; this excludes remediation and retesting."
    },
    "evidence_capture": {
      "typical": 12,
      "includes": "Capture, name and cross-reference the minimum reproducible evidence while removing unnecessary personal or secret data."
    },
    "technical_review": {
      "typical": 12,
      "includes": "Check applicability, observations, outcome logic, evidence sufficiency and report wording before issue publication."
    },
    "typical_total_range": {
      "minimum": 69,
      "maximum": 100
    },
    "assumptions": "one short app journey on one physical device; repeat platforms, orientations and accessibility-service configurations separately",
    "variation": "Add a new per-target execution and evidence allowance for each additional target class or state that could produce a different result. Add setup time for each distinct environment.",
    "excludes": "Client coordination, inaccessible-environment recovery, recruitment, legal review, remediation implementation and waiting time unless the procedure states otherwise."
  },
  "worked_examples": [
    {
      "example_id": "A11Y-MOB-015-WORKED-001",
      "example_kind": "representative_synthetic_example",
      "context": "Representative synthetic example for iOS captions and hearing settings on a fictional, version-frozen product target; no client or participant execution occurred.",
      "inspected": "The tester follows S2 (Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device) using the target, required state, tool and repeat rule stated in this procedure.",
      "observed_output": "After the tester completes the iOS captions and hearing settings scenario named Enable iOS/iPadOS caption preferences and test relevant media with volume muted on the physical device, the recorded observation for the target is inconsistent with the required result: Captions/transcripts expose audio information and supported appearance preferences remain legible.",
      "evidence_captured": [
        "example-evidence-001: target and state record for The selected complete task and states relevant to iOS captions and hearing settings on physical hardware.",
        "example-evidence-002: contemporaneous observation from the named method — Exact command, gesture, switch, key or setting and resulting target/focus/state. Capture screen recording, displayed speech/command output or detailed contemporaneous notes and record every fallback intervention.",
        "example-evidence-003: comparison note linking the actual observation to the expected result and claim boundary"
      ],
      "tester_reasoning": "The recorded observation does not demonstrate the expected result: Captions/transcripts expose audio information and supported appearance preferences remain legible. The failed decision is limited to this synthetic target and state; unexecuted coverage is not inferred.",
      "decision": "failed",
      "completed_finding": {
        "finding_id": "A11Y-MOB-015-example-finding-001",
        "title": "iOS captions and hearing settings: expected result is not demonstrated",
        "severity": "medium",
        "user_impact": "The represented barrier may affect Disabled mobile users who rely on voice, switches, keyboards, magnification, captions, reduced motion or adapted input.",
        "evidence_refs": [
          "example-evidence-001",
          "example-evidence-002",
          "example-evidence-003"
        ]
      },
      "remediation_advice": "Change the represented target or process so it demonstrates this result: Captions/transcripts expose audio information and supported appearance preferences remain legible. Then rerun the affected step and every dependent variation.",
      "reviewer_feedback": "The reviewer confirms applicability, environment, actual-versus-expected comparison, evidence references and bounded wording; unsupported product-wide or conformance language is removed.",
      "final_client_report_wording": "Synthetic training finding: the sampled iOS captions and hearing settings target does not meet the procedure expectation in the recorded state. User impact and broader scope require evidence from the buyer's real execution.",
      "retest_outcome": "Synthetic retest example: after the represented change, repeat the failed step plus material error and recovery states. Close the finding only when new evidence demonstrates the expected result; otherwise retain the non-pass outcome.",
      "claim_boundary": "This is a representative, synthetic worked example for training and calibration. It is not evidence from a client product, participant or real assistive-technology execution."
    }
  ]
}
