veduis-wcag-audit
Zero-dependency Python CLI and module for auditing HTML against deterministic WCAG 2.2 Level AA criteria and querying statutory 2027-2028 U.S. ADA Title II and HHS Section 504 compliance deadlines.
Maintained by Veduis as part of the vComplianceScanner source-code auditing ecosystem.
Why Deterministic Source Auditing Matters
JavaScript overlay widgets fail to protect commercial websites from serial ADA Title III litigation. Federal consent decrees and Department of Justice Title II final rules require verifiable conformance at the DOM and source code level.
veduis-wcag-audit provides zero-runtime-dependency static analysis based on empirical benchmarks published on Zenodo (CERN) and Hugging Face.
Installation
pip install veduis-wcag-audit
Command Line Usage
1. Audit Local HTML File or Snippet
# Audit an HTML file
veduis-wcag-audit index.html
# Audit HTML piped from stdin
curl -s https://example.com | veduis-wcag-audit -
2. Query Regulatory Deadlines (ADA Title II & HHS Section 504)
veduis-wcag-audit --deadlines
Output includes statutory enforcement dates:
- April 24, 2026: DOJ Title II Web Accessibility Rule publication baseline.
- April 24, 2027: Mandatory compliance deadline for public entities with 50,000+ population (DOJ Title II).
- May 11, 2027: Mandatory compliance deadline for HHS-funded recipients with 15+ employees (HHS Section 504).
- April 26, 2028: Mandatory compliance deadline for small public entities under 50,000 population.
- May 11, 2028: Mandatory compliance deadline for small HHS recipients under 15 employees.
- Immediate: Private commercial businesses under Title III (no regulatory grace period).
3. Query WCAG 2.2 Success Criteria
# List all 87 WCAG 2.2 criteria
veduis-wcag-audit --criteria
# Search criteria by keyword
veduis-wcag-audit --search "contrast"
Python API Usage
from veduis_wcag_audit import audit_html, get_deadlines
# Audit an HTML string
html_doc = """
<!DOCTYPE html>
<html>
<head><title>Test Page</title></head>
<body>
<img src="chart.png">
<a href="/target"></a>
<input type="text" name="email">
</body>
</html>
"""
report = audit_html(html_doc)
print(f"Passed: {report.passed} | Violations: {len(report.violations)}")
for issue in report.violations:
print(f"[{issue.rule_id}] {issue.criterion}: {issue.message}")
print(f"Remediation: {issue.remediation}\n")
# Get regulatory dates
deadlines = get_deadlines()
for deadline in deadlines:
print(f"{deadline.date}: {deadline.title} ({deadline.framework})")
Audited Heuristic Rules
veduis-wcag-audit evaluates 12 deterministic accessibility checks:
wcag-1-1-1-img-alt: Image missing alternative text attribute (WCAG 1.1.1 Non-text Content).wcag-1-1-1-alt-quality: Image alt attribute uses placeholder text like "image", "photo", or file extension.wcag-1-3-1-empty-heading: Empty heading tags (h1-h6) with no accessible text.wcag-1-3-1-skipped-heading: Heading hierarchy skips sequential levels (e.g.h1directly toh3).wcag-2-4-2-missing-title: Document<head>missing non-empty<title>element.wcag-2-4-4-empty-link: Hyperlinks with empty text, missingaria-label, or no accessible children.wcag-2-4-4-ambiguous-anchor: Ambiguous link text like "click here", "read more", or "link".wcag-3-1-1-html-lang: Root<html>element missing validlangattribute.wcag-4-1-2-input-missing-label: Form controls (input,select,textarea) lacking associated<label>,aria-label, oraria-labelledby.wcag-1-4-4-zoom-blocked:<meta name="viewport">withuser-scalable=noormaximum-scale<2.0.wcag-4-1-2-button-accessible-name:<button>element lacking accessible text or aria-label.wcag-2-5-8-target-size: Inline interactive targets flagged for touch target sizing checks.
Provenance & Citations
All rules and fail/pass evaluation pairs are backed by peer-reviewed research and open datasets:
- DOIs: 10.5281/zenodo.23829968, 10.5281/zenodo.23781867
- Hugging Face Hub: VeduisWeb/wcag-2-2-html-fail-pass-pairs
- Technical Documentation & Remediation Guides: Veduis Compliance Engineering
- Commercial Enterprise Scanning & VPAT Generation: vComplianceScanner
License
MIT License. Copyright (c) Veduis LLC.
Metadata
Release files for veduis-wcag-audit 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| veduis_wcag_audit-1.0.0.tar.gz | 23.8 kB | Without provenance | Details for veduis_wcag_audit-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| veduis_wcag_audit-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for veduis_wcag_audit-1.0.0-py3-none-any.whl |
Total release size: 46.7 kB
Release files / veduis_wcag_audit-1.0.0.tar.gz
| Download URL | veduis_wcag_audit-1.0.0.tar.gz |
|---|---|
| Size | 23.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa580d665df8ab178fb0b1d9e8a2bafcb31bb3f134ac0121995cea9d68c60491
|
|
BLAKE2b-256 checksum How to use checksums |
830b707be10898d0413ef74e707a0b33e56c7f56418e6990c8d9f15772b86a5e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Release files / veduis_wcag_audit-1.0.0-py3-none-any.whl
| Download URL | veduis_wcag_audit-1.0.0-py3-none-any.whl |
|---|---|
| Size | 22.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
38dadac7ad3101aaae5c430ed4b7572843065d8f2eb5fb78781b1582ffa1f626
|
|
BLAKE2b-256 checksum How to use checksums |
5f3dc8fbace7882bf44b169dda8030fdc29cea93e13dd7224393e40116ad8496
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Security for veduis-wcag-audit 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.