{"id":48838857,"url":"https://github.com/accesswatch/acb-large-print-toolkit","last_synced_at":"2026-04-15T01:01:02.101Z","repository":{"id":350284692,"uuid":"1206146873","full_name":"accesswatch/acb-large-print-toolkit","owner":"accesswatch","description":"ACB Large Print Toolkit -- VS Code agents, Word document tool, and cross-platform CLI/GUI for American Council of the Blind Large Print Guidelines compliance","archived":false,"fork":false,"pushed_at":"2026-04-09T18:14:49.000Z","size":179,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-09T18:25:56.562Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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.md","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-04-09T16:13:41.000Z","updated_at":"2026-04-09T18:14:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/accesswatch/acb-large-print-toolkit","commit_stats":null,"previous_names":["accesswatch/acb-large-print-toolkit"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/accesswatch/acb-large-print-toolkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Facb-large-print-toolkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Facb-large-print-toolkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Facb-large-print-toolkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Facb-large-print-toolkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/accesswatch","download_url":"https://codeload.github.com/accesswatch/acb-large-print-toolkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accesswatch%2Facb-large-print-toolkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31821685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-04-15T01:01:01.213Z","updated_at":"2026-04-15T01:01:02.020Z","avatar_url":"https://github.com/accesswatch.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GLOW Accessibility Toolkit\n\nGLOW stands for **Guided Layout \u0026 Output Workflow**.\n\nA VS Code agent toolkit, desktop application, and web application for auditing and fixing Office documents for accessibility. Enforces the American Council of the Blind (ACB) Large Print Guidelines (revised May 6, 2025), Microsoft Accessibility Checker rules, and WCAG 2.2 AA digital accessibility standards.\n\n## Supported Document Formats\n\n| Format | Audit | Auto-Fix | Template | Export | Convert |\n|--------|-------|----------|----------|--------|---------|\n| Word (.docx) | 30+ ACB + MSAC rules | Yes -- fonts, spacing, emphasis, headings, margins | Yes (.dotx) | HTML (standalone or CMS) | To Markdown, To HTML, To EPUB 3 |\n| Excel (.xlsx) | MSAC rules -- sheet names, table headers, merged cells, alt text, hidden content, color-only | Planned | -- | -- | To Markdown |\n| PowerPoint (.pptx) | MSAC rules -- slide titles, reading order, alt text, font sizes, speaker notes, charts | Planned | -- | -- | To Markdown |\n| Markdown (.md) | ACB emphasis, headings, images, lists | Planned | -- | -- | To HTML, To Word, To EPUB 3, To PDF |\n| PDF (.pdf) | Page-level structure and text extraction | Planned | -- | -- | To Markdown |\n| ePub (.epub) | EPUB Accessibility 1.1 (title, language, nav, headings, alt text, tables, links, metadata) | Planned | -- | -- | To Markdown, To HTML, To PDF |\n| HTML/CSS | ACB + WCAG 2.2 AA (via VS Code agent) | Yes (via agent) | Yes | -- | To Word, To EPUB 3, To PDF |\n\n## Five ways to use it\n\n| Interface | Who it is for | Install required? |\n|-----------|---------------|-------------------|\n| **Web app** | Anyone with a browser -- chapter officers, newsletter editors, conference attendees | No -- just open the URL |\n| **Desktop GUI** | Users who prefer a native desktop wizard with file dialogs | Yes -- download a single executable |\n| **CLI** | Developers and scripters who want batch processing | Yes -- `pip install` or download executable |\n| **VS Code agent** | Developers using VS Code with Copilot Chat | Yes -- copy agent files to VS Code config |\n| **Word Add-in** | Users who want ACB tools in the Word ribbon | Yes -- sideload the Office Add-in |\n\n## What this toolkit does\n\n- Audits Word (.docx), Excel (.xlsx), PowerPoint (.pptx), Markdown (.md), PDF (.pdf), ePub (.epub), HTML, and CSS files for accessibility\n- Auto-fixes Word document compliance issues (fonts, spacing, emphasis, headings, margins)\n- Provides detailed audit reports for Excel, PowerPoint, Markdown, PDF, and ePub with manual fix guidance\n- Generates ACB-compliant Word templates (.dotx) with pre-configured styles\n- Exports Word documents to accessible HTML (standalone or CMS-ready fragments)\n- Converts documents to Markdown via Microsoft MarkItDown (.docx, .xlsx, .pptx, .pdf, .html, .csv, .json, .xml, .epub)\n- Converts documents to accessible HTML, Word (.docx), EPUB 3, and PDF via Pandoc (and WeasyPrint for PDF)\n- Converts Markdown to ACB-compliant HTML with proper document structure\n- Produces PowerShell scripts for configuring Word document styles\n- Detects and uses external tools (markdownlint, Pandoc) when available\n\n## Workspace structure\n\n```\nlp/\n  .github/\n    copilot-instructions.md              Repo-level Copilot context\n    agents/\n      large-print-formatter.agent.md     Main agent (9 operating modes)\n      markdown-a11y-assistant.agent.md   WCAG markdown audit orchestrator\n      markdown-scanner.agent.md          Internal: single-file scanner\n      markdown-fixer.agent.md            Internal: auto-fix applicator\n      markdown-csv-reporter.agent.md     Internal: CSV export\n    prompts/\n      acb-audit.prompt.md               /acb-audit slash command\n      acb-convert.prompt.md             /acb-convert slash command\n      acb-md-audit.prompt.md            /acb-md-audit slash command\n      acb-md-convert.prompt.md          /acb-md-convert slash command\n      acb-word-setup.prompt.md          /acb-word-setup slash command\n    instructions/\n      acb-large-print.instructions.md   Auto-attach on html/css files\n    skills/\n      markdown-accessibility/\n        SKILL.md                         Pattern library, severity scoring, fix templates\n  styles/\n    acb-large-print.css                  Reference CSS (rem-based, print overrides)\n  templates/\n    acb-large-print-boilerplate.html     Semantic HTML skeleton\n  docs/\n    user-guide.md                        Complete user guide for all interfaces\n    announcement.md                      Press release / announcement\n    prd-flask-web-app.md                 Web app product requirements document\n    deployment.md                        Step-by-step server deployment guide\n  samples/\n    *.md                                 Example Markdown source files\n    *.html                               Converted HTML output files\n    *-cms-embed.html                     CMS embed snippets (class-scoped)\n  reference/\n    ACB Large Print Guidelines, revised 5-6-25.docx   Source specification\n  web/                                   Flask web application\n    src/acb_large_print_web/             Application package\n    tests/                               Test suite\n    Dockerfile                           Production container image\n    docker-compose.yml                   Compose file for deployment\n  desktop/                               Desktop CLI + GUI (Python)\n    src/acb_large_print/                 Core library (canonical source of truth)\n  office-addin/                          Office.js Word Add-in (TypeScript)\n    src/                                 TypeScript port of audit/fix/template\n  vendor/                                Vendored third-party source\n    daisy-ace/                           DAISY Ace source (MIT)\n    daisy-a11y-meta-viewer/              DAISY a11y-meta-viewer source (CC BY-NC-SA 4.0)\n```\n\n## Quick start\n\n### Use the web app (no install)\n\nOpen the web app in any browser. Upload a Word, Excel, PowerPoint, Markdown, or PDF file and choose an operation:\n\n| Page | What it does |\n|------|-------------|\n| **Audit** | Check any supported document against accessibility rules (Full, Quick, or Custom mode) |\n| **Fix** | Auto-fix Word documents; get audit-based fix guidance for other formats |\n| **Template** | Generate an ACB-compliant Word template (.dotx) |\n| **Export** | Convert a .docx to accessible HTML (standalone or CMS fragment) |\n| **Convert** | Transform documents between formats (Markdown, HTML, Word, EPUB 3, PDF, DAISY) |\n| **Guidelines** | Browse the full ACB specification and WCAG 2.2 supplement |\n| **About** | Project mission, organizations, standards, open source dependencies, and acknowledgments |\n\n### Run the web app locally\n\n```bash\ncd web\npip install -e \".[dev]\"\npip install -e \"../desktop\"\nflask --app acb_large_print_web.app:create_app run --debug\n```\n\n### Deploy with Docker\n\n```bash\ncd web\ndocker compose up --build\n```\n\nSee [docs/deployment.md](docs/deployment.md) for full production deployment (Ubuntu VPS, Caddy, TLS).\n\n### Install to VS Code (User-level)\n\nCopy the agent, prompts, styles, templates, and instructions to your VS Code User config:\n\n```powershell\n$prompts = \"$env:APPDATA\\Code\\User\\prompts\"\n$agents  = \"$env:APPDATA\\Code\\User\\agents\"\n\n# Main agent and bundled markdown agents\nCopy-Item .github\\agents\\*.agent.md $agents\\ -Force\n\n# Slash commands\nCopy-Item .github\\prompts\\*.prompt.md $prompts\\ -Force\n\n# Auto-attach instructions\nCopy-Item .github\\instructions\\acb-large-print.instructions.md $prompts\\ -Force\n\n# Reference CSS and HTML boilerplate\nCopy-Item styles\\acb-large-print.css $prompts\\ -Force\nCopy-Item templates\\acb-large-print-boilerplate.html $prompts\\ -Force\n```\n\n### Use the slash commands\n\nOpen the VS Code Chat panel (Ctrl+Shift+I) and type the command. The prompt files route to the correct agent automatically.\n\n| Command | What it does |\n|---|---|\n| `/acb-audit` | Audit the open file for ACB compliance |\n| `/acb-convert` | Fix the open file to ACB compliance |\n| `/acb-md-audit` | Audit a Markdown file for ACB compliance |\n| `/acb-md-convert` | Convert Markdown to ACB-compliant HTML |\n| `/acb-word-setup` | Generate a Word styles configuration script |\n\n## Using the agents\n\n### Large Print Formatter (main agent)\n\nAddress `@large-print-formatter` in VS Code Chat. It supports 9 operating modes that activate based on your request.\n\n#### Mode 1: Review / Audit -- check an HTML or CSS file\n\nReads the file, checks every ACB rule, and reports a PASS/FAIL checklist with a compliance score.\n\nSample prompts:\n\n- `@large-print-formatter audit this HTML file for ACB compliance`\n- `@large-print-formatter review the open file against ACB Large Print rules`\n- `@large-print-formatter check if this CSS meets the ACB typography requirements`\n\n#### Mode 2: Generate -- create new ACB-compliant content\n\nCreates new HTML/CSS with all ACB rules applied from the start. Asks whether you want external CSS, embedded, or both.\n\nSample prompts:\n\n- `@large-print-formatter generate a new ACB-compliant HTML page for a meeting agenda`\n- `@large-print-formatter create an ACB-compliant newsletter template`\n\n#### Mode 3: Convert / Reformat -- fix an existing file\n\nReads an existing HTML file, detects every deviation, and fixes it. Handles fragments (no DOCTYPE) by wrapping them in a complete document shell. Fixes bold abuse, fake headings, `\u003cbr\u003e` separators, and italic misuse.\n\nSample prompts:\n\n- `@large-print-formatter convert this HTML file to ACB compliance`\n- `@large-print-formatter reformat the open file for large print`\n- `@large-print-formatter fix this Pandoc output to meet ACB guidelines`\n\n#### Mode 4: CSS / HTML Template -- get starter files\n\nGenerates a reference CSS file and semantic HTML boilerplate with all ACB + WCAG rules, including print media overrides.\n\nSample prompts:\n\n- `@large-print-formatter generate an ACB-compliant CSS stylesheet`\n- `@large-print-formatter create an HTML boilerplate with ACB large print styles`\n\n#### Mode 5: CSS Embed -- inline the stylesheet\n\nTakes the reference CSS and embeds it as a `\u003cstyle\u003e` block in an HTML file, removing any external `\u003clink\u003e` to avoid duplication.\n\nSample prompts:\n\n- `@large-print-formatter embed the CSS directly into this HTML file`\n- `@large-print-formatter inline the ACB stylesheet into the open file`\n\n#### Mode 5a: CMS Embed Snippet -- scoped output for WordPress / Drupal / CMS\n\nProduces a class-scoped version of the content: all CSS selectors are prefixed with `.acb-lp` and the HTML content is wrapped in `\u003cdiv class=\"acb-lp\"\u003e`. This prevents the ACB styles from clashing with the CMS theme. The output is a single file (no DOCTYPE/head/body) ready to paste into any CMS HTML editor.\n\nSample prompts:\n\n- `@large-print-formatter create a WordPress embed snippet for this HTML`\n- `@large-print-formatter generate a CMS-ready version of the meeting agenda`\n- `@large-print-formatter convert this markdown to a CMS embed snippet`\n\nWhen using `/acb-convert` or Mode 3/Mode 9, you can also select \"CMS embed snippet\" from the CSS delivery question to get this output alongside the standalone HTML.\n\n#### Mode 6: Word Setup Script -- configure Microsoft Word\n\nGenerates a PowerShell COM automation script that configures Word styles (Normal, Heading 1, Heading 2, List Bullet) and page layout to ACB spec.\n\nSample prompts:\n\n- `@large-print-formatter generate a Word setup script for ACB large print`\n- `@large-print-formatter create a PowerShell script to configure Word for ACB compliance`\n\n#### Mode 7: Markdown Audit -- check a .md file\n\nReads a Markdown file and checks ACB-specific rules: italic prohibition, heading hierarchy, emphasis conventions, ALL CAPS, lists, images, bare URLs.\n\nSample prompts:\n\n- `@large-print-formatter audit this markdown file for ACB compliance`\n- `@large-print-formatter check the open .md file against ACB rules`\n\n#### Mode 8: Markdown Fix -- auto-repair a .md file\n\nRuns the audit first, then auto-fixes what it can (italic removal, heading hierarchy, ALL CAPS) and asks about ambiguous cases.\n\nSample prompts:\n\n- `@large-print-formatter fix this markdown file for ACB compliance`\n- `@large-print-formatter auto-fix the ACB issues in the open .md file`\n\n#### Mode 9: Markdown to HTML Conversion -- full pipeline\n\nConverts Markdown to a complete ACB-compliant HTML document. Asks about CSS delivery, print intent, and output location. Uses Pandoc when available.\n\nSample prompts:\n\n- `@large-print-formatter convert this markdown to ACB-compliant HTML`\n- `@large-print-formatter convert meeting-agenda.md to large print HTML with embedded CSS`\n- `@large-print-formatter convert the open .md file to HTML for print`\n\n### Markdown Accessibility Assistant (bundled)\n\nAddress `@markdown-a11y-assistant` in VS Code Chat for general WCAG markdown auditing. This is a separate, interactive wizard that covers 9 accessibility domains beyond ACB formatting.\n\nSample prompts:\n\n- `@markdown-a11y-assistant audit this markdown file`\n- `@markdown-a11y-assistant check all .md files in the docs folder`\n- `@markdown-a11y-assistant review the README for accessibility`\n\nThe assistant will ask you configuration questions before scanning (scope, emoji preference, Mermaid preference) and then orchestrate its sub-agents (`markdown-scanner`, `markdown-fixer`, `markdown-csv-reporter`) automatically.\n\n#### Domains covered by the markdown accessibility agents\n\n| Domain | What it checks | WCAG criteria |\n|---|---|---|\n| Descriptive links | Ambiguous text (\"click here\", \"read more\"), bare URLs, repeated identical text | 2.4.4, 2.4.9 |\n| Image alt text | Missing, empty, filename-as-alt, generic placeholders | 1.1.1 |\n| Heading hierarchy | Skipped levels, multiple H1s, bold-as-heading | 1.3.1, 2.4.6 |\n| Table descriptions | Missing descriptions, empty headers, layout tables | 1.3.1 |\n| Emoji | Decorative emoji, emoji bullets, consecutive emoji, emoji in headings | 1.3.3, Cognitive |\n| Mermaid/ASCII diagrams | Diagrams without text alternatives | 1.1.1, 1.3.1 |\n| Em-dash normalization | Unicode em/en-dashes, doubled hyphens | Cognitive |\n| Anchor link validation | Broken `#anchor` links, GitHub anchor generation rules | 2.4.4 |\n| Plain language | Sentence length, passive voice, emoji bullets | Cognitive |\n\n### Combined ACB + WCAG workflow\n\nFor the most thorough audit of a Markdown file, run both agents in sequence:\n\n1. `@large-print-formatter audit this markdown file for ACB compliance` -- catches ACB-specific formatting rules (italic prohibition, font requirements, print layout)\n2. `@markdown-a11y-assistant audit the same file` -- catches general WCAG issues (emoji, Mermaid diagrams, ambiguous links, anchor validation)\n\nThe large-print-formatter has built-in handoff links. After an ACB audit, it can offer to hand off to `@markdown-a11y-assistant` for the broader WCAG sweep.\n\n## If you already have the accessibility agents installed\n\nThe markdown accessibility agents are bundled here for completeness so this toolkit works standalone. **If you already have the [accessibility agents](https://github.com/accessibility-agents) repo cloned as a workspace or installed to your VS Code User config, use those copies as the source of truth.** Do not copy the bundled versions over newer ones. The accessibility agents repo receives updates to all agents, skills, and shared instructions that this standalone copy will not automatically pick up.\n\nTo check if you already have them:\n\n```powershell\n# Check User-level agents\nGet-ChildItem \"$env:APPDATA\\Code\\User\\agents\\markdown-*\" -ErrorAction SilentlyContinue\n\n# Check for the accessibility agents workspace\nGet-ChildItem S:\\code\\agents\\.github\\agents\\markdown-* -ErrorAction SilentlyContinue\n```\n\nIf either location returns results, those are your source of truth and will receive updates from the accessibility agents project. The bundled copies in this repo are a frozen snapshot for standalone use only.\n\n## CMS embedding (WordPress, Drupal, etc.)\n\nWhen pasting ACB Large Print content into a CMS page, the standalone HTML file's bare selectors (`body`, `h1`, `p`) will conflict with the theme's CSS. The agent produces a **CMS embed snippet** that avoids this:\n\n- All CSS selectors are scoped under a `.acb-lp` class prefix\n- Content is wrapped in `\u003cdiv class=\"acb-lp\"\u003e...\u003c/div\u003e`\n- No document shell (`\u003c!DOCTYPE\u003e`, `\u003chtml\u003e`, `\u003chead\u003e`, `\u003cbody\u003e`) -- the CMS already provides these\n- Output file uses a `-cms-embed.html` suffix\n\nTo get a CMS embed snippet:\n\n1. Select \"CMS embed snippet\" when the agent asks about CSS delivery, **or**\n2. Ask directly: `@large-print-formatter create a CMS embed snippet for this file`\n\nThe agent always produces the CMS embed as a separate file alongside the standalone HTML.\n\n## External tool support\n\nThe agent detects and uses these tools when available:\n\n| Tool | Purpose | Install |\n|---|---|---|\n| markdownlint | Structural Markdown linting before ACB audit | `npm install -g markdownlint-cli` |\n| Pandoc | Reliable GFM to HTML5 conversion | [pandoc.org/installing](https://pandoc.org/installing.html) |\n\nWhen tools are not installed, the agent performs equivalent checks manually.\n\n## ACB Large Print rules (summary)\n\n- Font: Arial only, 18pt body, 22pt headings, 20pt subheadings\n- Alignment: flush left, ragged right (never justified)\n- Emphasis: underline only (no bold for emphasis, no italic ever)\n- Headings: proper hierarchy, no ALL CAPS, no skipped levels\n- Lists: large solid bullets, no extra spacing between items\n- Links: descriptive text (no bare URLs, no \"click here\")\n- Spacing: 1 blank line between paragraphs, no blank lines between list items\n- Digital supplement: WCAG 2.2 AA contrast (4.5:1), 400% zoom reflow, 1.5x line-height\n\n## Validation And Lessons Learned\n\nWe did not treat heading detection and ACB repair as a one-time feature drop. We stress-tested the platform with synthetic Word documents designed to behave like real documents that users actually upload: copied email threads, plain-text paste, newsletter blurbs, agendas, policy manuals, legal outlines, appendices, and flyers.\n\nWhat the stress work covered:\n\n- 1,000 generated Word documents in the primary full-corpus run\n- 1,000 total heading scenarios in the current release-scale corpus\n- 10 document families covering different writing styles and layout problems\n- 12 randomized scenario patterns including real headings, false positives, no-style body lines, font-only drift, multilingual section labels, centered titles, justified paragraphs, hanging indents, and mixed-font paste artifacts\n- 7 language variants in the current random set: English, Spanish, French, German, Italian, Portuguese, and Dutch\n\nWhat the 1,000 generated documents represented:\n\n- Board agendas pasted from email threads\n- Newsletters and flyers with decorative layout drift\n- Policy manuals with section labels and long explanatory body text\n- Legal outlines with numbering and nested structure pressure\n- Training handouts with prompts and labels that can look like headings\n- Appendix-style documents with short labels that can be confused with captions or notes\n- Plain-text paste where no proper heading styles exist at all\n\nEach generated document included real document structure around the test case, not just a single isolated line. That means the platform had to judge a candidate heading in context, then repair the surrounding formatting back to ACB rules.\n\nWhat we proved:\n\n- Full heading stress suite: 5 tests passed\n- Heuristic detector against 1,000 ground-truth scenarios: 0 false positives, 0 false negatives\n- Denser randomized sweep over 4,800 scenarios: 0 false positives, 0 false negatives\n- Fix-then-audit enforcement sweep over 1,000 generated documents: 0 remaining ACB findings after the latest fixes\n- Core fixer and detector test set: 150 tests passed\n\nWhat we learned while testing:\n\n1. Real-world documents do not fail in one neat way. They mix plain text, manual bold, centered titles, font overrides, copied web formatting, and fake structure in the same file.\n2. A heading detector that only looks for bold text is not good enough. It must also learn from length, punctuation, numbering, body context, and known false-positive shapes like signature lines and callouts.\n3. Passing heading detection alone is not enough. The fixer must also repair the document back to ACB rules, which means alignment, indentation, font normalization, heading hierarchy, and heading text cleanup all have to work together.\n4. The most useful failures were not dramatic crashes. They were policy mismatches, such as faux headings converted to ALL CAPS Heading 3 lines that then created heading-level skips.\n\nHow we adapted the platform:\n\n- Added stronger false-positive penalties for signature-like lines and callout/salutation patterns\n- Expanded the synthetic corpus to include multilingual numbering, plain-text/no-style negatives, and font-size-only heading cases\n- Tightened the fixer so converted headings are normalized after conversion, including ALL CAPS cleanup and heading-hierarchy repair\n- Re-ran the full corpus after every meaningful change so we only kept changes that improved measured outcomes\n\nConfidence statement:\n\n- We are confident in the current lessons learned for heading detection and ACB repair behavior on the scenarios we generated and measured.\n- We are also confident that the fixer path is written in a cross-platform way because it uses platform-neutral Python and document-processing libraries rather than OS-specific APIs.\n- We have runtime proof for Windows in this session. Final cross-platform runtime proof still requires executing the same validation commands on macOS and Linux CI runners.\n\n## License\n\nThis toolkit implements the ACB Large Print Guidelines, a public specification from the American Council of the Blind. The toolkit code and configuration files are provided for organizational use.\n\n## Web Application\n\nThe `web/` directory contains a Flask web application that provides browser-based access to all core operations. No installation or account required. Runs in Docker for production deployment. See [web/README.md](web/README.md) for full documentation.\n\n## Desktop Tool\n\nThe `desktop/` directory contains a standalone desktop application (CLI and GUI) that audits, fixes, and exports Microsoft Word documents for ACB compliance. It builds as one-file executables for 6 platforms via PyInstaller and GitHub Actions. See [desktop/README.md](desktop/README.md) for full documentation.\n\n## Office Add-in\n\nThe `office-addin/` directory contains an Office.js Web Add-in that integrates ACB Large Print audit, fix, and template tools directly into the Microsoft Word ribbon. TypeScript port of the Python core. Deployed to GitHub Pages automatically on push.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccesswatch%2Facb-large-print-toolkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faccesswatch%2Facb-large-print-toolkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccesswatch%2Facb-large-print-toolkit/lists"}