{
  "test_case_id": "A11Y-NVDA-003",
  "title": "NVDA with Firefox: Forms, instructions and errors",
  "category": "screen_reader_desktop",
  "procedure_version": "2026.08.27-rc.9",
  "rule_type": "journey",
  "wcag_criteria": [
    "1.3.1",
    "3.3.1",
    "3.3.2",
    "3.3.3",
    "4.1.2"
  ],
  "level": "AA",
  "risk": "medium",
  "risk_basis": "Detect form journeys whose labels, instructions, errors, focus or status changes are missing, misleading or unusable when using NVDA with Firefox. People most likely affected: blind and low-vision people using the named screen reader and browser combination. Users may enter incorrect data, be unable to find or correct errors, lose context or fail to confirm submission. In the recorded windows-nvda-firefox environment, check browse and focus modes, structural navigation, live changes and recovery; misleading speech or cursor position can hide context even when controls remain visually available.",
  "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": "Desktop screen-reader journey",
  "tester_level": "Experienced screen-reader 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": "Complete a form, trigger validation errors, recover and confirm success using real NVDA with Firefox.",
  "objective": "Detect form journeys whose labels, instructions, errors, focus or status changes are missing, misleading or unusable when using NVDA with Firefox.",
  "test_subject": "A selected form journey in the recorded real NVDA with Firefox environment, including success, validation error, interruption, recovery and confirmation.",
  "test_targets": [
    "The complete form journey and each unique field, instruction, error, status message and focus transition encountered."
  ],
  "applicability": "Apply when the product includes a form that must be evaluated for practical interoperability with NVDA with Firefox. This is a journey, not a substitute for criterion-specific WCAG testing.",
  "applicability_questions": [
    "Is a form journey selected and safe test data authorised?",
    "Is real NVDA with Firefox available in the exact recorded environment?",
    "Are all important success, validation, interruption, recovery and confirmation states available?"
  ],
  "inapplicability_conditions": [
    "The selected subject contains no form journey requiring this platform-interoperability evaluation."
  ],
  "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": [
    "A licensed or legitimately installed current screen reader is running on the named supported platform.",
    "The tester is proficient with the screen reader and its browser interaction modes.",
    "Exact OS, browser, screen-reader and synthesizer versions are recorded.",
    "The journey uses authorised synthetic or controlled client data."
  ],
  "required_environment_fields": [
    "operating_system",
    "operating_system_version",
    "browser",
    "browser_version",
    "viewport_css_pixels",
    "input_method",
    "assistive_technology",
    "assistive_technology_version"
  ],
  "steps": [
    {
      "step_id": "S1",
      "title": "Record the form journey and safe data",
      "phase": "prepare",
      "scenario_purpose": "Freeze the form path and expected states before using a screen reader.",
      "user_impact": "Missing error or recovery states can produce a false impression that the journey is usable.",
      "test_target": "One complete form from its entry point to confirmation.",
      "required_state": "Known build, authorised account, blank form and synthetic data set.",
      "tool_or_command": "Journey inventory and controlled test-data reference.",
      "action": "Record the entry route, completion point, field types, instructions, empty/malformed/conflicting validation cases, interruption point, recovery path and confirmation state.",
      "expected": "Every state has a stable identifier and safe input data.",
      "failure_observation": "A required state, route or safe value is missing or cannot be restored.",
      "evidence_to_record": "Journey/state inventory, build, account type and data-set ID.",
      "decision_rules": {
        "passed": "All planned states are reproducible.",
        "failed": "The inventory omits a materially different form or validation state.",
        "not_applicable": "No form journey exists in the agreed sample.",
        "blocked": "Permissions or safe data prevent access to a required state."
      },
      "decision_effect": "Passed: All planned states are reproducible. Failed: The inventory omits a materially different form or validation state.",
      "recovery_or_repeat": "Resolve access and data blockers before AT execution; never use live personal data to fill the gap.",
      "novice_guidance": "Resolve access and data blockers before AT execution; never use live personal data to fill the gap.",
      "limitations_and_claim_boundary": "This is test preparation, not real screen-reader evidence."
    },
    {
      "step_id": "S2",
      "title": "Record the real NVDA environment",
      "phase": "prepare",
      "scenario_purpose": "Make later observations reproducible and distinguish product behaviour from platform configuration.",
      "user_impact": "Unrecorded versions and settings make findings difficult to review or retest.",
      "test_target": "The exact screen-reader, browser and operating environment.",
      "required_state": "Clean browser profile, default screen-reader settings except recorded user preferences, product at the frozen build.",
      "tool_or_command": "A real Windows environment with NVDA and Firefox; Speech Viewer may support evidence but never replaces listening.",
      "action": "Record NVDA 2025.1.2 with Firefox 141 on Windows 11 24H2; record later versions when used. Include speech/verbosity, keyboard or gesture configuration, orientation where relevant, extensions and display/text settings.",
      "expected": "All material versions, device details and settings are recorded before product testing.",
      "failure_observation": "The execution uses simulation, an unrecorded version or a materially customised setting that is not disclosed.",
      "evidence_to_record": "Environment ID, version strings, settings export or screenshots and real-device attestation.",
      "decision_rules": {
        "passed": "A real, fully recorded environment is used.",
        "failed": "Do not assign a product failure solely from this setup record; correct the environment and repeat.",
        "not_applicable": "The procedure is outside the approved plan.",
        "blocked": "The real screen reader or physical device is unavailable."
      },
      "decision_effect": "Passed: A real, fully recorded environment is used. Failed: Do not assign a product failure solely from this setup record; correct the environment and repeat.",
      "recovery_or_repeat": "Mark execution blocked. Automation or tree inspection may be attached as supporting diagnostics but cannot replace this run.",
      "novice_guidance": "Mark execution blocked. Automation or tree inspection may be attached as supporting diagnostics but cannot replace this run.",
      "limitations_and_claim_boundary": "Results apply only to the recorded environment pair and settings."
    },
    {
      "step_id": "S3",
      "title": "Run the known-good form control",
      "phase": "prepare",
      "scenario_purpose": "Demonstrate that the environment can expose a labelled field, error and status before testing the product.",
      "user_impact": "A broken lab setup can otherwise be misreported as a product defect.",
      "test_target": "The version-frozen calibration form linked by the test plan.",
      "required_state": "Same environment as S2; calibration fixture reset to blank.",
      "tool_or_command": "NVDA 2025.1.2 with Firefox 141 on Windows 11 24H2; record later versions when used.",
      "action": "Using Use Tab and Shift+Tab for sequential navigation, NVDA+Space to change Browse/Focus Mode deliberately, and type with the physical keyboard. Enter the labelled control, submit it empty, locate its error, correct it and confirm the success status against the fixture answer key.",
      "expected": "The control produces the frozen expected announcements and focus transitions.",
      "failure_observation": "The calibration output differs materially from its answer key or cannot be completed.",
      "evidence_to_record": "Fixture ID/version/hash, exact output transcript, commands/gestures and result.",
      "decision_rules": {
        "passed": "The environment passes every calibration checkpoint.",
        "failed": "Stop product testing and repair or replace the environment; this is not a product finding.",
        "not_applicable": "The approved plan explicitly supplies an equivalent, version-frozen calibration with its own answer key.",
        "blocked": "No valid calibration fixture can be executed."
      },
      "decision_effect": "Passed: The environment passes every calibration checkpoint. Failed: Stop product testing and repair or replace the environment; this is not a product finding.",
      "recovery_or_repeat": "Restart the screen reader and browser/device once; if still failing, create an environment blocker.",
      "novice_guidance": "Restart the screen reader and browser/device once; if still failing, create an environment blocker.",
      "limitations_and_claim_boundary": "Calibration validates the test environment only; it does not prove product accessibility."
    },
    {
      "step_id": "S4",
      "title": "Discover the blank form and its instructions",
      "phase": "test",
      "scenario_purpose": "Check that a nonvisual user can find the form and understand what is required before entering data.",
      "user_impact": "Hidden context or instructions cause avoidable errors and abandonment.",
      "test_target": "The form heading, introductory instructions and first control.",
      "required_state": "Blank form at its entry route with focus at page or screen start.",
      "tool_or_command": "NVDA 2025.1.2 with Firefox 141 on Windows 11 24H2; record later versions when used.",
      "action": "Use NVDA Browse Mode, F for form controls and NVDA+F7 Forms list only as a secondary inventory; then confirm the same controls in sequence. Identify the form purpose, required-field convention, first control name/role/state and any format or privacy instruction without visual assistance.",
      "expected": "Purpose and instructions are announced in a logical order before they are needed.",
      "failure_observation": "The form cannot be found, instructions are skipped or ambiguous, or required meaning depends on visual position alone.",
      "evidence_to_record": "Exact speech transcript, navigation commands/gestures, focus sequence and control metadata.",
      "decision_rules": {
        "passed": "All necessary context is discoverable before input.",
        "failed": "One or more necessary instructions are absent or not programmatically available.",
        "not_applicable": "The selected target contains no form.",
        "blocked": "The form cannot be loaded or the AT environment has become invalid."
      },
      "decision_effect": "Passed: All necessary context is discoverable before input. Failed: One or more necessary instructions are absent or not programmatically available.",
      "recovery_or_repeat": "Return to the known start and repeat once; if output changes, retain both runs and classify the result cannot-tell pending review.",
      "novice_guidance": "Return to the known start and repeat once; if output changes, retain both runs and classify the result cannot-tell pending review.",
      "limitations_and_claim_boundary": "This scenario covers discovery and instructions, not field entry or validation."
    },
    {
      "step_id": "S5",
      "title": "Enter data in one representative field type",
      "phase": "test",
      "scenario_purpose": "Verify a control exposes enough name, role, value and input purpose to enter and review data.",
      "user_impact": "Incorrect field semantics can prevent entry, review or correction.",
      "test_target": "One selected instance of each unique field type in the sample.",
      "required_state": "Focus on the first selected field; blank value; instructions already reviewed.",
      "tool_or_command": "NVDA 2025.1.2 with Firefox 141 on Windows 11 24H2; record later versions when used.",
      "action": "Use Tab and Shift+Tab for sequential navigation, NVDA+Space to change Browse/Focus Mode deliberately, and type with the physical keyboard. Announce the control, enter the authorised value, move away, return and review its name, role, state and value.",
      "expected": "The control is operable and the entered value remains understandable when revisited.",
      "failure_observation": "The control lacks an understandable name/role/state, cannot accept input, loses the value or announces a misleading value.",
      "evidence_to_record": "Control ID, exact output before/after entry, input used and resulting value/state.",
      "decision_rules": {
        "passed": "Each selected unique field type meets the observation.",
        "failed": "Any selected field type produces the failure observation.",
        "not_applicable": "The form has no editable or selectable controls.",
        "blocked": "A required input method, permission or safe value is unavailable."
      },
      "decision_effect": "Passed: Each selected unique field type meets the observation. Failed: Any selected field type produces the failure observation.",
      "recovery_or_repeat": "Reset only the affected field and repeat; do not test several field types in one evidence record.",
      "novice_guidance": "Reset only the affected field and repeat; do not test several field types in one evidence record.",
      "limitations_and_claim_boundary": "A passed representative field does not cover materially different control implementations."
    },
    {
      "step_id": "S6",
      "title": "Submit the form with an empty required field",
      "phase": "test",
      "scenario_purpose": "Verify the user is told an error occurred and can locate the affected field.",
      "user_impact": "Silent or disconnected errors prevent correction and task completion.",
      "test_target": "One required field and the form submission response.",
      "required_state": "Required field empty; all other mandatory fields contain valid synthetic data.",
      "tool_or_command": "NVDA 2025.1.2 with Firefox 141 on Windows 11 24H2; record later versions when used.",
      "action": "Submit once. Without visual assistance, determine that submission failed, locate the empty field and read its error. Use Use NVDA Browse Mode, F for form controls and NVDA+F7 Forms list only as a secondary inventory; then confirm the same controls in sequence.",
      "expected": "The error is announced or discoverable, identifies the field and explains that a value is required.",
      "failure_observation": "No error is exposed, focus moves unpredictably, the field cannot be located or the message does not identify the problem.",
      "evidence_to_record": "Submission command, focus before/after, exact announcement, error text and field relationship.",
      "decision_rules": {
        "passed": "The user can detect, locate and understand the empty-field error.",
        "failed": "Any required part of detection, location or understanding fails.",
        "not_applicable": "The selected form has no required fields.",
        "blocked": "The invalid state cannot be produced safely."
      },
      "decision_effect": "Passed: The user can detect, locate and understand the empty-field error. Failed: Any required part of detection, location or understanding fails.",
      "recovery_or_repeat": "Restore valid data to every other field and repeat once; retain server/network errors separately.",
      "novice_guidance": "Restore valid data to every other field and repeat once; retain server/network errors separately.",
      "limitations_and_claim_boundary": "This scenario covers the empty-required validation class only."
    },
    {
      "step_id": "S7",
      "title": "Submit one malformed value",
      "phase": "test",
      "scenario_purpose": "Verify format validation gives a usable correction path.",
      "user_impact": "Generic error messages force trial and error and increase cognitive load.",
      "test_target": "One field with a declared format rule, such as email or date.",
      "required_state": "The target field contains one controlled malformed value; other required fields are valid.",
      "tool_or_command": "NVDA 2025.1.2 with Firefox 141 on Windows 11 24H2; record later versions when used.",
      "action": "Submit once, locate the field without visual assistance, read the error and determine the expected format before changing the value.",
      "expected": "The error identifies the field, problem and usable correction without relying only on colour or position.",
      "failure_observation": "The message is absent, generic, detached or does not communicate a correction.",
      "evidence_to_record": "Malformed value class, exact error output, focus path and field/error relationship.",
      "decision_rules": {
        "passed": "The correction is understandable from the exposed message and instructions.",
        "failed": "The exposed information does not support correction.",
        "not_applicable": "No sampled field has a format rule.",
        "blocked": "The safe test environment rejects submission before the target validation runs."
      },
      "decision_effect": "Passed: The correction is understandable from the exposed message and instructions. Failed: The exposed information does not support correction.",
      "recovery_or_repeat": "Remove unrelated invalid data and repeat only this validation class.",
      "novice_guidance": "Remove unrelated invalid data and repeat only this validation class.",
      "limitations_and_claim_boundary": "Do not infer coverage of out-of-range or conflicting-value errors."
    },
    {
      "step_id": "S8",
      "title": "Recover after an interruption",
      "phase": "test",
      "scenario_purpose": "Check whether entered context survives a realistic interruption and return.",
      "user_impact": "Data loss or lost focus can force users to restart lengthy tasks.",
      "test_target": "The form at the approved interruption point.",
      "required_state": "At least two fields completed; focus on the recorded control.",
      "tool_or_command": "NVDA 2025.1.2 with Firefox 141 on Windows 11 24H2; record later versions when used.",
      "action": "Use the test plan's safe interruption, such as navigating to help and returning or backgrounding and restoring the app. Return once and review focus, context and entered values.",
      "expected": "The user returns to an understandable location with expected data preserved or receives a clear warning before loss.",
      "failure_observation": "Focus resets without explanation, context is lost, or entered data disappears without warning.",
      "evidence_to_record": "Interruption action, before/after focus and values, time away and exact output on return.",
      "decision_rules": {
        "passed": "Recovery preserves or clearly explains context and data.",
        "failed": "Unexpected loss or disorientation occurs.",
        "not_applicable": "The approved journey has no interruption or recovery path.",
        "blocked": "The environment terminates for an unrelated reason."
      },
      "decision_effect": "Passed: Recovery preserves or clearly explains context and data. Failed: Unexpected loss or disorientation occurs.",
      "recovery_or_repeat": "Repeat from a clean start; report intermittent behaviour with both evidence sets.",
      "novice_guidance": "Repeat from a clean start; report intermittent behaviour with both evidence sets.",
      "limitations_and_claim_boundary": "This covers the recorded interruption only, not every browser or operating-system event."
    },
    {
      "step_id": "S9",
      "title": "Correct errors and confirm completion",
      "phase": "test",
      "scenario_purpose": "Verify the user can complete the full form and understand the resulting status.",
      "user_impact": "A technically submitted form is not usable if success or the next action is unclear.",
      "test_target": "All fields, correction path, submit control and final confirmation.",
      "required_state": "Known error state from S6 or S7 with valid corrections available.",
      "tool_or_command": "NVDA 2025.1.2 with Firefox 141 on Windows 11 24H2; record later versions when used.",
      "action": "Correct each known error, submit once, then review the confirmation heading/status, reference number and next action without visual assistance.",
      "expected": "Submission completes, the confirmation is announced or discoverable and the next action is understandable.",
      "failure_observation": "An error persists without explanation, focus is lost, or success and next action are not exposed.",
      "evidence_to_record": "Corrections, final command, exact confirmation output, focus destination and reference value using synthetic data.",
      "decision_rules": {
        "passed": "The form completes and confirmation is understandable.",
        "failed": "Completion or confirmation fails for the recorded state.",
        "not_applicable": "The selected workflow intentionally has no submission or confirmation.",
        "blocked": "A service outage or test-account restriction prevents submission."
      },
      "decision_effect": "Passed: The form completes and confirmation is understandable. Failed: Completion or confirmation fails for the recorded state.",
      "recovery_or_repeat": "Record external service failures as blockers, restore the known state and repeat only after service recovery.",
      "novice_guidance": "Record external service failures as blockers, restore the known state and repeat only after service recovery.",
      "limitations_and_claim_boundary": "Passing this journey is platform- and sample-specific; it does not establish WCAG conformance or universal usability."
    }
  ],
  "expectations": [
    {
      "expectation_id": "E1",
      "statement": "The known-good calibration control produces its version-frozen expected output.",
      "outcome_if_unmet": "untested"
    }
  ],
  "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-NVDA-003-EX-PASSED",
      "outcome": "passed",
      "scenario": "Representative calibration example, not client evidence. Procedure: NVDA with Firefox: Forms, instructions and errors. Target: One complete form from its entry point to confirmation. Action: Record the entry route, completion point, field types, instructions, empty/malformed/conflicting validation cases, interruption point, recovery path and confirmation state. Evidence: Journey/state inventory, build, account type and data-set ID. Observed result: Every state has a stable identifier and safe input data."
    },
    {
      "example_id": "A11Y-NVDA-003-EX-FAILED",
      "outcome": "failed",
      "scenario": "Representative calibration example, not client evidence. Procedure: NVDA with Firefox: Forms, instructions and errors. Target: One complete form from its entry point to confirmation. The tester completes the recorded action, but the captured evidence does not demonstrate: Every state has a stable identifier and safe input data. The failed target and state remain separate from unexecuted targets."
    },
    {
      "example_id": "A11Y-NVDA-003-EX-INAPPLICABLE",
      "outcome": "inapplicable",
      "scenario": "Representative scope example, not client evidence. No form journey exists in the selected subject for this platform evaluation. The completed inventory is retained as the basis for the inapplicable outcome."
    },
    {
      "example_id": "A11Y-NVDA-003-EX-CANTTELL",
      "outcome": "cantTell",
      "scenario": "Representative unresolved example, not client evidence. Calibration passes and the behaviour is reproducible, but product, browser, operating-system, assistive-technology or configuration responsibility cannot be determined. The record identifies the conflicting evidence and the expertise or comparison needed to resolve it."
    },
    {
      "example_id": "A11Y-NVDA-003-EX-UNTESTED",
      "outcome": "untested",
      "scenario": "Representative execution-gap example, not client evidence. The target is applicable, but a required state, environment, action or evidence item was not completed. 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": "Using the recorded real NVDA with Firefox environment, the tester completes the selected form from entry through validation, correction, interruption/recovery and confirmation; labels, instructions, errors, focus and status output are understandable and usable.",
  "fail_criteria": "A barrier in the selected environment prevents independent completion or recovery, presents materially misleading output, hides an error or confirmation, or makes required form interaction unusable.",
  "evidence_requirements": [
    "Exact OS, browser, assistive-technology, physical device where applicable, settings and clean-state declaration.",
    "Fixture/version, actions, expected output and actual output.",
    "Speech Viewer extract or exact transcript, keystroke, system focus, Browse/Focus Mode and form state. for initial, error, recovery and confirmation states.",
    "Task steps, independent completion, assistance, interruption, recovery, confirmation and issue references.",
    "Product, browser, OS, assistive-technology and configuration checks plus unresolved questions."
  ],
  "official_source_ids": [
    "W3C-WCAG22",
    "W3C-ARIA-APG",
    "NVACCESS-NVDA-GUIDE",
    "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.1",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/info-and-relationships.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": "3.3.1",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/error-identification.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": "3.3.2",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/labels-or-instructions.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": "3.3.3",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/error-suggestion.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": "4.1.2",
      "understanding_url": "https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.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": [
    "windows-nvda-firefox"
  ],
  "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": "Individually authored reference-procedure content prepared for competent review and execution."
    },
    {
      "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": [
    "desktop",
    "nvda",
    "real-at",
    "screen_reader_desktop"
  ],
  "status": "draft",
  "authoring_readiness": "content_complete",
  "short_title": "Complete and correct a form with NVDA with Firefox",
  "catalogue_version": "2026.08.27-rc.9",
  "identity": {
    "stable_case_id": "A11Y-NVDA-003",
    "procedure_title": "NVDA with Firefox: Forms, instructions and errors",
    "short_user_centred_title": "Complete and correct a form with NVDA with Firefox",
    "procedure_version": "2026.08.27-rc.9",
    "catalogue_version": "2026.08.27-rc.9",
    "status": "draft",
    "category": "screen_reader_desktop",
    "procedure_type": "journey",
    "execution_class": "real_device_manual",
    "intended_tester_expertise": "Experienced screen-reader 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 journey in one recorded browser and screen-reader pair; mode changes, errors and dynamic states increase execution time",
      "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-007",
      "A11Y-WCAG-048",
      "A11Y-WCAG-049",
      "A11Y-WCAG-050",
      "A11Y-WCAG-054"
    ],
    "replaces": [],
    "replaced_by": []
  },
  "purpose_and_user_impact": {
    "barrier_detected": "Detect form journeys whose labels, instructions, errors, focus or status changes are missing, misleading or unusable when using NVDA with Firefox.",
    "people_likely_affected": [
      "Blind and low-vision people using the named screen reader and browser combination."
    ],
    "functionality_or_information_at_risk": "Users may enter incorrect data, be unable to find or correct errors, lose context or fail to confirm submission.",
    "result_scope": "platform_and_assistive_technology_journey",
    "claim_boundary": "This procedure records how Complete and correct a form with NVDA with Firefox behaves on windows-nvda-firefox. It can expose evidence relevant to WCAG 1.3.1, 3.3.1, 3.3.2, 3.3.3 and 4.1.2 for the tested task and environment. Use the linked conformance procedures for WCAG 1.3.1, 3.3.1, 3.3.2, 3.3.3 and 4.1.2 to assess the complete requirements across the declared conformance scope.",
    "why_it_matters": "Users may enter incorrect data, be unable to find or correct errors, lose context or fail to confirm submission. The procedure is necessary because detect form journeys whose labels, instructions, errors, focus or status changes are missing, misleading or unusable when using NVDA with Firefox 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.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": "Secondary relationship: this journey may reveal evidence relevant to the mapped criterion.",
      "limitations": "This Desktop screen-reader journey observes Complete and correct a form with NVDA with Firefox in the recorded windows-nvda-firefox environment. Use the linked WCAG 1.3.1 conformance procedure to evaluate all normative parts of WCAG 1.3.1 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ],
      "mapping_role": "secondary_requirement"
    },
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "3.3.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": "Secondary relationship: this journey may reveal evidence relevant to the mapped criterion.",
      "limitations": "This Desktop screen-reader journey observes Complete and correct a form with NVDA with Firefox in the recorded windows-nvda-firefox environment. Use the linked WCAG 3.3.1 conformance procedure to evaluate all normative parts of WCAG 3.3.1 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ],
      "mapping_role": "secondary_requirement"
    },
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "3.3.2",
      "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": "Secondary relationship: this journey may reveal evidence relevant to the mapped criterion.",
      "limitations": "This Desktop screen-reader journey observes Complete and correct a form with NVDA with Firefox in the recorded windows-nvda-firefox environment. Use the linked WCAG 3.3.2 conformance procedure to evaluate all normative parts of WCAG 3.3.2 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ],
      "mapping_role": "secondary_requirement"
    },
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "3.3.3",
      "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": "Secondary relationship: this journey may reveal evidence relevant to the mapped criterion.",
      "limitations": "This Desktop screen-reader journey observes Complete and correct a form with NVDA with Firefox in the recorded windows-nvda-firefox environment. Use the linked WCAG 3.3.3 conformance procedure to evaluate all normative parts of WCAG 3.3.3 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ],
      "mapping_role": "secondary_requirement"
    },
    {
      "source_id": "W3C-WCAG22",
      "requirement_id": "4.1.2",
      "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": "Secondary relationship: this journey may reveal evidence relevant to the mapped criterion.",
      "limitations": "This Desktop screen-reader journey observes Complete and correct a form with NVDA with Firefox in the recorded windows-nvda-firefox environment. Use the linked WCAG 4.1.2 conformance procedure to evaluate all normative parts of WCAG 4.1.2 across the declared scope.",
      "dependent_fields": [
        "applicability_model",
        "normative_exceptions",
        "steps",
        "decision_logic"
      ],
      "mapping_role": "secondary_requirement"
    },
    {
      "source_id": "W3C-ARIA-APG",
      "requirement_id": "W3C-ARIA-APG",
      "requirement_level": "informative",
      "requirement_type": "platform",
      "coverage_type": "supporting",
      "canonical_source": "https://www.w3.org/WAI/ARIA/apg/",
      "source_status": "living_guidance",
      "source_version_or_publication_date": "Current ARIA Authoring Practices Guide",
      "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": "NVACCESS-NVDA-GUIDE",
      "requirement_id": "NVACCESS-NVDA-GUIDE",
      "requirement_level": "informative",
      "requirement_type": "platform",
      "coverage_type": "supporting",
      "canonical_source": "https://download.nvaccess.org/documentation/en/userGuide.html",
      "source_status": "vendor_guidance",
      "source_version_or_publication_date": "NVDA 2026.1.1 User Guide",
      "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": "A selected form journey in the recorded real NVDA with Firefox environment, including success, validation error, interruption, recovery and confirmation.",
    "test_targets": [
      "The complete form journey and each unique field, instruction, error, status message and focus transition encountered."
    ],
    "objective_questions": [
      "Is a form journey selected and safe test data authorised?",
      "Is real NVDA with Firefox available in the exact recorded environment?",
      "Are all important success, validation, interruption, recovery and confirmation states available?"
    ],
    "subjective_judgements": [
      "Judge whether announcements and focus changes provide enough context to complete and recover from the task; record exact output before assigning responsibility."
    ],
    "inapplicability_conditions": [
      "The selected subject contains no form journey requiring this platform-interoperability evaluation."
    ],
    "scope_exclusions": [
      "Untested screen readers, browsers, operating systems and devices.",
      "WCAG aspects not exercised by the selected journey."
    ],
    "required_states_and_variations": [
      "Initial, data-entry, each validation-error class, interruption, recovery, successful submission and confirmation.",
      "Portrait and landscape for mobile where the product supports both; documented browser zoom and viewport for desktop."
    ],
    "complete_process_dependencies": "Run the selected form from entry to confirmation and include cancellation or interruption recovery where supported.",
    "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 has no normative exception of its own. Any exception affecting a linked WCAG criterion must be evaluated in the separate criterion-specific procedure.",
  "environment": {
    "required_tester_expertise": "Experienced screen-reader tester",
    "required_platforms": [
      "windows-nvda-firefox"
    ],
    "minimum_environment_fields": [
      "operating_system",
      "operating_system_version",
      "browser",
      "browser_version",
      "viewport_css_pixels",
      "input_method",
      "assistive_technology",
      "assistive_technology_version"
    ],
    "product_and_content_version_required": true,
    "viewport_and_orientation_required": true,
    "input_mode_required": true,
    "relevant_settings": [
      "NVDA keyboard layout",
      "Browse Mode automatic focus settings",
      "Speech synthesiser and verbosity",
      "Speech Viewer enabled for evidence",
      "Firefox accessibility and privacy extensions"
    ],
    "known_platform_limitations": [
      "Only a real execution in the exact recorded screen-reader/browser combination provides coverage. Simulation and accessibility-tree inspection do not.",
      "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": [
      "Use a clean browser profile or record every extension and preference that can alter the accessibility tree or form behaviour.",
      "Restart the browser, load the known-good calibration fixture first and confirm expected focus and speech output.",
      "Clear product test data only through an authorised, non-destructive test account workflow."
    ],
    "test_data_and_privacy_constraints": [
      "Use authorised synthetic or controlled data.",
      "Do not record credentials, secrets or unnecessary personal data."
    ],
    "coverage_boundary": "Only a real execution on the recorded NVDA with Firefox combination counts. Simulation, browser accessibility-tree inspection or another screen reader can support diagnosis but cannot claim this coverage."
  },
  "decision_logic": {
    "target_passed": "Using the recorded real NVDA with Firefox environment, the tester completes the selected form from entry through validation, correction, interruption/recovery and confirmation; labels, instructions, errors, focus and status output are understandable and usable.",
    "target_failed": "A barrier in the selected environment prevents independent completion or recovery, presents materially misleading output, hides an error or confirmation, or makes required form interaction unusable.",
    "target_inapplicable": "No form journey exists in the selected subject for this platform evaluation.",
    "target_cant_tell": "Calibration passes and the behaviour is reproducible, but product, browser, operating-system, assistive-technology or configuration responsibility cannot be determined.",
    "target_untested": "The target is applicable, but a required state, environment, action or evidence item was not completed.",
    "aggregation": "Preserve the whole-journey outcome and target-level observations. A critical failed state prevents a passed journey; cantTell and untested remain unresolved.",
    "wcag_requirement_decision": "This journey never sets a WCAG criterion to satisfied. It supplies platform evidence and may identify issues for separate atomic and criterion-level procedures.",
    "conforming_alternate_version_effect": "Apply a conforming alternate version only after its WCAG definition and every conformance condition have been verified and recorded; otherwise it does not change the decision.",
    "passed_automation_follow_up": "Accessibility-tree inspection and automation may support diagnosis but cannot replace the real assistive-technology execution.",
    "platform_responsibility": "When responsibility is unclear, preserve the reproducible behaviour and environment evidence and use cantTell until a qualified reviewer resolves it.",
    "claim_readiness": "A complete result may become ready_for_review. Schema validity, a passed target or a tool result cannot make it ready_for_scoped_claim without the independent evidence and governance gates."
  },
  "evidence_specification": [
    {
      "evidence_id": "EV1",
      "method": "environment_record",
      "record": "Exact OS, browser, assistive-technology, physical device where applicable, settings and clean-state declaration.",
      "review_purpose": "Establish the precise coverage boundary.",
      "privacy_and_security": "Use a redacted extract or evidence reference. Do not include credentials, secrets or unnecessary personal data.",
      "required_for_formal_result": true
    },
    {
      "evidence_id": "EV2",
      "method": "calibration_record",
      "record": "Fixture/version, actions, expected output and actual output.",
      "review_purpose": "Show that the environment could expose known form behaviour.",
      "privacy_and_security": "Use a redacted extract or evidence reference. Do not include credentials, secrets or unnecessary personal data.",
      "required_for_formal_result": true
    },
    {
      "evidence_id": "EV3",
      "method": "assistive_technology_output",
      "record": "Speech Viewer extract or exact transcript, keystroke, system focus, Browse/Focus Mode and form state. for initial, error, recovery and confirmation states.",
      "review_purpose": "Reproduce the announcements and interaction.",
      "privacy_and_security": "Use a redacted extract or evidence reference. Do not include credentials, secrets or unnecessary personal data.",
      "required_for_formal_result": true
    },
    {
      "evidence_id": "EV4",
      "method": "journey_record",
      "record": "Task steps, independent completion, assistance, interruption, recovery, confirmation and issue references.",
      "review_purpose": "Review practical completion separately from WCAG conformance.",
      "privacy_and_security": "Use a redacted extract or evidence reference. Do not include credentials, secrets or unnecessary personal data.",
      "required_for_formal_result": true
    },
    {
      "evidence_id": "EV5",
      "method": "responsibility_record",
      "record": "Product, browser, OS, assistive-technology and configuration checks plus unresolved questions.",
      "review_purpose": "Prevent unsupported attribution.",
      "privacy_and_security": "Use a redacted extract or evidence reference. Do not include credentials, secrets or unnecessary personal data.",
      "required_for_formal_result": true
    }
  ],
  "calibration_examples": [
    {
      "example_id": "A11Y-NVDA-003-EX-PASSED",
      "outcome": "passed",
      "scenario": "The tester discovers instructions, completes the form, finds and corrects each error, recovers after interruption and confirms submission without visual assistance.",
      "explanation": "The complete journey is usable in the exact recorded NVDA with Firefox environment.",
      "fixture_id": "nvda-form-pass",
      "fixture_version": "1.0.0",
      "machine_testable": true
    },
    {
      "example_id": "A11Y-NVDA-003-EX-FAILED",
      "outcome": "failed",
      "scenario": "After invalid submission, focus moves but the screen reader announces neither an error nor the affected field, and the tester cannot locate the problem.",
      "explanation": "A validation barrier prevents independent recovery in the selected journey.",
      "fixture_id": "nvda-form-error-fail",
      "fixture_version": "1.0.0",
      "machine_testable": true
    },
    {
      "example_id": "A11Y-NVDA-003-EX-INAPPLICABLE",
      "outcome": "inapplicable",
      "scenario": "The selected product area contains no form journey.",
      "explanation": "No journey target matches applicability.",
      "fixture_id": "",
      "fixture_version": "",
      "machine_testable": false
    },
    {
      "example_id": "A11Y-NVDA-003-EX-CANTTELL",
      "outcome": "cantTell",
      "scenario": "The same field works in calibration but fails only in the product; browser and assistive-technology evidence conflict and responsibility remains unresolved.",
      "explanation": "Record the behaviour and use cantTell rather than unsupported attribution.",
      "fixture_id": "",
      "fixture_version": "",
      "machine_testable": false
    },
    {
      "example_id": "A11Y-NVDA-003-EX-UNTESTED",
      "outcome": "untested",
      "scenario": "The success path was completed, but validation-error and recovery states were not executed.",
      "explanation": "Required journey states remain untested.",
      "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": [
      "This is a source-checked reference implementation subject to independent method and standards agent verification; formal approval remains separate."
    ],
    "open_issues": [
      "No real NVDA with Firefox execution has been performed or claimed. A registered real-platform adapter must execute the calibration and journey, followed by a distinct competent review, before platform coverage can be recorded.",
      "The linked WCAG criteria remain secondary partial mappings and require separate atomic or criterion-level assessment."
    ],
    "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": "Replaced migrated boilerplate with a case-specific reference implementation and completed independent agent content verification."
    },
    {
      "version": "2026.08.27-rc.9",
      "change": "Rewritten as an atomic professional-delivery flagship with component effort guidance and a complete representative worked example."
    },
    {
      "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": "flagship_operational_rewrite_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",
  "related_procedures": [
    "A11Y-WCAG-007",
    "A11Y-WCAG-048",
    "A11Y-WCAG-049",
    "A11Y-WCAG-050",
    "A11Y-WCAG-054"
  ],
  "platform_validation": {
    "required": true,
    "evidence_status": "not_executed",
    "real_device_or_at_claimed": false,
    "required_environment_ids": [
      "windows-nvda-firefox"
    ],
    "calibration_required": true,
    "evidence_refs": [],
    "limitations": "Only a real execution in the exact recorded screen-reader/browser combination provides coverage. Simulation and accessibility-tree inspection do not."
  },
  "library_layer": "journey",
  "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 journey in one recorded browser and screen-reader pair; mode changes, errors and dynamic states increase execution time",
    "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-NVDA-003-WORKED-001",
      "example_kind": "representative_synthetic_example",
      "context": "Representative synthetic example of the Civic Benefits Portal contact-details form; not a real NVDA run.",
      "inspected": "Blank-form discovery, email entry, empty telephone validation, malformed email validation, recovery and confirmation in the declared reference environment.",
      "observed_output": "The representative transcript records 'invalid entry' for email but provides no associated correction text; focus remains on Submit. The telephone error is announced with its field name.",
      "evidence_captured": [
        "EVD-REF-007 representative speech transcript",
        "EVD-REF-008 focus sequence",
        "EVD-REF-009 DOM relationship extract"
      ],
      "tester_reasoning": "One validation class is usable, but the malformed-email error cannot be located or corrected nonvisually. The environment execution remains blocked until a real NVDA/Firefox run occurs.",
      "decision": "blocked",
      "completed_finding": {
        "finding_id": "FND-REF-002",
        "title": "Email format error lacks an exposed correction message",
        "severity": "high",
        "user_impact": "A screen-reader user may know submission failed but not how to correct the email address.",
        "evidence_refs": [
          "EVD-REF-007",
          "EVD-REF-008",
          "EVD-REF-009"
        ]
      },
      "remediation_advice": "Associate concise format guidance with the email input, expose the error through its accessible description and move focus to or announce the error summary according to the form design.",
      "reviewer_feedback": "Reviewer changed the outcome from failed real-platform execution to blocked because the transcript is representative; the finding is retained as calibration content, not client evidence.",
      "final_client_report_wording": "Representative calibration example: the email-format error is not programmatically associated with the email field. Confirm the behaviour with the approved real NVDA and Firefox environment before issuing this wording as a client finding.",
      "retest_outcome": "RT-REF-003 remains blocked pending a real NVDA/Firefox environment; the synthetic fixed-state relationship inspection passes as supporting evidence only.",
      "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."
    }
  ]
}
