Part 1 — CSS/Contrast/Accessibility: - Raise --text-muted contrast to WCAG AA (#696969 light, #9a9a9a dark) - Add body font-size: 16px baseline - Enlarge #themeToggle to 15px / 10px 20px padding Part 2 — Start Button (user-controlled analysis): - Upload no longer auto-starts check; shows ready state with filename/size - New showReadyState() / removeFile() functions in upload.js - beginCheck() now shows progress + hides ready state on click - Add prominent "Check Another PDF" button at bottom of results Part 3 — Scoring recalibration: - Replace deduction formula with check-pass ratio + soft penalty (cap 20) - Fix run_check() to only examine issues added by the current check - Add score_breakdown (per-check table) to JSON output + results UI - Downgrade readability ERROR → WARNING (advisory, not hard failure) Part 4 — Auto-fix debugging: - Remediation failure now returns up to 2000 chars of log (was 500) - pdf_remediation.py: stderr output, sys.exit(0/1), output dir creation Part 5 — Error location: View on Page button on each issue card Part 6 — Matterhorn Protocol PDF/UA-1: - _build_matterhorn_summary() maps 19 checks → 31 checkpoints - Matterhorn card in index.html with grouped PASS/FAIL/Not-tested table - Correct M/H badges per checkpoint Part 7 — Dismiss / False Positive: - dismissed_issues table in db/init.sql + dismiss/undismiss in db_manager.py - api.php: dismiss/undismiss endpoints (file-backed), dismissed_indices injected into both handleStatus and handleResult responses - results.js: dismissIssue/undismissIssue with visual strikethrough - CSS: .dismissed, .btn-dismiss, .btn-undismiss styles Part 8 — PDF Report (WeasyPrint): - generate_pdf() in report_generator.py: PAC-style A4, Oliver branding - api.php handleExport() supports format=pdf - index.html: "PDF Report" download button in results header - requirements.txt: weasyprint>=60.0 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
33 lines
566 B
Text
33 lines
566 B
Text
# Enterprise PDF Accessibility Checker - Python Dependencies
|
|
|
|
# Core PDF processing
|
|
pypdf>=4.0.0
|
|
pdfplumber>=0.11.0
|
|
|
|
# Image processing
|
|
Pillow>=10.0.0
|
|
pdf2image>=1.16.0
|
|
|
|
# OCR
|
|
pytesseract>=0.3.10
|
|
|
|
# Scientific computing
|
|
numpy>=1.24.0
|
|
|
|
# NLP and readability
|
|
textblob>=0.17.1
|
|
|
|
# Google Cloud APIs
|
|
google-cloud-vision>=3.4.0
|
|
google-cloud-documentai>=2.20.0
|
|
|
|
# Anthropic Claude API
|
|
anthropic>=0.18.0
|
|
|
|
# Additional utilities
|
|
python-dotenv>=1.0.0 # For environment variable management
|
|
|
|
# Infrastructure (Docker stack)
|
|
redis>=5.0.0
|
|
psycopg2-binary>=2.9.0
|
|
weasyprint>=60.0
|