{
  "id": "F109",
  "rulePrefix": "F109",
  "variant": null,
  "ruleType": "w3c-failure",
  "scanScope": "specimen",
  "synthetic": false,
  "status": "current",
  "title": "Failure of Success Criterion 3.3.8 and 3.3.9 due to preventing password or code re-entry in the same format",
  "summary": "preventing password or code re-entry in the same format",
  "whyItFails": "This page reproduces the F109 failure pattern so auditors can verify detection against 3.3.8, 3.3.9.",
  "principles": [
    "understandable"
  ],
  "guidelines": [
    "3.3"
  ],
  "successCriteria": [
    {
      "id": "3.3.8",
      "name": "Accessible Authentication (Minimum)",
      "level": "AA",
      "slug": "accessible-authentication-minimum"
    },
    {
      "id": "3.3.9",
      "name": "Accessible Authentication (Enhanced)",
      "level": "AAA",
      "slug": "accessible-authentication-enhanced"
    }
  ],
  "versions": [
    "2.2"
  ],
  "automatable": "partial",
  "requires": [
    "html",
    "js",
    "input"
  ],
  "isolated": true,
  "pairWith": [],
  "w3c": {
    "understanding": [
      "https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-minimum",
      "https://www.w3.org/WAI/WCAG22/Understanding/accessible-authentication-enhanced"
    ],
    "quickref": [
      "https://www.w3.org/WAI/WCAG22/quickref/#accessible-authentication-minimum",
      "https://www.w3.org/WAI/WCAG22/quickref/#accessible-authentication-enhanced"
    ],
    "technique": "https://www.w3.org/WAI/WCAG22/Techniques/failures/F109"
  },
  "specimen": {
    "html": "<form>\n  <label for=\"f109-pw\">Password</label>\n  <input type=\"password\" id=\"f109-pw\" name=\"password\" autocomplete=\"new-password\">\n  <label for=\"f109-confirm\">Confirm password</label>\n  <input type=\"password\" id=\"f109-confirm\" name=\"confirm\" autocomplete=\"new-password\">\n  <p class=\"f109-note\">Paste is disabled — you must re-type the password manually.</p>\n  <button type=\"submit\">Create account</button>\n</form>",
    "css": "",
    "js": "document.getElementById('f109-confirm')?.addEventListener('paste', (e) => e.preventDefault());",
    "assets": [],
    "demoHint": "Try pasting into Confirm password — paste is blocked so codes cannot be re-entered in the same format."
  },
  "expectedFindings": [
    {
      "sc": "3.3.8",
      "outcome": "fail",
      "note": "Specimen demonstrates failure of 3.3.8."
    },
    {
      "sc": "3.3.9",
      "outcome": "fail",
      "note": "Specimen demonstrates failure of 3.3.9."
    }
  ],
  "mustNotFlag": [],
  "manualCheck": "Confirm the specimen demonstrates the documented F109 failure in isolation.",
  "generated": {
    "url": "https://wcagfail.patternd.io/specimens/F109/",
    "lastmod": "2026-10-08"
  }
}
