Skip to main content

veduis-wcag-audit

PyPI version License: MIT DOI

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:

  1. wcag-1-1-1-img-alt: Image missing alternative text attribute (WCAG 1.1.1 Non-text Content).
  2. wcag-1-1-1-alt-quality: Image alt attribute uses placeholder text like "image", "photo", or file extension.
  3. wcag-1-3-1-empty-heading: Empty heading tags (h1-h6) with no accessible text.
  4. wcag-1-3-1-skipped-heading: Heading hierarchy skips sequential levels (e.g. h1 directly to h3).
  5. wcag-2-4-2-missing-title: Document <head> missing non-empty <title> element.
  6. wcag-2-4-4-empty-link: Hyperlinks with empty text, missing aria-label, or no accessible children.
  7. wcag-2-4-4-ambiguous-anchor: Ambiguous link text like "click here", "read more", or "link".
  8. wcag-3-1-1-html-lang: Root <html> element missing valid lang attribute.
  9. wcag-4-1-2-input-missing-label: Form controls (input, select, textarea) lacking associated <label>, aria-label, or aria-labelledby.
  10. wcag-1-4-4-zoom-blocked: <meta name="viewport"> with user-scalable=no or maximum-scale<2.0.
  11. wcag-4-1-2-button-accessible-name: <button> element lacking accessible text or aria-label.
  12. 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:


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)

Source distribution for veduis-wcag-audit 1.0.0
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)

Table of built distributions (wheels) for veduis-wcag-audit 1.0.0
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page