{"id":51677261,"url":"https://github.com/accesswatch/qs-proposal","last_synced_at":"2026-07-15T08:03:04.699Z","repository":{"id":360806753,"uuid":"1251789370","full_name":"accesswatch/qs-proposal","owner":"accesswatch","description":"Quickstart accessibility strategy, discovery action, and dashboard proposal","archived":false,"fork":false,"pushed_at":"2026-06-08T14:48:59.000Z","size":147,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-08T16:26:49.310Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/accesswatch.png","metadata":{"files":{"readme":"README.html","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-27T23:13:19.000Z","updated_at":"2026-06-08T14:51:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/accesswatch/qs-proposal","commit_stats":null,"previous_names":["accesswatch/qs-proposal"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/accesswatch/qs-proposal","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Fqs-proposal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Fqs-proposal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Fqs-proposal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Fqs-proposal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/accesswatch","download_url":"https://codeload.github.com/accesswatch/qs-proposal/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Fqs-proposal/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35496719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-15T02:00:06.706Z","response_time":131,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-15T08:03:03.604Z","updated_at":"2026-07-15T08:03:04.686Z","avatar_url":"https://github.com/accesswatch.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!doctype html\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n  \u003cmeta charset=\"utf-8\" /\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /\u003e\n  \u003ctitle\u003eREADME\u003c/title\u003e\n  \u003cstyle\u003e\n    body { font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif; max-width: 1100px; margin: 2rem auto; padding: 0 1rem; line-height: 1.5; color: #1f2328; }\n    h1,h2,h3 { line-height: 1.25; }\n    code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }\n    pre { background: #f6f8fa; padding: 12px; overflow-x: auto; border-radius: 6px; }\n    table { border-collapse: collapse; width: 100%; }\n    th, td { border: 1px solid #d0d7de; padding: 6px 10px; text-align: left; }\n    th { background: #f6f8fa; }\n    a { color: #0969da; }\n  \u003c/style\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003ch1 id=\"qs-proposal-real-world-accessibility-pilot-stack\"\u003eQS Proposal: Real-World Accessibility Pilot Stack\u003c/h1\u003e\n\u003cp\u003eThis repo is a production-style proposal package for the Quickstart team to review and run.\u003c/p\u003e\n\u003cp\u003eIt includes:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eA dual-track scanning model (PR CI + live-site monitoring).\u003c/li\u003e\n\u003cli\u003eAutomated URL discovery (sitemap + crawl + Drupal/WordPress adapters).\u003c/li\u003e\n\u003cli\u003ePilot workflows for GLOW and Quickstart.\u003c/li\u003e\n\u003cli\u003eDashboard generation and publishing-ready artifacts.\u003c/li\u003e\n\u003cli\u003eStrategic planning docs in both Markdown and HTML.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"program-status-note-may-2026\"\u003eProgram status note (May 2026)\u003c/h2\u003e\n\u003cp\u003eThis \u003ccode\u003eqs-proposal\u003c/code\u003e repo is the planning and reporting source of truth for the current remediation wave.\u003c/p\u003e\n\u003cp\u003eLatest tracked status:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eDRC reported \u003cstrong\u003e2026 potential issues this week\u003c/strong\u003e via two CSV files (\u003ccode\u003eSummary\u003c/code\u003e + \u003ccode\u003eDetail\u003c/code\u003e), totaling \u003cstrong\u003e346 occurrences\u003c/strong\u003e across \u003cstrong\u003e10 issue IDs\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eHigh/medium-confidence remediation work was opened upstream in \u003ccode\u003eaz-digital/az_quickstart\u003c/code\u003e:\n\u003cul\u003e\n\u003cli\u003ePR #5639 (\u003ccode\u003eaccessibility-fixes-high-confidence\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePR #5640 (\u003ccode\u003eaccessibility-fixes-medium-confidence\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePR #5641 (\u003ccode\u003eaccessibility-fixes-button-names\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePR #5642 (\u003ccode\u003eaccessibility-fixes-mobile-nav-callback\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePR #5643 (\u003ccode\u003eaccessibility-fixes-carousel-aria\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePR #5644 (\u003ccode\u003eaccessibility-fixes-high-confidence-round2\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePR #5645 (\u003ccode\u003eaccessibility-fixes-high-confidence-round3\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\u003c/li\u003e\n\u003cli\u003eCI/workflow reliability fixes were applied where needed:\n\u003cul\u003e\n\u003cli\u003eComposer audit check now distinguishes true vulnerability failures from abandoned-package-only output.\u003c/li\u003e\n\u003cli\u003eCarousel JS lint failures were corrected.\u003c/li\u003e\n\u003c/ul\u003e\u003c/li\u003e\n\u003cli\u003eTugboat preview coverage is now available for PR #5639-#5645, including PR #5639 (\u003ccode\u003ehttps://pr5639-qxgkrp3cc8zfunxaiz5kh7tdzpqof0tk.tugboatqa.com\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eBefore/after reporting is scoped to the same URL set; projected impact remains pending post-merge verification scans.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"for-az-digital-team-members\"\u003eFor az-digital team members\u003c/h2\u003e\n\u003cp\u003eThis repository is the \u003cstrong\u003eprogram operations and reporting repo\u003c/strong\u003e for the Quickstart accessibility effort.\u003c/p\u003e\n\u003cp\u003eUse it for:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eReviewing current remediation status, PR mapping, and rollout notes.\u003c/li\u003e\n\u003cli\u003eRunning scanner workflows and discovery workflows.\u003c/li\u003e\n\u003cli\u003eRefreshing dashboard snapshots and leadership reporting artifacts.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eDo not use it for:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eShipping Quickstart product code changes (those belong in \u003ccode\u003eaz-digital/az_quickstart\u003c/code\u003e PRs).\u003c/li\u003e\n\u003cli\u003eTreating projected reduction values as final closure without same-scope verification rescans.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eRecommended operating flow for the az-digital team:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eReview open PR wave status (#5639-#5645) and Tugboat previews.\u003c/li\u003e\n\u003cli\u003eRun scan workflows in non-filing mode first (\u003ccode\u003efile_issues=false\u003c/code\u003e) for signal quality checks.\u003c/li\u003e\n\u003cli\u003eEnable filing only for intentional remediation cycles (\u003ccode\u003efile_issues=true\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eRun Dashboard Refresh after each validated cycle.\u003c/li\u003e\n\u003cli\u003eUse refreshed snapshots for leadership readouts and weekly governance review.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"stack-overview\"\u003eStack overview\u003c/h2\u003e\n\u003ch3 id=\"1-discovery-layer\"\u003e1) Discovery layer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLocal action: \u003ccode\u003e/.github/actions/discover\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eSources:\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esitemap.xml\u003c/code\u003e and sitemap indexes\u003c/li\u003e\n\u003cli\u003ebounded crawling from seed URLs\u003c/li\u003e\n\u003cli\u003eoptional Drupal route endpoint (\u003ccode\u003edrupal_routes_url\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eoptional WordPress REST endpoint (\u003ccode\u003ewordpress_base_url\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOutput:\u003c/li\u003e\n\u003cli\u003escanner-ready \u003ccode\u003eurl_configs\u003c/code\u003e JSON\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"2-scan-layer\"\u003e2) Scan layer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAction: \u003ccode\u003egithub/accessibility-scanner@v3\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eScans rendered pages with Playwright + Axe-core (and optional reflow scan).\u003c/li\u003e\n\u003cli\u003eFiles issues into target repo and deduplicates with \u003ccode\u003ecache_key\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"3-reportingdashboard-layer\"\u003e3) Reporting/dashboard layer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDashboard app: \u003ccode\u003edashboard/index.html\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eIncludes rule-level online help links and drill-in scenario guidance for top/repeated violations.\u003c/li\u003e\n\u003cli\u003eIncludes an Action Center with prioritized fixes, likely owner teams, likely fix areas, and one-click issue drafts.\u003c/li\u003e\n\u003cli\u003eAction Center now groups by fixable pattern (not per-instance noise) and includes occurrence/path blast radius for actionable issue drafts.\u003c/li\u003e\n\u003cli\u003eIncludes remediation tracking deltas between snapshots and dedupe/ignore guardrails so repeated or ignored findings do not inflate executive metrics.\u003c/li\u003e\n\u003cli\u003eIncludes Validation Wins panels so rule passes/resolved rules are visible alongside failures.\u003c/li\u003e\n\u003cli\u003eData files:\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edashboard/data/latest.json\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003edashboard/data/history/*.json\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRefresh pipeline:\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.github/workflows/dashboard-refresh.yml\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escripts/update-dashboard-data.mjs\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"4-proposal-docs\"\u003e4) Proposal docs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eQUICKSTART-ACCESSIBILITY-PLAN.md\u003c/code\u003e / \u003ccode\u003e.html\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etodo.md\u003c/code\u003e / \u003ccode\u003e.html\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eREADME.md\u003c/code\u003e / \u003ccode\u003e.html\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e.github/actions/discover/README.md\u003c/code\u003e / \u003ccode\u003e.html\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"workflows-in-this-repo\"\u003eWorkflows in this repo\u003c/h2\u003e\n\u003ch3 id=\"pilot-scan-workflow-real-world\"\u003ePilot scan workflow (real-world)\u003c/h3\u003e\n\u003cp\u003eFile: \u003ccode\u003e.github/workflows/pilot-scan.yml\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eRuns two pilot tracks:\n1. \u003cstrong\u003eQuickstart\u003c/strong\u003e (\u003ccode\u003ehttps://quickstart.arizona.edu\u003c/code\u003e)\n2. \u003cstrong\u003eGLOW\u003c/strong\u003e (\u003ccode\u003ehttps://www.letitglow.app\u003c/code\u003e)\u003c/p\u003e\n\u003cp\u003eEach track:\n1. Discovers URLs.\n2. Scans discovered URLs with \u003ccode\u003egithub/accessibility-scanner@v3\u003c/code\u003e only when \u003ccode\u003efile_issues=true\u003c/code\u003e.\n3. Keeps issue filing manual-only by default (\u003ccode\u003efile_issues=false\u003c/code\u003e).\u003c/p\u003e\n\u003ch3 id=\"quickstart-full-sitemap-rescan-workflow\"\u003eQuickstart full-sitemap rescan workflow\u003c/h3\u003e\n\u003cp\u003eFile: \u003ccode\u003e.github/workflows/quickstart-sitemap-rescan.yml\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThis workflow scans Quickstart using the full sitemap chunk input checked into:\n- \u003ccode\u003escan-input/quickstart-sitemap/chunks.json\u003c/code\u003e\n- \u003ccode\u003escan-input/quickstart-sitemap/chunk-*.json\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eIt runs each chunk in parallel and writes a run summary with total URL and chunk counts.\u003c/p\u003e\n\u003ch3 id=\"prcheck-in-simulation-workflow\"\u003ePR/check-in simulation workflow\u003c/h3\u003e\n\u003cp\u003eFile: \u003ccode\u003e.github/workflows/pr-checkin-simulation.yml\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThis covers CI-style pre-merge behavior:\n1. Runs on \u003ccode\u003eworkflow_dispatch\u003c/code\u003e only.\n2. Discovers URLs from a target rendered endpoint.\n3. Runs scanner with non-blocking or enforced mode when \u003ccode\u003efile_issues=true\u003c/code\u003e.\n4. Publishes a step summary showing target, URL count, mode, and outcome.\u003c/p\u003e\n\u003cp\u003eDefault target is \u003ccode\u003ehttps://quickstart.arizona.edu\u003c/code\u003e, and workflow-dispatch lets you pass any preview/staging URL.\u003c/p\u003e\n\u003ch3 id=\"dashboard-refresh-workflow\"\u003eDashboard refresh workflow\u003c/h3\u003e\n\u003cp\u003eFile: \u003ccode\u003e.github/workflows/dashboard-refresh.yml\u003c/code\u003e\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003ePulls current issue state from \u003ccode\u003eaccesswatch/qs-proposal\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRecomputes summary metrics and top violations.\u003c/li\u003e\n\u003cli\u003eWrites \u003ccode\u003edashboard/data/latest.json\u003c/code\u003e with executive brief + drill-downs + action center + scan operations simulation.\u003c/li\u003e\n\u003cli\u003eAppends timestamped history snapshot.\u003c/li\u003e\n\u003cli\u003eGenerates static email-ready report at \u003ccode\u003edashboard/static/latest-report.html\u003c/code\u003e.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch3 id=\"configurable-scan-workflow-frontendmanualadmin\"\u003eConfigurable scan workflow (frontend/manual/admin)\u003c/h3\u003e\n\u003cp\u003eFile: \u003ccode\u003e.github/workflows/configurable-scan.yml\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eThis workflow supports mixed operating modes from one entrypoint:\n1. \u003cstrong\u003eworkflow_dispatch\u003c/strong\u003e for frontend/manual launch requests.\n2. \u003cstrong\u003eMode options\u003c/strong\u003e: \u003ccode\u003edelta\u003c/code\u003e (new-issue-focused) and \u003ccode\u003ecomplete\u003c/code\u003e (authoritative full scan).\n3. \u003cstrong\u003eRule profiles\u003c/strong\u003e: \u003ccode\u003efocused-rules\u003c/code\u003e, \u003ccode\u003eall-rules\u003c/code\u003e, and \u003ccode\u003eaxe-only\u003c/code\u003e.\n4. \u003cstrong\u003eIssue filing control\u003c/strong\u003e: \u003ccode\u003efile_issues\u003c/code\u003e (default \u003ccode\u003efalse\u003c/code\u003e) to prevent automatic issue creation.\n5. Publishes run summary with selected combination and discovered URL count.\u003c/p\u003e\n\u003ch2 id=\"required-setup\"\u003eRequired setup\u003c/h2\u003e\n\u003ch3 id=\"secret-gh_token\"\u003eSecret: \u003ccode\u003eGH_TOKEN\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eAdd a fine-grained PAT as repository secret in \u003ccode\u003eaccesswatch/qs-proposal\u003c/code\u003e:\n- \u003ccode\u003eissues: write\u003c/code\u003e\n- \u003ccode\u003econtents: write\u003c/code\u003e\n- \u003ccode\u003epull_requests: write\u003c/code\u003e\n- \u003ccode\u003emetadata: read\u003c/code\u003e\n- \u003ccode\u003eactions: write\u003c/code\u003e\u003c/p\u003e\n\u003cp\u003eNote: \u003ccode\u003egithub/accessibility-scanner\u003c/code\u003e requires this token input.\u003c/p\u003e\n\u003ch3 id=\"secret-glow_auth_context-recommended-for-consent-gated-scans\"\u003eSecret: \u003ccode\u003eGLOW_AUTH_CONTEXT\u003c/code\u003e (recommended for consent-gated scans)\u003c/h3\u003e\n\u003cp\u003eAdd a repository secret named \u003ccode\u003eGLOW_AUTH_CONTEXT\u003c/code\u003e containing scanner \u003ccode\u003eauth_context\u003c/code\u003e JSON so the GLOW scan can run with an accepted consent/session state.\u003c/p\u003e\n\u003cp\u003eExample shape:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-json\"\u003e{\n  \u0026quot;cookies\u0026quot;: [\n    {\u0026quot;name\u0026quot;:\u0026quot;consent\u0026quot;,\u0026quot;value\u0026quot;:\u0026quot;true\u0026quot;,\u0026quot;domain\u0026quot;:\u0026quot;www.letitglow.app\u0026quot;,\u0026quot;path\u0026quot;:\u0026quot;/\u0026quot;}\n  ],\n  \u0026quot;localStorage\u0026quot;: {\n    \u0026quot;https://www.letitglow.app\u0026quot;: {\n      \u0026quot;consentAccepted\u0026quot;:\u0026quot;true\u0026quot;\n    }\n  }\n}\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eWithout this, many discovered URLs can redirect through \u003ccode\u003e/consent?next=...\u003c/code\u003e, which reduces scan fidelity.\u003c/p\u003e\n\u003ch2 id=\"run-it-now\"\u003eRun it now\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eOpen \u003cstrong\u003eActions\u003c/strong\u003e in \u003ccode\u003eaccesswatch/qs-proposal\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRun \u003cstrong\u003ePilot Accessibility Scan (Quickstart + GLOW)\u003c/strong\u003e for discovery/scan readiness.\u003c/li\u003e\n\u003cli\u003eRun \u003cstrong\u003ePR Check-in Accessibility Simulation\u003c/strong\u003e to test CI-style behavior.\u003c/li\u003e\n\u003cli\u003eRun \u003cstrong\u003eConfigurable Accessibility Scan\u003c/strong\u003e for frontend/admin mode combinations.\u003c/li\u003e\n\u003cli\u003eSet \u003ccode\u003efile_issues=true\u003c/code\u003e only when you intentionally want issue creation.\u003c/li\u003e\n\u003cli\u003eRun \u003cstrong\u003eDashboard Refresh\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003eOpen \u003ccode\u003edashboard/index.html\u003c/code\u003e (or publish via GitHub Pages).\u003c/li\u003e\n\u003cli\u003eOpen \u003ccode\u003edashboard/static/latest-report.html\u003c/code\u003e for email/share snapshots.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eFor full sitemap verification, run \u003cstrong\u003eQuickstart Full Sitemap Rescan\u003c/strong\u003e.\u003c/p\u003e\n\u003ch2 id=\"how-to-simulate-pr-flow-end-to-end\"\u003eHow to simulate PR flow end-to-end\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eCreate a short-lived branch in this repo and open a PR.\u003c/li\u003e\n\u003cli\u003eConfirm \u003ccode\u003ePR Check-in Accessibility Simulation\u003c/code\u003e runs automatically.\u003c/li\u003e\n\u003cli\u003eFor manual simulation, run the workflow with:\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003etarget_url\u003c/code\u003e = preview/staging/live rendered endpoint\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enon_blocking\u003c/code\u003e = \u003ccode\u003etrue\u003c/code\u003e first, then \u003ccode\u003efalse\u003c/code\u003e for gate rehearsal\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efile_issues\u003c/code\u003e = \u003ccode\u003efalse\u003c/code\u003e for dry-runs, \u003ccode\u003etrue\u003c/code\u003e only for intentional filing\u003c/li\u003e\n\u003cli\u003eReview run summary + filed issues.\u003c/li\u003e\n\u003cli\u003eUse this to tune rule thresholds and blocking policy before upstream rollout.\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"pilot-tuning-knobs\"\u003ePilot tuning knobs\u003c/h2\u003e\n\u003cp\u003eIn \u003ccode\u003e.github/workflows/pilot-scan.yml\u003c/code\u003e, adjust:\n- \u003ccode\u003emax_depth\u003c/code\u003e\n- \u003ccode\u003emax_urls\u003c/code\u003e\n- \u003ccode\u003einclude_domains\u003c/code\u003e\n- \u003ccode\u003eexclude_url_patterns\u003c/code\u003e\n- \u003ccode\u003ecache_key\u003c/code\u003e\n- \u003ccode\u003escans\u003c/code\u003e (\u003ccode\u003e[\"axe\",\"reflow-scan\"]\u003c/code\u003e)\u003c/p\u003e\n\u003ch2 id=\"what-real-world-means-here\"\u003eWhat “real world” means here\u003c/h2\u003e\n\u003cp\u003eThis repo now has a runnable end-to-end operating model.\u003cbr /\u003e\nThe only non-repo dependencies are org permissions, secrets, and scan target reachability.\u003c/p\u003e\n\u003ch2 id=\"rebuilding-full-sitemap-chunks-from-a-local-xml-file\"\u003eRebuilding full sitemap chunks from a local XML file\u003c/h2\u003e\n\u003cp\u003eIf you have a local sitemap file (example: \u003ccode\u003eC:\\code\\data.xml\u003c/code\u003e), rebuild the scan input with:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-bash\"\u003enode scripts/build-quickstart-sitemap-input.mjs \u0026quot;C:\\code\\data.xml\u0026quot; \u0026quot;scan-input/quickstart-sitemap\u0026quot; 40\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eThis writes:\n- \u003ccode\u003escan-input/quickstart-sitemap/urls.txt\u003c/code\u003e\n- \u003ccode\u003escan-input/quickstart-sitemap/chunks.json\u003c/code\u003e\n- \u003ccode\u003escan-input/quickstart-sitemap/chunk-001.json\u003c/code\u003e ... \u003ccode\u003echunk-XXX.json\u003c/code\u003e\u003c/p\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccesswatch%2Fqs-proposal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faccesswatch%2Fqs-proposal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccesswatch%2Fqs-proposal/lists"}