Content Accessibility Utility on AWS
Digital content stakeholders across industries aim to streamline how they meet accessibility compliance standards efficiently. The Content Accessibility Utility on AWS offers a comprehensive solution for modernizing web content accessibility with state-of-the-art generative AI models, powered by Amazon Bedrock. It automatically audits and remediates WCAG 2.1 and 2.2 accessibility compliance issues, and offers a Python CLI, a Python API, and a deployable event-driven pipeline. Capabilities include batch processing for large volumes of content, usage tracking for cost management, and will continue to expand to support other content types and modalities.
📚 Documentation
Full documentation is published at awslabs.github.io/content-accessibility-utility-on-aws.
Start there for guides on every way to use the solution:
- CLI Guide — install and run from your terminal
- API Integration Guide — embed it in your own Python app
- Deployable Pipeline Guide — process documents automatically at scale
- Parameter Reference, Remediation, Rendered Audit & Agent, Architecture, and more.
The documentation source lives in docs/.
Features
- Convert PDF documents to accessible HTML, preserving layout and visual appearance
- Extract and embed images
- Audit HTML for WCAG 2.1 and 2.2 accessibility compliance
- Remediate common accessibility issues using Amazon Bedrock models, including advanced table remediation strategies
- Optional browser-backed (rendered) audit that detects computed-style and interactive issues static HTML analysis cannot see (e.g. focus visibility), using a real headless browser and axe-core
- Optional accessibility agent (Strands) that drives a render → fix → verify loop, confirming each fix actually renders correctly before marking it resolved
- Optional internationalization ([i18n]) that translates worked-on content into one or more target languages via Amazon Bedrock, preserving markup and screen-reader-announced attributes and optionally emitting a single multilingual document with an accessible language selector
- Single-page and multi-page output formats
- Batch processing for large-scale document processing
- Detailed usage tracking for BDA pages and Bedrock tokens, plus cost analysis
- Streamlit sample web interface with usage visualization
Installation
# From PyPI
pip install content-accessibility-utility-on-aws
# From source
pip install .
The core install is static-only (no browser). The rendered audit, the agent, and translation are opt-in extras so the base footprint stays small:
pip install "content-accessibility-utility-on-aws[rendered]" # browser-backed audit
pip install "content-accessibility-utility-on-aws[agent]" # render -> fix -> verify loop
pip install "content-accessibility-utility-on-aws[i18n]" # translation + multilingual output
The [rendered] and [agent] extras use a headless browser via
Playwright; after installing either, run
playwright install chromium once. The core package never imports the browser or
agent stack, so static-only workflows are unaffected. See the
Installation notes
for details.
Quickstart
The audit path needs only a pip install and an HTML file — no AWS account
required:
pip install content-accessibility-utility-on-aws
content-accessibility-utility-on-aws audit -i page.html -o report.html -f html
Open report.html for a human-readable accessibility report. For the full
convert → audit → remediate workflow on a PDF (which uses Amazon Bedrock), see
the CLI quickstart.
Pick the way you want to use it
| I want to… | Use the… | Guide |
|---|---|---|
| Run one-off or scripted jobs from my terminal | Command-line interface | CLI Guide |
| Embed audit/remediation into my own Python app | Python API | API Integration Guide |
| Process documents automatically as they land in S3, at scale | Deployable pipeline | Deployable Pipeline Guide |
| Click through a demo web UI | Streamlit app | Streamlit Guide |
Prerequisites
- Python 3.11+
- An AWS account with access to Amazon Bedrock models and, for the PDF conversion path, Bedrock Data Automation (BDA).
- An S3 bucket for BDA file uploads during PDF conversion.
The PDF path reads BDA_S3_BUCKET and BDA_PROJECT_ARN from the environment (or
accepts --s3-bucket / --bda-project-arn). Auditing and remediating existing
HTML only needs Bedrock model access. Full setup — creating the S3 bucket and BDA
project, IAM, and configuration files — is in the
CLI Guide prerequisites.
Architecture
The package consists of four modules — PDF2HTML, Audit, Remediate, and Batch — plus an optional browser-backed agent layer.
See Architecture & Core Packages for the per-module breakdown and diagrams.
Requirements
- Python 3.11+
- AWS credentials for Bedrock Data Automation and Bedrock models
- Appropriate IAM permissions for S3 and BDA services
Configure AWS credentials with aws configure, environment variables
(AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY), or a named profile via
--profile.
License
Apache-2.0 License. See LICENSE for details.
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details on how to contribute to this project.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file content_accessibility_utility_on_aws-1.1.1.tar.gz.
File metadata
- Download URL: content_accessibility_utility_on_aws-1.1.1.tar.gz
- Upload date:
- Size: 415.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e3fa15f701441a8d13bb4a99b694d0b1b53ac6de70a2a2041b766dc4780d8ae
|
|
| MD5 |
982ea62396fd9fca1a99b6e6b05649d0
|
|
| BLAKE2b-256 |
bab439166c83771f645ad23f648a7553cd6eb7f6a0066660c1af34d7629aff34
|
Provenance
The following attestation bundles were made for content_accessibility_utility_on_aws-1.1.1.tar.gz:
Publisher:
publish.yml on awslabs/content-accessibility-utility-on-aws
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
content_accessibility_utility_on_aws-1.1.1.tar.gz -
Subject digest:
7e3fa15f701441a8d13bb4a99b694d0b1b53ac6de70a2a2041b766dc4780d8ae - Sigstore transparency entry: 2212486493
- Sigstore integration time:
-
Permalink:
awslabs/content-accessibility-utility-on-aws@60182bf394705e4ac367e60ec9d22bbfba470c32 -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/awslabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@60182bf394705e4ac367e60ec9d22bbfba470c32 -
Trigger Event:
push
-
Statement type:
File details
Details for the file content_accessibility_utility_on_aws-1.1.1-py3-none-any.whl.
File metadata
- Download URL: content_accessibility_utility_on_aws-1.1.1-py3-none-any.whl
- Upload date:
- Size: 481.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1e9b91a26c53ccda2a4205fd0d673327183fca3f4a21ae2acfb400e38e9f6d7
|
|
| MD5 |
c347830a76f2edacf0deb315e3d6b72d
|
|
| BLAKE2b-256 |
c46ab0cbb3dc4260d158dda4a6cde30bc227d7f6be7b3dbdf3780041213c20b4
|
Provenance
The following attestation bundles were made for content_accessibility_utility_on_aws-1.1.1-py3-none-any.whl:
Publisher:
publish.yml on awslabs/content-accessibility-utility-on-aws
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
content_accessibility_utility_on_aws-1.1.1-py3-none-any.whl -
Subject digest:
e1e9b91a26c53ccda2a4205fd0d673327183fca3f4a21ae2acfb400e38e9f6d7 - Sigstore transparency entry: 2212486527
- Sigstore integration time:
-
Permalink:
awslabs/content-accessibility-utility-on-aws@60182bf394705e4ac367e60ec9d22bbfba470c32 -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/awslabs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@60182bf394705e4ac367e60ec9d22bbfba470c32 -
Trigger Event:
push
-
Statement type: